]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
[AArch64] Fix output template for Scalar Neon->Neon register move.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
21216998
JG
12013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
2
3 * config/aarch64/aarch64.md
4 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
5
1ef88893
AM
62013-10-16 Andrew MacLeod <amacleod@redhat.com>
7
8 PR tree-optimization/58697
9 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
10 estimated_loop_iterations_int.
11 (max_stmt_executions_int): Call get_max_loop_iterations_int.
12 (get_max_loop_iterations_int): New. HWINT version of
13 get_max_loop_iterations.
14 * cfgloop.h: Add prototypes.
15 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
16 * loop-unroll.c (decide_peel_once_rolling): Call
17 get_estimated_loop_iterations_int.
18 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
19 * tree-ssa-loop-niter.h: Tweak prototypes.
20
c22df64f
DM
212013-10-16 David Malcolm <dmalcolm@redhat.com>
22
23 * gengtype-parse.c (struct_field_seq): Ignore access-control
24 keywords ("public:" etc).
25
f24bb080
MS
262013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
27
28 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
29 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
30
c281bf26
YR
312013-10-16 Yvan Roux <yvan.roux@linaro.org>
32
33 * config/arm/arm.opt (mlra): New option.
34 * config/arm/arm.c (arm_lra_p): New function.
35 (TARGET_LRA_P): Define.
36
5806f481
PM
372013-10-16 Paulo Matos <pmatos@broadcom.com>
38
39 * tree-core.h (tree_code_name): Remove.
40 * tree.h (get_tree_code_name): New prototype.
41 * tree.c (tree_code_name): Make static.
42 (get_tree_code_name): New function.
43 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
44 tree_class_check_failed, tree_range_check_failed,
45 tree_not_class_check_failed, omp_clause_check_failed,
46 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
47 wrapper get_tree_code_name instead of calling tree_code_name directly.
48 * tree-vrp.c (dump_asserts_for): Likewise.
49 * tree-dump.c (dequeue_and_dump): Likewise.
50 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
51 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
52 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
53 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
54 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
55 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
56 dump_gimple_omp_for): Likewise.
57 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
58 * tree-ssa-pre.c (print_pre_expr): Likewise.
59 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
60 * print-tree.c (print_node_brief, print_node): Likewise.
61 * gimple.c (gimple_check_failed): Likewise.
62 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
63 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
64 * config/mep/mep.c (mep_validate_vliw): Likewise.
65 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
66 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
67
82c9df56
GG
682013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
69
70 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
71 for AMD bdver3.
72
b82d0df9
HPN
732013-10-16 Hans-Peter Nilsson <hp@axis.com>
74
75 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
76 (MULTILIB_MATCHES): Add multilib for -march=v8.
77
bf7b5747
ST
782013-10-15 Sriraman Tallam <tmsriram@google.com>
79
80 PR target/57756
81 * optc-save-gen.awk: Add extra parameter to the save and restore
82 target calls.
83 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
84 * tree.c (build_optimization_node): New parameter. Add extra parameter
85 to call to cl_optimization_save.
86 (build_target_option_node): New parameter. Add extra parameter
87 to call to cl_target_option_save.
88 * tree.h (build_optimization_node): New parameter.
89 (build_target_option_node): New parameter.
90 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
91 build_optimization_node and build_target_option_node.
92 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
93 (handle_pragma_push_options): Ditto.
94 * toplev.c (process_options): Ditto.
95 * opts.c (init_options_struct): Check for opts_set non-null.
96 * target.def (target_option.save): New parameter.
97 (target_option.restore): New parameter.
98 * tm.texi: Generate.
99 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
100 (ix86_pragma_target_parse): Ditto.
101 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
102 parameters.
103 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
104 to build_optimization_node and build_target_option_node.
105 (rs6000_valid_attribute_p): Ditto.
106 (rs6000_pragma_target_parse): Ditto.
107 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
108 data.
109 * config/i386/i386.h:
110 TARGET_64BIT_P: New Macro
111 TARGET_MMX_P: New Macro.
112 TARGET_3DNOW_P: New Macro.
113 TARGET_3DNOW_A_P: New Macro.
114 TARGET_SSE_P: New Macro.
115 TARGET_SSE2_P: New Macro.
116 TARGET_SSE3_P: New Macro.
117 TARGET_SSSE3_P: New Macro.
118 TARGET_SSE4_1_P: New Macro.
119 TARGET_SSE4_2_P: New Macro.
120 TARGET_AVX_P: New Macro.
121 TARGET_AVX2_P: New Macro.
122 TARGET_AVX512F_P: New Macro.
123 TARGET_AVX512PF_P: New Macro.
124 TARGET_AVX512ER_P: New Macro.
125 TARGET_AVX512CD_P: New Macro.
126 TARGET_FMA_P: New Macro.
127 TARGET_SSE4A_P: New Macro.
128 TARGET_FMA4_P: New Macro.
129 TARGET_XOP_P: New Macro.
130 TARGET_LWP_P: New Macro.
131 TARGET_ABM_P: New Macro.
132 TARGET_BMI_P: New Macro.
133 TARGET_BMI2_P: New Macro.
134 TARGET_LZCNT_P: New Macro.
135 TARGET_TBM_P: New Macro.
136 TARGET_POPCNT_P: New Macro.
137 TARGET_SAHF_P: New Macro.
138 TARGET_MOVBE_P: New Macro.
139 TARGET_CRC32_P: New Macro.
140 TARGET_AES_P: New Macro.
141 TARGET_PCLMUL_P: New Macro.
142 TARGET_CMPXCHG16B_P: New Macro.
143 TARGET_FSGSBASE_P: New Macro.
144 TARGET_RDRND_P: New Macro.
145 TARGET_F16C_P: New Macro.
146 TARGET_RTM_P: New Macro.
147 TARGET_HLE_P: New Macro.
148 TARGET_RDSEED_P: New Macro.
149 TARGET_PRFCHW_P: New Macro.
150 TARGET_ADX_P: New Macro.
151 TARGET_FXSR_P: New Macro.
152 TARGET_XSAVE_P: New Macro.
153 TARGET_XSAVEOPT_P: New Macro.
154 TARGET_LP64_P: New Macro.
155 TARGET_X32_P: New Macro.
156 TARGET_FPMATH_DEFAULT_P: New Macro.
157 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
158 * config/i386/i386.c (ix86_option_override_internal): New parameters.
159 opts and opts_set.
160 Change ix86_tune_string to access opts->x_ix86_tune_string.
161 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
162 Change ix86_arch_string to access opts->x_ix86_arch_string.
163 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
164 Change ix86_pmode to access opts->x_ix86_pmode.
165 Change ix86_abi to access opts->x_ix86_abi.
166 Change ix86_cmodel to access opts->x_ix86_cmodel.
167 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
168 Change ix86_isa_flags_explicit to access
169 opts->x_ix86_isa_flags_explicit.
170 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
171 Change ix86_regparm to access opts->x_ix86_regparm.
172 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
173 Change ix86_preferred_stack_boundary_arg to access
174 opts->x_ix86_preferred_stack_boundary_arg.
175 Change ix86_force_align_arg_pointer to access
176 opts->x_ix86_force_align_arg_pointer.
177 Change ix86_incoming_stack_boundar_arg to access
178 opts->x_ix86_incoming_stack_boundar_arg.
179 Change ix86_fpmath to access opts->x_ix86_fpmath.
180 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
181 Change ix86_recip_name to access opts->x_ix86_recip_name.
182 Change ix86_stack_protector_guard to access
183 opts->x_ix86_stack_protector_guard.
184 Change ix86_tune_memcpy_strategy to access
185 opts->x_ix86_tune_memcpy_strategy.
186 Change ix86_tune_memset_strategy to access
187 opts->x_ix86_tune_memset_strategy.
188 Change global_options to access opts.
189 Change global_options_set to access opts_set.
190 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
191 Change TARGET_MMX to TARGET_MMX_P (opts->...)
192 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...)
193 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...)
194 Change TARGET_SSE to TARGET_SSE_P (opts->...)
195 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
196 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...)
197 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...)
198 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...)
199 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...)
200 Change TARGET_AVX to TARGET_AVX_P (opts->...)
201 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...)
202 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...)
203 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...)
204 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...)
205 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...)
206 Change TARGET_FMA to TARGET_FMA_P (opts->...)
207 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...)
208 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...)
209 Change TARGET_XOP to TARGET_XOP_P (opts->...)
210 Change TARGET_LWP to TARGET_LWP_P (opts->...)
211 Change TARGET_ABM to TARGET_ABM_P (opts->...)
212 Change TARGET_BMI to TARGET_BMI_P (opts->...)
213 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...)
214 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...)
215 Change TARGET_TBM to TARGET_TBM_P (opts->...)
216 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...)
217 Change TARGET_SAHF to TARGET_SAHF_P (opts->...)
218 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...)
219 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...)
220 Change TARGET_AES to TARGET_AES_P (opts->...)
221 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...)
222 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...)
223 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...)
224 Change TARGET_RDRND to TARGET_RDRND_P (opts->...)
225 Change TARGET_F16C to TARGET_F16C_P (opts->...)
226 Change TARGET_RTM to TARGET_RTM_P (opts->...)
227 Change TARGET_HLE to TARGET_HLE_P (opts->...)
228 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...)
229 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...)
230 Change TARGET_ADX to TARGET_ADX_P (opts->...)
231 Change TARGET_FXSR to TARGET_FXSR_P (opts->...)
232 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...)
233 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...)
234 Change TARGET_LP64 to TARGET_LP64_P (opts->...)
235 Change TARGET_X32 to TARGET_X32_P (opts->...)
236 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...)
237 Change TARGET_FLOAT_RETURNS_IN_80387 to
238 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...)
239 (ix86_function_specific_save): New parameter. Use opts-> fields
240 to replace global fields.
241 (ix86_function_specific_restore): Ditto.
242 (ix86_valid_target_attribute_inner_p): New parameters.
243 Fix recursive call.
244 Fix call to ix86_handle_option and set_option.
245 (ix86_valid_target_attribute_tree): New parameters.
246 Change global_options to access opts.
247 Change global_options_set to access opts_set.
248 Fix call to ix86_valid_target_attribute_inner_p.
249 Change ix86_tune_string to access opts->x_ix86_tune_string.
250 Change ix86_arch_string to access opts->x_ix86_arch_string.
251 Change ix86_fpmath to access opts->x_ix86_fpmath
252 Fix call to ix86_option_override_internal.
253 Fix call to ix86_add_new_builtins.
254 Fix calls to build_optimization_node and build_target_option_node.
255 (ix86_valid_target_attribute_p): Remove access to global_options.
256 Use new gcc_options structure func_options.
257 Fix call to ix86_valid_target_attribute_tree.
258 Fix call to build_optimization_node.
259 (get_builtin_code_for_version): Fix call to
260 ix86_valid_target_attribute_tree.
261
459260ec
DM
2622013-10-15 David Malcolm <dmalcolm@redhat.com>
263
264 * Makefile.in (PICFLAG): New.
265 (enable_host_shared): New.
266 (INTERNAL_CFLAGS): Use PICFLAG.
267 (LIBIBERTY): Use pic build of libiberty.a if configured with
268 --enable-host-shared.
269 * configure.ac: Add --enable-host-shared, setting up new
270 PICFLAG variable.
271 * configure: Regenerate.
272 * doc/install.texi (--enable-shared): Add note contrasting it
273 with...
274 (--enable-host-shared): New option.
275
16022041
RS
2762013-10-15 Richard Biener <rguenther@suse.de>
277
278 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
279 for built-in functions.
280
b114bfb4
ZC
2812013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
282
283 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
284 (optimize_range_tests_1): New function,
285 extracted from optimize_range_tests.
286 (optimize_range_tests_xor): Similarly.
287 (optimize_range_tests_diff): New function.
288 (optimize_range_tests): Use optimize_range_tests_1.
289
69b8f2f9
CH
2902013-10-15 Cong Hou <congh@google.com>
291
292 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
293 requirement of the reduction pattern so that one operand of the
294 reduction operation can come from outside of the loop.
295
8ff5a4e4
JG
2962013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
297
298 * config/arm/neon-schedgen.ml: Remove.
299 * config/arm/cortex-a9-neon.md: Remove comment regarding
300 neon-schedgen.ml.
301
52b69ad2
JG
3022013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
303
304 * config/arm/types: Remove old neon types.
305
e7c6a556
JG
3062013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
307
308 * config/arm/cortex-a7.md
309 (cortex_a7_neon_type): New.
310 (cortex_a7_neon_mul): Update for new types.
311 (cortex_a7_neon_mla): Likewise.
312 (cortex_a7_neon): Likewise.
313
795dd8d5
JG
3142013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
315
316 * config/arm/cortex-a15-neon.md
317 (cortex_a15_neon_type): New,
318
319 (cortex_a15_neon_int_1): Remove.
320 (cortex_a15_neon_int_2): Likewise.
321 (cortex_a15_neon_int_3): Likewise.
322 (cortex_a15_neon_int_4): Likewise.
323 (cortex_a15_neon_int_5): Likewise.
324 (cortex_a15_neon_vqneg_vqabs): Likewise.
325 (cortex_a15_neon_vmov): Likewise.
326 (cortex_a15_neon_vaba): Likewise.
327 (cortex_a15_neon_vaba_qqq): Likewise.
328 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
329 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
330 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
331 Likewise.
332 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
333 (cortex_a15_neon_mla_qqq_8_16): Likewise.
334 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
335 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
336 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
337 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
338 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
339 (cortex_a15_neon_shift_1): Likewise.
340 (cortex_a15_neon_shift_2): Likewise.
341 (cortex_a15_neon_shift_3): Likewise.
342 (cortex_a15_neon_vshl_ddd): Likewise.
343 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
344 (cortex_a15_neon_vsra_vrsra): Likewise.
345 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
346 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
347 (cortex_a15_neon_bp_3cycle): Likewise.
348 (cortex_a15_neon_ldm_2): Likewise.
349 (cortex_a15_neon_stm_2): Likewise.
350 (cortex_a15_neon_mcr): Likewise.
351 (cortex_a15_neon_mrc): Likewise.
352 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
353 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
354 (cortex_a15_neon_fp_vmul_ddd): Likewise.
355 (cortex_a15_neon_fp_vmul_qqd): Likewise.
356 (cortex_a15_neon_fp_vmla_ddd): Likewise.
357 (cortex_a15_neon_fp_vmla_qqq): Likewise.
358 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
359 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
360 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
361 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
362 (cortex_a15_neon_bp_simple): Likewise.
363 (cortex_a15_neon_bp_2cycle): Likewise.
364 (cortex_a15_neon_bp_3cycle): Likewise.
365 (cortex_a15_neon_vld1_1_2_regs): Likewise.
366 (cortex_a15_neon_vld1_3_4_regs): Likewise.
367 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
368 (cortex_a15_neon_vld2_4_regs): Likewise.
369 (cortex_a15_neon_vld3_vld4): Likewise.
370 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
371 (cortex_a15_neon_vst1_3_4_regs): Likewise.
372 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
373 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
374 (cortex_a15_neon_vst3_vst4): Rename to...
375 (cortex_a15_neon_vst4): This, update for new attributes.
376 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
377 (cortex_a15_neon_vld3_vld4_lane): Likewise.
378 (cortex_a15_neon_vst1_vst2_lane): Likewise.
379 (cortex_a15_neon_vst3_vst4_lane): Likewise.
380 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
381 (cortex_a15_neon_ldm_2): Likewise.
382 (cortex_a15_neon_stm_2): Likewise.
383 (cortex_a15_neon_mcr): Likewise.
384 (cortex_a15_neon_mcr_2_mcrr): Likewise.
385 (cortex_a15_neon_mrc): Likewise.
386 (cortex_a15_neon_mrrc): Likewise.
387
388 (cortex_a15_neon_abd): New.
389 (cortex_a15_neon_abd_q): Likewise.
390 (cortex_a15_neon_aba): Likewise.
391 (cortex_a15_neon_aba_q): Likewise.
392 (cortex_a15_neon_acc): Likewise.
393 (cortex_a15_neon_acc_q): Likewise.
394 (cortex_a15_neon_arith_basic): Likewise.
395 (cortex_a15_neon_arith_complex): Likewise.
396 (cortex_a15_neon_multiply): Likewise.
397 (cortex_a15_neon_multiply_q): Likewise.
398 (cortex_a15_neon_mla): Likewise.
399 (cortex_a15_neon_mla_q): Likewise.
400 (cortex_a15_neon_sat_mla_long): Likewise.
401 (cortex_a15_neon_shift_acc): Likewise.
402 (cortex_a15_neon_shift_imm_basic): Likewise.
403 (cortex_a15_neon_shift_imm_complex): Likewise.
404 (cortex_a15_neon_shift_reg_basic): Likewise.
405 (cortex_a15_neon_shift_reg_basic_q): Likewise.
406 (cortex_a15_neon_shift_reg_complex): Likewise.
407 (cortex_a15_neon_shift_reg_complex_q): Likewise.
408 (cortex_a15_neon_fp_negabs): Likewise
409 (cortex_a15_neon_fp_arith): Likewise
410 (cortex_a15_neon_fp_arith_q): Likewise
411 (cortex_a15_neon_fp_cvt_int): Likewise
412 (cortex_a15_neon_fp_cvt_int_q): Likewise
413 (cortex_a15_neon_fp_cvt_16): Likewise
414 (cortex_a15_neon_fp_mul): Likewise
415 (cortex_a15_neon_fp_mul_q): Likewise
416 (cortex_a15_neon_fp_mla): Likewise
417 (cortex_a15_neon_fp_mla_q): Likewise
418 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
419 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
420 (cortex_a15_neon_bitops): Likewise.
421 (cortex_a15_neon_bitops_q): Likewise.
422 (cortex_a15_neon_from_gp): Likewise.
423 (cortex_a15_neon_from_gp_q): Likewise.
424 (cortex_a15_neon_tbl3_tbl4): Likewise.
425 (cortex_a15_neon_zip_q): Likewise.
426 (cortex_a15_neon_to_gp): Likewise.
427 (cortex_a15_neon_load_a): Likewise.
428 (cortex_a15_neon_load_b): Likewise.
429 (cortex_a15_neon_load_c): Likewise.
430 (cortex_a15_neon_load_d): Likewise.
431 (cortex_a15_neon_load_e): Likewise.
432 (cortex_a15_neon_load_f): Likewise.
433 (cortex_a15_neon_store_a): Likewise.
434 (cortex_a15_neon_store_b): Likewise.
435 (cortex_a15_neon_store_c): Likewise.
436 (cortex_a15_neon_store_d): Likewise.
437 (cortex_a15_neon_store_e): Likewise.
438 (cortex_a15_neon_store_f): Likewise.
439 (cortex_a15_neon_store_g): Likewise.
440 (cortex_a15_neon_store_h): Likewise.
441 (cortex_a15_vfp_to_from_gp): Likewise.
442
bc5e57e3
JG
4432013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
444
445 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
446
447 (cortex_a9_neon_vshl_ddd): Remove.
448 (cortex_a9_neon_vst3_vst4): Likewise.
449 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
450
451 (cortex_a9_neon_bit_ops_q): New.
452
453 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
454 (cortex_a9_neon_int_2): Likewise.
455 (cortex_a9_neon_int_3): Likewise.
456 (cortex_a9_neon_int_4): Likewise.
457 (cortex_a9_neon_int_5): Likewise.
458 (cortex_a9_neon_vqneg_vqabs): Likewise.
459 (cortex_a9_neon_vmov): Likewise.
460 (cortex_a9_neon_vaba): Likewise.
461 (cortex_a9_neon_vaba_qqq): Likewise.
462 (cortex_a9_neon_shift_1): Likewise.
463 (cortex_a9_neon_shift_2): Likewise.
464 (cortex_a9_neon_shift_3): Likewise.
465 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
466 (cortex_a9_neon_vsra_vrsra): Likewise.
467 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
468 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
469 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
470 Likewise.
471 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
472 (cortex_a9_neon_mla_qqq_8_16): Likewise.
473 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
474 Likewise.
475 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
476 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
477 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
478 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
479 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
480 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
481 (cortex_a9_neon_fp_vsum): Likewise.
482 (cortex_a9_neon_fp_vmul_ddd): Likewise.
483 (cortex_a9_neon_fp_vmul_qqd): Likewise.
484 (cortex_a9_neon_fp_vmla_ddd): Likewise.
485 (cortex_a9_neon_fp_vmla_qqq): Likewise.
486 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
487 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
488 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
489 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
490 (cortex_a9_neon_bp_simple): Likewise.
491 (cortex_a9_neon_bp_2cycle): Likewise.
492 (cortex_a9_neon_bp_3cycle): Likewise.
493 (cortex_a9_neon_ldr): Likewise.
494 (cortex_a9_neon_str): Likewise.
495 (cortex_a9_neon_vld1_1_2_regs): Likewise.
496 (cortex_a9_neon_vld1_3_4_regs): Likewise.
497 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
498 (cortex_a9_neon_vld2_4_regs): Likewise.
499 (cortex_a9_neon_vld3_vld4): Likewise.
500 (cortex_a9_neon_vld1_vld2_lane): Likewise.
501 (cortex_a9_neon_vld3_vld4_lane): Likewise.
502 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
503 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
504 (cortex_a9_neon_vst1_3_4_regs): Likewise.
505 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
506 (cortex_a9_neon_vst1_vst2_lane): Likewise.
507 (cortex_a9_neon_vst3_vst4_lane): Likewise.
508 (cortex_a9_neon_mcr): Likewise.
509 (cortex_a9_neon_mcr_2_mcrr): Likewise.
510 (cortex_a9_neon_mrc): Likewise.
511 (cortex_a9_neon_mrrc): Likewise.
512
9deda8cb
JG
5132013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
514
515 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
516
517 (cortex_a8_neon_vshl_ddd): Remove.
518 (cortex_a8_neon_vst3_vst4): Likewise.
519 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
520
521 (cortex_a8_neon_bit_ops_q): New.
522
523 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
524 (cortex_a8_neon_int_2): Likewise..
525 (cortex_a8_neon_int_3): Likewise.
526 (cortex_a8_neon_int_5): Likewise.
527 (cortex_a8_neon_vqneg_vqabs): Likewise.
528 (cortex_a8_neon_int_4): Likewise.
529 (cortex_a8_neon_vaba): Likewise.
530 (cortex_a8_neon_vaba_qqq): Likewise.
531 (cortex_a8_neon_shift_1): Likewise.
532 (cortex_a8_neon_shift_2): Likewise.
533 (cortex_a8_neon_shift_3): Likewise.
534 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
535 (cortex_a8_neon_vsra_vrsra): Likewise.
536 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
537 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
538 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
539 Likewise.
540 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
541 (cortex_a8_neon_mla_qqq_8_16): Likewise.
542 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
543 Likewise.
544 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
545 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
546 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
547 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
548 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
549 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
550 (cortex_a8_neon_fp_vsum): Likewise.
551 (cortex_a8_neon_fp_vmul_ddd): Likewise.
552 (cortex_a8_neon_fp_vmul_qqd): Likewise.
553 (cortex_a8_neon_fp_vmla_ddd): Likewise.
554 (cortex_a8_neon_fp_vmla_qqq): Likewise.
555 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
556 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
557 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
558 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
559 (cortex_a8_neon_bp_simple): Likewise.
560 (cortex_a8_neon_bp_2cycle): Likewise.
561 (cortex_a8_neon_bp_3cycle): Likewise.
562 (cortex_a8_neon_ldr): Likewise.
563 (cortex_a8_neon_str): Likewise.
564 (cortex_a8_neon_vld1_1_2_regs): Likewise.
565 (cortex_a8_neon_vld1_3_4_regs): Likewise.
566 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
567 (cortex_a8_neon_vld2_4_regs): Likewise.
568 (cortex_a8_neon_vld3_vld4): Likewise.
569 (cortex_a8_neon_vld1_vld2_lane): Likewise.
570 (cortex_a8_neon_vld3_vld4_lane): Likewise.
571 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
572 (cortex_a8_neon_vst1_3_4_regs): Likewise.
573 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
574 (cortex_a8_neon_vst1_vst2_lane): Likewise.
575 (cortex_a8_neon_vst3_vst4_lane): Likewise.
576 (cortex_a8_neon_mcr): Likewise.
577 (cortex_a8_neon_mcr_2_mcrr): Likewise.
578 (cortex_a8_neon_mrc): Likewise.
579 (cortex_a8_neon_mrrc): Likewise.
580
0f686aa9
JG
5812013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
582
583 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
584 (fp): New.
585 * config/aarch64/aarch64-simd.md (neon_type): Remove.
586 (aarch64_simd_dup<mode>): Add "type" attribute.
587 (aarch64_dup_lane<mode>): Likewise.
588 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
589 (*aarch64_simd_mov<mode>): Likewise.
590 (aarch64_simd_mov_from_<mode>low): Likewise.
591 (aarch64_simd_mov_from_<mode>high): Likewise.
592 (orn<mode>3): Likewise.
593 (bic<mode>3): Likewise.
594 (add<mode>3): Likewise.
595 (sub<mode>3): Likewise.
596 (mul<mode>3): Likewise.
597 (*aarch64_mul3_elt<mode>): Likewise.
598 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
599 (*aarch64_mul3_elt_to_128df): Likewise.
600 (*aarch64_mul3_elt_to_64v2df): Likewise.
601 (neg<mode>2): Likewise.
602 (abs<mode>2): Likewise.
603 (abd<mode>_3): Likewise.
604 (aba<mode>_3): Likewise.
605 (fabd<mode>_3): Likewise.
606 (*fabd_scalar<mode>3): Likewise.
607 (and<mode>3): Likewise.
608 (ior<mode>3): Likewise.
609 (xor<mode>3): Likewise.
610 (one_cmpl<mode>2): Likewise.
611 (aarch64_simd_vec_set<mode>): Likewise.
612 (aarch64_simd_lshr<mode>): Likewise.
613 (aarch64_simd_ashr<mode>): Likewise.
614 (aarch64_simd_imm_shl<mode>): Likewise.
615 (aarch64_simd_reg_sshl<mode): Likewise.
616 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
617 (aarch64_simd_reg_shl<mode>_signed): Likewise.
618 (aarch64_simd_vec_setv2di): Likewise.
619 (aarch64_simd_vec_set<mode>): Likewise.
620 (aarch64_mla<mode>): Likewise.
621 (*aarch64_mla_elt<mode>): Likewise.
622 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
623 (aarch64_mls<mode>): Likewise.
624 (*aarch64_mls_elt<mode>): Likewise.
625 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
626 (<su><maxmin><mode>3): Likewise.
627 (move_lo_quad_<mode>): Likewise.
628 (aarch64_simd_move_hi_quad_<mode>): Likewise.
629 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
630 (vec_pack_trunc_<mode>): Likewise.
631 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
632 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
633 (*aarch64_<su>mlal_lo<mode>): Likewise.
634 (*aarch64_<su>mlal_hi<mode>): Likewise.
635 (*aarch64_<su>mlsl_lo<mode>): Likewise.
636 (*aarch64_<su>mlsl_hi<mode>): Likewise.
637 (*aarch64_<su>mlal<mode>): Likewise.
638 (*aarch64_<su>mlsl<mode>): Likewise.
639 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
640 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
641 (add<mode>3): Likewise.
642 (sub<mode>3): Likewise.
643 (mul<mode>3): Likewise.
644 (div<mode>3): Likewise.
645 (neg<mode>2): Likewise.
646 (abs<mode>2): Likewise.
647 (fma<mode>4): Likewise.
648 (*aarch64_fma4_elt<mode>): Likewise.
649 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
650 (*aarch64_fma4_elt_to_128df): Likewise.
651 (*aarch64_fma4_elt_to_64v2df): Likewise.
652 (fnma<mode>4): Likewise.
653 (*aarch64_fnma4_elt<mode>): Likewise.
654 (*aarch64_fnma4_elt_<vswap_width_name><mode>
655 (*aarch64_fnma4_elt_to_128df): Likewise.
656 (*aarch64_fnma4_elt_to_64v2df): Likewise.
657 (<frint_pattern><mode>2): Likewise.
658 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
659 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
660 (vec_unpacks_lo_v4sf): Likewise.
661 (aarch64_float_extend_lo_v2df): Likewise.
662 (vec_unpacks_hi_v4sf): Likewise.
663 (aarch64_float_truncate_lo_v2sf): Likewise.
664 (aarch64_float_truncate_hi_v4sf): Likewise.
665 (aarch64_vmls<mode>): Likewise.
666 (<su><maxmin><mode>3): Likewise.
667 (<maxmin_uns><mode>3): Likewise.
668 (reduc_<sur>plus_<mode>): Likewise.
669 (reduc_<sur>plus_v2di): Likewise.
670 (reduc_<sur>plus_v2si): Likewise.
671 (reduc_<sur>plus_<mode>): Likewise.
672 (aarch64_addpv4sf): Likewise.
673 (clz<mode>2): Likewise.
674 (reduc_<maxmin_uns>_<mode>): Likewise.
675 (reduc_<maxmin_uns>_v2di): Likewise.
676 (reduc_<maxmin_uns>_v2si): Likewise.
677 (reduc_<maxmin_uns>_<mode>): Likewise.
678 (reduc_<maxmin_uns>_v4sf): Likewise.
679 (aarch64_simd_bsl<mode>_internal): Likewise.
680 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
681 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
682 (aarch64_get_lane<mode>): Likewise.
683 (*aarch64_combinez<mode>): Likewise.
684 (aarch64_combine<mode>): Likewise.
685 (aarch64_simd_combine<mode>): Likewise.
686 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
687 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
688 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
689 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
690 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
691 (aarch64_<sur>h<addsub><mode>): Likewise.
692 (aarch64_<sur><addsub>hn<mode>): Likewise.
693 (aarch64_<sur><addsub>hn2<mode>): Likewise.
694 (aarch64_pmul<mode>): Likewise.
695 (aarch64_<su_optab><optab><mode>): Likewise.
696 (aarch64_<sur>qadd<mode>): Likewise.
697 (aarch64_sqmovun<mode>): Likewise.
698 (aarch64_<sur>qmovn<mode>): Likewise.
699 (aarch64_s<optab><mode>): Likewise.
700 (aarch64_sq<r>dmulh<mode>): Likewise.
701 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
702 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
703 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
704 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
705 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
706 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
707 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
708 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
709 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
710 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
711 (aarch64_sqdmull<mode>): Likewise.
712 (aarch64_sqdmull_lane<mode>_internal): Likewise.
713 (aarch64_sqdmull_n<mode>): Likewise.
714 (aarch64_sqdmull2<mode>_internal): Likewise.
715 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
716 (aarch64_sqdmull2_n<mode>_internal): Likewise.
717 (aarch64_<sur>shl<mode>): Likewise.
718 (aarch64_<sur>q<r>shl<mode>
719 (aarch64_<sur>shll_n<mode>): Likewise.
720 (aarch64_<sur>shll2_n<mode>): Likewise.
721 (aarch64_<sur>shr_n<mode>): Likewise.
722 (aarch64_<sur>sra_n<mode>): Likewise.
723 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
724 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
725 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
726 (aarch64_cm<optab><mode>): Likewise.
727 (aarch64_cm<optab>di): Likewise.
728 (aarch64_cm<optab><mode>): Likewise.
729 (aarch64_cm<optab>di): Likewise.
730 (aarch64_cmtst<mode>): Likewise.
731 (aarch64_cmtstdi): Likewise.
732 (aarch64_cm<optab><mode>): Likewise.
733 (*aarch64_fac<optab><mode>): Likewise.
734 (aarch64_addp<mode>): Likewise.
735 (aarch64_addpdi): Likewise.
736 (sqrt<mode>2): Likewise.
737 (vec_load_lanesoi<mode>): Likewise.
738 (vec_store_lanesoi<mode>): Likewise.
739 (vec_load_lanesci<mode>): Likewise.
740 (vec_store_lanesci<mode>): Likewise.
741 (vec_load_lanesxi<mode>): Likewise.
742 (vec_store_lanesxi<mode>): Likewise.
743 (*aarch64_mov<mode>): Likewise.
744 (aarch64_ld2<mode>_dreg): Likewise.
745 (aarch64_ld2<mode>_dreg): Likewise.
746 (aarch64_ld3<mode>_dreg): Likewise.
747 (aarch64_ld3<mode>_dreg): Likewise.
748 (aarch64_ld4<mode>_dreg): Likewise.
749 (aarch64_ld4<mode>_dreg): Likewise.
750 (aarch64_tbl1<mode>): Likewise.
751 (aarch64_tbl2v16qi): Likewise.
752 (aarch64_combinev16qi): Likewise.
753 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
754 (aarch64_st2<mode>_dreg): Likewise.
755 (aarch64_st2<mode>_dreg): Likewise.
756 (aarch64_st3<mode>_dreg): Likewise.
757 (aarch64_st3<mode>_dreg): Likewise.
758 (aarch64_st4<mode>_dreg): Likewise.
759 (aarch64_st4<mode>_dreg): Likewise.
760 (*aarch64_simd_ld1r<mode>): Likewise.
761 (aarch64_frecpe<mode>): Likewise.
762 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
763 (aarch64_frecps<mode>): Likewise.
764
f7379e5e
JG
7652013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
766
767 * config/arm/iterators.md (V_elem_ch): New.
768 (q): Likewise.
769 (VQH_type): Likewise.
770 * config/arm/arm.md (is_neon_type): New.
771 (conds): Use is_neon_type.
772 (anddi3_insn): Update type attribute.
773 (xordi3_insn): Likewise.
774 (one_cmpldi2): Likewise.
775 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
776 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
777 (*movmisalign<mode>_neon_store): Likewise.
778 (*movmisalign<mode>_neon_load): Likewise.
779 (vec_set<mode>_internal): Likewise.
780 (vec_set<mode>_internal): Likewise.
781 (vec_setv2di_internal): Likewise.
782 (vec_extract<mode>): Likewise.
783 (vec_extract<mode>): Likewise.
784 (vec_extractv2di): Likewise.
785 (*add<mode>3_neon): Likewise.
786 (adddi3_neon): Likewise.
787 (*sub<mode>3_neon): Likewise.
788 (subdi3_neon): Likewise.
789 (fma<VCVTF:mode>4): Likewise.
790 (fma<VCVTF:mode>4_intrinsic): Likewise.
791 (*fmsub<VCVTF:mode>4): Likewise.
792 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
793 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
794 (ior<mode>3): Likewise.
795 (and<mode>3): Likewise.
796 (orn<mode>3_neon): Likewise.
797 (orndi3_neon): Likewise.
798 (bic<mode>3_neon): Likewise.
799 (bicdi3_neon): Likewise.
800 (xor<mode>3): Likewise.
801 (one_cmpl<mode>2): Likewise.
802 (abs<mode>2): Likewise.
803 (neg<mode>2): Likewise.
804 (negdi2_neon): Likewise.
805 (*umin<mode>3_neon): Likewise.
806 (*umax<mode>3_neon): Likewise.
807 (*smin<mode>3_neon): Likewise.
808 (*smax<mode>3_neon): Likewise.
809 (vashl<mode>3): Likewise.
810 (vashr<mode>3_imm): Likewise.
811 (vlshr<mode>3_imm): Likewise.
812 (ashl<mode>3_signed): Likewise.
813 (ashl<mode>3_unsigned): Likewise.
814 (neon_load_count): Likewise.
815 (ashldi3_neon_noclobber): Likewise.
816 (ashldi3_neon): Likewise.
817 (signed_shift_di3_neon): Likewise.
818 (unsigned_shift_di3_neon): Likewise.
819 (ashrdi3_neon_imm_noclobber): Likewise.
820 (lshrdi3_neon_imm_noclobber): Likewise.
821 (<shift>di3_neon): Likewise.
822 (widen_ssum<mode>3): Likewise.
823 (widen_usum<mode>3): Likewise.
824 (quad_halves_<code>v4si): Likewise.
825 (quad_halves_<code>v4sf): Likewise.
826 (quad_halves_<code>v8hi): Likewise.
827 (quad_halves_<code>v16qi): Likewise.
828 (reduc_splus_v2di): Likewise.
829 (neon_vpadd_internal<mode>): Likewise.
830 (neon_vpsmin<mode>): Likewise.
831 (neon_vpsmax<mode>): Likewise.
832 (neon_vpumin<mode>): Likewise.
833 (neon_vpumax<mode>): Likewise.
834 (*ss_add<mode>_neon): Likewise.
835 (*us_add<mode>_neon): Likewise.
836 (*ss_sub<mode>_neon): Likewise.
837 (*us_sub<mode>_neon): Likewise.
838 (neon_vadd<mode>_unspec): Likewise.
839 (neon_vaddl<mode>): Likewise.
840 (neon_vaddw<mode>): Likewise.
841 (neon_vhadd<mode>): Likewise.
842 (neon_vqadd<mode>): Likewise.
843 (neon_vaddhn<mode>): Likewise.
844 (neon_vmul<mode>): Likewise.
845 (neon_vfms<VCVTF:mode>): Likewise.
846 (neon_vmlal<mode>): Likewise.
847 (neon_vmls<mode>): Likewise.
848 (neon_vmlsl<mode>): Likewise.
849 (neon_vqdmulh<mode>): Likewise.
850 (neon_vqdmlal<mode>): Likewise.
851 (neon_vqdmlsl<mode>): Likewise.
852 (neon_vmull<mode>): Likewise.
853 (neon_vqdmull<mode>): Likewise.
854 (neon_vsub<mode>_unspec): Likewise.
855 (neon_vsubl<mode>): Likewise.
856 (neon_vsubw<mode>): Likewise.
857 (neon_vqsub<mode>): Likewise.
858 (neon_vhsub<mode>): Likewise.
859 (neon_vsubhn<mode>): Likewise.
860 (neon_vceq<mode>): Likewise.
861 (neon_vcge<mode>): Likewise.
862 (neon_vcgeu<mode>): Likewise.
863 (neon_vcgt<mode>): Likewise.
864 (neon_vcgtu<mode>): Likewise.
865 (neon_vcle<mode>): Likewise.
866 (neon_vclt<mode>): Likewise.
867 (neon_vcage<mode>): Likewise.
868 (neon_vcagt<mode>): Likewise.
869 (neon_vtst<mode>): Likewise.
870 (neon_vabd<mode>): Likewise.
871 (neon_vabdl<mode>): Likewise.
872 (neon_vaba<mode>): Likewise.
873 (neon_vabal<mode>): Likewise.
874 (neon_vmax<mode>): Likewise.
875 (neon_vmin<mode>): Likewise.
876 (neon_vpaddl<mode>): Likewise.
877 (neon_vpadal<mode>): Likewise.
878 (neon_vpmax<mode>): Likewise.
879 (neon_vpmin<mode>): Likewise.
880 (neon_vrecps<mode>): Likewise.
881 (neon_vrsqrts<mode>): Likewise.
882 (neon_vqabs<mode>): Likewise.
883 (neon_vqneg<mode>): Likewise.
884 (neon_vcls<mode>): Likewise.
885 (clz<mode>2): Likewise.
886 (popcount<mode>2): Likewise.
887 (neon_vrecpe<mode>): Likewise.
888 (neon_vrsqrte<mode>): Likewise.
889 (neon_vget_lane<mode>_sext_internal): Likewise.
890 (neon_vget_lane<mode>_zext_internal): Likewise.
891 (neon_vdup_n<mode>): Likewise.
892 (neon_vdup_n<mode>): Likewise.
893 (neon_vdup_nv2di): Likewise.
894 (neon_vdup_lane<mode>_interal): Likewise.
895 (*neon_vswp<mode>): Likewise.
896 (neon_vcombine<mode>): Likewise.
897 (float<mode><V_cvtto>2): Likewise.
898 (floatuns<mode><V_cvtto>2): Likewise.
899 (fix_trunc<mode><V_cvtto>2): Likewise.
900 (fixuns_trunc<mode><V_cvtto>2
901 (neon_vcvt<mode>): Likewise.
902 (neon_vcvt<mode>): Likewise.
903 (neon_vcvtv4sfv4hf): Likewise.
904 (neon_vcvtv4hfv4sf): Likewise.
905 (neon_vcvt_n<mode>): Likewise.
906 (neon_vcvt_n<mode>): Likewise.
907 (neon_vmovn<mode>): Likewise.
908 (neon_vqmovn<mode>): Likewise.
909 (neon_vqmovun<mode>): Likewise.
910 (neon_vmovl<mode>): Likewise.
911 (neon_vmul_lane<mode>): Likewise.
912 (neon_vmul_lane<mode>): Likewise.
913 (neon_vmull_lane<mode>): Likewise.
914 (neon_vqdmull_lane<mode>): Likewise.
915 (neon_vqdmulh_lane<mode>): Likewise.
916 (neon_vqdmulh_lane<mode>): Likewise.
917 (neon_vmla_lane<mode>): Likewise.
918 (neon_vmla_lane<mode>): Likewise.
919 (neon_vmlal_lane<mode>): Likewise.
920 (neon_vqdmlal_lane<mode>): Likewise.
921 (neon_vmls_lane<mode>): Likewise.
922 (neon_vmls_lane<mode>): Likewise.
923 (neon_vmlsl_lane<mode>): Likewise.
924 (neon_vqdmlsl_lane<mode>): Likewise.
925 (neon_vext<mode>): Likewise.
926 (neon_vrev64<mode>): Likewise.
927 (neon_vrev32<mode>): Likewise.
928 (neon_vrev16<mode>): Likewise.
929 (neon_vbsl<mode>_internal): Likewise.
930 (neon_vshl<mode>): Likewise.
931 (neon_vqshl<mode>): Likewise.
932 (neon_vshr_n<mode>): Likewise.
933 (neon_vshrn_n<mode>): Likewise.
934 (neon_vqshrn_n<mode>): Likewise.
935 (neon_vqshrun_n<mode>): Likewise.
936 (neon_vshl_n<mode>): Likewise.
937 (neon_vqshl_n<mode>): Likewise.
938 (neon_vqshlu_n<mode>): Likewise.
939 (neon_vshll_n<mode>): Likewise.
940 (neon_vsra_n<mode>): Likewise.
941 (neon_vsri_n<mode>): Likewise.
942 (neon_vsli_n<mode>): Likewise.
943 (neon_vtbl1v8qi): Likewise.
944 (neon_vtbl2v8qi): Likewise.
945 (neon_vtbl3v8qi): Likewise.
946 (neon_vtbl4v8qi): Likewise.
947 (neon_vtbl1v16qi): Likewise.
948 (neon_vtbl2v16qi): Likewise.
949 (neon_vcombinev16qi): Likewise.
950 (neon_vtbx1v8qi): Likewise.
951 (neon_vtbx2v8qi): Likewise.
952 (neon_vtbx3v8qi): Likewise.
953 (neon_vtbx4v8qi): Likewise.
954 (*neon_vtrn<mode>_insn): Likewise.
955 (*neon_vzip<mode>_insn): Likewise.
956 (*neon_vuzp<mode>_insn): Likewise.
957 (neon_vld1<mode>): Likewise.
958 (neon_vld1_lane<mode>): Likewise.
959 (neon_vld1_lane<mode>): Likewise.
960 (neon_vld1_dup<mode>): Likewise.
961 (neon_vld1_dup<mode>): Likewise.
962 (neon_vld1_dupv2di): Likewise.
963 (neon_vst1<mode>): Likewise.
964 (neon_vst1_lane<mode>): Likewise.
965 (neon_vst1_lane<mode>): Likewise.
966 (neon_vld2<mode>): Likewise.
967 (neon_vld2<mode>): Likewise.
968 (neon_vld2_lane<mode>): Likewise.
969 (neon_vld2_lane<mode>): Likewise.
970 (neon_vld2_dup<mode>): Likewise.
971 (neon_vst2<mode>): Likewise.
972 (neon_vst2<mode>): Likewise.
973 (neon_vst2_lane<mode>): Likewise.
974 (neon_vst2_lane<mode>): Likewise.
975 (neon_vld3<mode>): Likewise.
976 (neon_vld3qa<mode>): Likewise.
977 (neon_vld3qb<mode>): Likewise.
978 (neon_vld3_lane<mode>): Likewise.
979 (neon_vld3_lane<mode>): Likewise.
980 (neon_vld3_dup<mode>): Likewise.
981 (neon_vst3<mode>): Likewise.
982 (neon_vst3qa<mode>): Likewise.
983 (neon_vst3qb<mode>): Likewise.
984 (neon_vst3_lane<mode>): Likewise.
985 (neon_vst3_lane<mode>): Likewise.
986 (neon_vld4<mode>): Likewise.
987 (neon_vld4qa<mode>): Likewise.
988 (neon_vld4qb<mode>): Likewise.
989 (neon_vld4_lane<mode>): Likewise.
990 (neon_vld4_lane<mode>): Likewise.
991 (neon_vld4_dup<mode>): Likewise.
992 (neon_vst4<mode>): Likewise.
993 (neon_vst4qa<mode>): Likewise.
994 (neon_vst4qb<mode>): Likewise.
995 (neon_vst4_lane<mode>): Likewise.
996 (neon_vst4_lane<mode>): Likewise.
997 (neon_vec_unpack<US>_lo_<mode>): Likewise.
998 (neon_vec_unpack<US>_hi_<mode>): Likewise.
999 (neon_vec_<US>mult_lo_<mode>): Likewise.
1000 (neon_vec_<US>mult_hi_<mode>): Likewise.
1001 (neon_vec_<US>shiftl_<mode>): Likewise.
1002 (neon_unpack<US>_<mode>): Likewise.
1003 (neon_vec_<US>mult_<mode>): Likewise.
1004 (vec_pack_trunc_<mode>): Likewise.
1005 (neon_vec_pack_trunc_<mode>): Likewise.
1006 (neon_vabd<mode>_2): Likewise.
1007 (neon_vabd<mode>_3): Likewise.
1008
a9e66678
JG
10092013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1010
1011 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1012 (load_pair): Update type attribute.
1013 (store_pair): Update type attribute.
1014 * config/aarch64/iterators.md (q): New.
1015
20445ed6
JG
10162013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1017
1018 * config/arm/types.md: Add new types for Neon insns.
1019
afb4ac68
AI
10202013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1021 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1022 Sergey Lega <sergey.s.lega@intel.com>
1023 Anna Tikhonova <anna.tikhonova@intel.com>
1024 Ilya Tocar <ilya.tocar@intel.com>
1025 Andrey Turetskiy <andrey.turetskiy@intel.com>
1026 Ilya Verbin <ilya.verbin@intel.com>
1027 Kirill Yukhin <kirill.yukhin@intel.com>
1028 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1029
1030 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1031 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1032 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1033 (rcp14<mode>): New.
1034 (srcp14<mode>): Ditto.
1035 (rsqrt14<mode>): Ditto.
1036 (rsqrt14<mode>): Ditto.
1037 (avx512f_vmscalef<mode>): Ditto.
1038 (avx512f_scalef<mode>): Ditto.
1039 (avx512f_getexp<mode>): Ditto.
1040 (avx512f_sgetexp<mode>): Ditto.
1041 (avx512f_fixupimm<mode>): Ditto.
1042 (avx512f_sfixupimm<mode>): Ditto.
1043 (avx512f_rndscale<mode>): Ditto.
1044 (*avx512er_exp2<mode>): Ditto.
1045 (*avx512er_rcp28<mode>): Ditto.
1046 (avx512er_rsqrt28<mode>): Ditto.
1047 (avx512f_getmant<mode>): Ditto.
1048 (avx512f_getmant<mode>): Ditto.
1049 (avx512f_rndscale<mode>): Fix formatting.
1050
a1b499a3
JL
10512013-10-15 Martin Jambor <mjambor@suse.cz>
1052
1053 * ipa-utils.h (ipa_edge_within_scc): Declare.
1054 * ipa-cp.c (edge_within_scc): Moved...
1055 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1056
2e2206fa
AI
10572013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1058 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1059 Sergey Lega <sergey.s.lega@intel.com>
1060 Anna Tikhonova <anna.tikhonova@intel.com>
1061 Ilya Tocar <ilya.tocar@intel.com>
1062 Andrey Turetskiy <andrey.turetskiy@intel.com>
1063 Ilya Verbin <ilya.verbin@intel.com>
1064 Kirill Yukhin <kirill.yukhin@intel.com>
1065 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1066
1067 * config/i386/predicates.md (const_8_to_15_operand): New.
1068 (const_16_to_31_operand): Ditto.
1069 * config/i386/sse.md (V8FI): New.
1070 (V16FI): Ditto.
1071 (reduc_splus_v8df): Ditto.
1072 (reduc_splus_v16sf): Ditto.
1073 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1074 (vec_extract_hi_<mode>): Ditto.
1075 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1076 (vec_set_lo_<mode>): Ditto.
1077 (vec_set_hi_<mode>): Ditto.
1078 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1079 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1080 (avx512f_pshufd_1): Ditto.
1081 (avx512f_broadcast<mode>): Ditto.
1082 (avx512f_broadcast<mode>): Ditto.
1083 (define_split): Split vec_extract_lo into move.
1084 (ssequartermode): Ditto.
1085 (ssedoublemode): Extened with wider modes.
1086 (vec_extract_lo_<mode>): Ditto.
1087
0fe65b75
AI
10882013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1089 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1090 Sergey Lega <sergey.s.lega@intel.com>
1091 Anna Tikhonova <anna.tikhonova@intel.com>
1092 Ilya Tocar <ilya.tocar@intel.com>
1093 Andrey Turetskiy <andrey.turetskiy@intel.com>
1094 Ilya Verbin <ilya.verbin@intel.com>
1095 Kirill Yukhin <kirill.yukhin@intel.com>
1096 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1097
1098 * config/i386/predicates.md (register_or_constm1_operand): New.
1099 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1100 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1101 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1102 UNSPEC_SCATTER_PREFETCH
1103 (VI48_512): New.
1104 (avx512f_ucmp<mode>3): Ditto.
1105 (avx512f_vternlog<mode>): Ditto.
1106 (avx512f_align<mode>): Ditto.
1107 (<shift_insn><mode>3): Ditto.
1108 (avx512f_<rotate>v<mode>): Ditto.
1109 (avx512f_<rotate><mode>): Ditto.
1110 (avx512f_eq<mode>3): Ditto.
1111 (avx512f_eq<mode>3_1): Ditto.
1112 (avx512f_gt<mode>3): Ditto.
1113 (avx512f_testm<mode>3): Ditto.
1114 (avx512f_testnm<mode>3): Ditto.
1115 (avx512pf_gatherpf<mode>): Ditto.
1116 (*avx512pf_gatherpf<mode>_mask): Ditto.
1117 (*avx512pf_gatherpf<mode>): Ditto.
1118 (avx512pf_scatterpf<mode>): Ditto.
1119 (*avx512pf_scatterpf<mode>_mask): Ditto.
1120 (*avx512pf_scatterpf<mode>): Ditto.
1121 (avx512f_vec_dup_gpr<mode>): Ditto.
1122 (clz<mode>2): Ditto.
1123 (conflict<mode>): Ditto.
1124 (REDUC_SMINMAX_MODE): Extened with wider modes.
1125 (reduc_<code>_<mode>): Ditto.
1126 (vlshr<mode>3): Ditto.
1127 (vashl<mode>3): Ditto.
1128
ab931c71
AI
11292013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1130 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1131 Sergey Lega <sergey.s.lega@intel.com>
1132 Anna Tikhonova <anna.tikhonova@intel.com>
1133 Ilya Tocar <ilya.tocar@intel.com>
1134 Andrey Turetskiy <andrey.turetskiy@intel.com>
1135 Ilya Verbin <ilya.verbin@intel.com>
1136 Kirill Yukhin <kirill.yukhin@intel.com>
1137 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1138
1139 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1140 UNSPEC_SCATTER.
1141 (VI48F_512): New.
1142 (avx512fmaskmode): Ditto.
1143 (bcstscalarsuff): Ditto.
1144 (avx512f_blendm<mode>): Ditto.
1145 (cmp_imm_predicate): Ditto.
1146 (avx512f_cmp<mode>3): Ditto.
1147 (avx512f_vec_dup<mode>): Ditto.
1148 (avx512f_vec_dup_mem<mode>): Ditto.
1149 (avx512f_vpermi2var<mode>3): Ditto.
1150 (avx512f_vpermt2var<mode>3): Ditto.
1151 (vec_init<mode>): Ditto.
1152 (avx512f_gathersi<mode>): Ditto.
1153 (*avx512f_gathersi<mode>): Ditto.
1154 (*avx512f_gathersi<mode>_2): Ditto.
1155 (avx512f_gatherdi<mode>): Ditto.
1156 (*avx512f_gatherdi<mode>): Ditto.
1157 (*avx512f_gatherdi<mode>_2): Ditto.
1158 (avx512f_scattersi<mode>): Ditto.
1159 (*avx512f_scattersi<mode>): Ditto.
1160 (avx512f_scatterdi<mode>): Ditto.
1161 (*avx512f_scatterdi<mode>): Ditto.
1162 (sseintprefix): Extened with wider modes.
1163 (VEC_GATHER_IDXSI): Ditto.
1164 (VEC_GATHER_IDXDI): Ditto.
1165 (VEC_GATHER_SRCDI): Ditto.
1166
c9acb877
MGD
11672013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1168 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1169
1170 * config/arm/t-aprofile: New file.
1171 * config.gcc: Handle --with-multilib-list option.
1172
ecbda484
BS
11732013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1174
1175 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
1176 r2.
1177
24f161fd
RB
11782013-10-15 Richard Biener <rguenther@suse.de>
1179
1180 * tree-loop-distribution.c (build_empty_rdg): Inline into
1181 single user.
1182 (rdg_flag_vertex): Inline into single user.
1183 (rdg_flag_vertex_and_dependent): Likewise.
1184 (build_rdg_partition_for_vertex): Remove processed bitmap.
1185 (rdg_build_partitions): Simplify.
1186
5de989ed
RB
11872013-10-15 Richard Biener <rguenther@suse.de>
1188
1189 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1190 Restructure forwarding through conversions and copies to
1191 avoid performing copy-propagation the wrong way. Adjust
1192 recursion invocations.
1193 (forward_propagate_addr_expr): Add argument stating if we
1194 are recursing from a single-use.
1195 (ssa_forward_propagate_and_combine): Adjust.
1196
47e0da37
DM
11972013-10-14 David Malcolm <dmalcolm@redhat.com>
1198
1199 * dumpfile.h (gcc::dump_manager): New class, to hold state
1200 relating to dumpfile management.
1201 (get_dump_file_name): Remove in favor of method of dump_manager.
1202 (dump_initialized_p): Likewise.
1203 (dump_start): Likewise.
1204 (dump_finish): Likewise.
1205 (dump_switch_p): Likewise.
1206 (dump_register): Likewise.
1207 (get_dump_file_info): Likewise.
1208 * context.c (gcc::context::context): Construct the dump_manager
1209 instance.
1210 * context.h (gcc::context::get_dumps): New.
1211 (gcc::context::m_dumps): New.
1212 * coverage.c (coverage_init): Port to dump_manager API.
1213 * dumpfile.c (extra_dump_files): Convert to field of
1214 gcc::dump_manager.
1215 (extra_dump_files_in_use): Likewise.
1216 (extra_dump_files_alloced): Likewise.
1217 (gcc::dump_manager::dump_manager): New.
1218 (dump_register): Convert to...
1219 (gcc::dump_manager::dump_register): ...method, replacing
1220 function-static next_dump with m_next_dump field.
1221 (get_dump_file_info): Convert to...
1222 (gcc::dump_manager::get_dump_file_info): ...method.
1223 (get_dump_file_name): Convert to...
1224 (gcc::dump_manager::get_dump_file_name): ...method.
1225 (dump_start): Convert to...
1226 (gcc::dump_manager::dump_start): ...method.
1227 (dump_finish): Convert to...
1228 (gcc::dump_manager::dump_finish): ...method.
1229 (dump_begin): Replace body with...
1230 (gcc::dump_manager::dump_begin): ...new method.
1231 (dump_phase_enabled_p): Convert to...
1232 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1233 (dump_phase_enabled_p): Convert to...
1234 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1235 (dump_initialized_p): Convert to...
1236 (gcc::dump_manager::dump_initialized_p): ...method.
1237 (dump_flag_name): Replace body with...
1238 (gcc::dump_manager::dump_flag_name): ...new method.
1239 (dump_enable_all): Convert to...
1240 (gcc::dump_manager::dump_enable_all): ...new method.
1241 (opt_info_enable_passes): Convert to...
1242 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1243 (dump_switch_p_1): Convert to...
1244 (gcc::dump_manager::dump_switch_p_1): ...new method.
1245 (dump_switch_p): Convert to...
1246 (gcc::dump_manager::dump_switch_p): ...new method.
1247 (opt_info_switch_p): Port to dump_manager API.
1248 (enable_rtl_dump_file): Likewise.
1249 * opts-global.c (handle_common_deferred_options): Port to new
1250 dump_manager API.
1251 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1252 (pass_manager::register_one_dump_file): Likewise.
1253 (pass_manager::register_pass): Likewise.
1254 (pass_init_dump_file): Likewise.
1255 (pass_fini_dump_file): Likewise.
1256 * statistics.c (statistics_early_init): Likewise.
1257
83fd5d11
RB
12582013-10-14 Richard Biener <rguenther@suse.de>
1259
1260 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1261 iterative_hash_canonical_type, gimple_canonical_type_hash,
1262 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1263 gimple_register_canonical_type, print_gimple_types_stats,
1264 free_gimple_type_tables): Move to lto/lto.c
1265 (gt-gimple.h): Do not include.
1266 * gimple.h (gimple_register_canonical_type,
1267 print_gimple_types_stats, free_gimple_type_tables): Remove.
1268 * Makefile.in (GTFILES): Remove gimple.c.
1269
a6dbd0f7
TS
12702013-10-14 Travis Snoozy <quandary@remstate.com>
1271
1272 PR target/58716
1273 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1274 scanning for msp430x targets.
1275
b5ccb9ed
EB
12762013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1277
1278 PR bootstrap/58509
1279 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1280 (registers_ok_for_ldd_peep): Move around.
1281 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1282 * config/sparc/sparc.md (widening peepholes): Use it.
1283
fd7e5084
RB
12842013-10-14 Richard Biener <rguenther@suse.de>
1285
1286 PR middle-end/58712
1287 PR middle-end/55358
1288 * gimple.c (iterative_hash_canonical_type): Make sure to
1289 record the hash into the correct hashtable slot.
1290
3246afaa
EB
12912013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1292
1293 PR rtl-optimization/58662
1294 * combine.c (try_combine): Take into account death nodes on I2 when
1295 splitting a PARALLEL of two independent SETs. Fix dump message.
1296
5d30dc5b
OE
12972013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1298
1299 PR target/51244
1300 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1301 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1302 * config/sh/t-sh (sh_treg_combine.o): New entry.
1303 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1304 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1305 (register_sh_passes): New function. Register sh_treg_combine pass.
1306 (sh_option_override): Invoke it.
1307 (sh_canonicalize_comparison): Handle op0_preserve_value.
1308 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1309 opportunities. Canonicalize branch condition.
1310 (nott): Allow only if pseudos can be created for non-SH2A.
1311
37d1c5db
L
13122013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1313
1314 PR target/58690
1315 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1316 (ix86_expand_movmem): Replace copy_addr_to_reg with
1317 ix86_copy_addr_to_reg.
1318 (ix86_expand_setmem): Likewise.
1319
b86a70ff
AM
13202013-10-12 Alexander Monakov <amonakov@ispras.ru>
1321
1322 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1323 provided by ix86_fp_compare_mode instead of CCFPUmode.
1324
6e1d5961
JG
13252013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1326
1327 * config/aarch64/arm_neon.h
1328 (vtbx<1,3>_<psu>8): Fix register constriants.
1329
ef3cfba2
JL
13302013-10-11 Jeff Law <law@redhat.com>
1331
1332 PR tree-optimization/58640
adcfd489
UB
1333 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1334 threading paths that cross over two loop entry points.
ef3cfba2 1335
6e8b7d9c
BS
13362013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1337
1338 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1339 handle vector float as well.
1340 (*vsx_le_perm_load_v4si): Likewise.
1341 (*vsx_le_perm_store_v2di): Likewise.
1342 (*vsx_le_perm_store_v4si): Likewise.
1343
f200869a
BS
13442013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1345
1346 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1347 directly to circumvent subtract from splat{31} workaround.
1348 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1349 prototype.
1350 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1351 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1352 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1353 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1354 separate big and little endian logic.
1355 (*altivec_vperm_<mode>_internal): New define_insn.
1356 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1357 separate big and little endian logic.
1358 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1359 (vec_permv16qi): Add little endian logic.
1360
8d28e3fc
MG
13612013-10-11 Marc Glisse <marc.glisse@inria.fr>
1362
1363 * doc/extend.texi (returns_nonnull): Remove arguments.
1364
3c87b77b
AI
13652013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1366 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1367 Sergey Lega <sergey.s.lega@intel.com>
1368 Anna Tikhonova <anna.tikhonova@intel.com>
1369 Ilya Tocar <ilya.tocar@intel.com>
1370 Andrey Turetskiy <andrey.turetskiy@intel.com>
1371 Ilya Verbin <ilya.verbin@intel.com>
1372 Kirill Yukhin <kirill.yukhin@intel.com>
1373 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1374
1375 * config/i386/sse.md (VI48F_256_512): New.
1376 (avx2_permvar<mode>): Change to ...
1377 (<avx2_avx512f>_permvar<mode>): This.
1378
50e60d7d
AI
13792013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1380 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1381 Sergey Lega <sergey.s.lega@intel.com>
1382 Anna Tikhonova <anna.tikhonova@intel.com>
1383 Ilya Tocar <ilya.tocar@intel.com>
1384 Andrey Turetskiy <andrey.turetskiy@intel.com>
1385 Ilya Verbin <ilya.verbin@intel.com>
1386 Kirill Yukhin <kirill.yukhin@intel.com>
1387 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1388
1389 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
1390 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1391 * config/i386/sse.md (VI4_AVX): New.
1392 (sf2simodelower): Ditto.
1393 (sse2_cvtps2dq): Change to ...
1394 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1395
f62ce24f
AI
13962013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1397 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1398 Sergey Lega <sergey.s.lega@intel.com>
1399 Anna Tikhonova <anna.tikhonova@intel.com>
1400 Ilya Tocar <ilya.tocar@intel.com>
1401 Andrey Turetskiy <andrey.turetskiy@intel.com>
1402 Ilya Verbin <ilya.verbin@intel.com>
1403 Kirill Yukhin <kirill.yukhin@intel.com>
1404 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1405
1406 * config/i386/sse.md (V_512): New.
1407 (VI_512): Ditto.
1408 (vcond<V_512:mode><VF_512:mode>): Ditto.
1409 (vcond<V_512:mode><VI_512:mode>): Ditto.
1410 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1411
558d9f79
AI
14122013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1413 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1414 Sergey Lega <sergey.s.lega@intel.com>
1415 Anna Tikhonova <anna.tikhonova@intel.com>
1416 Ilya Tocar <ilya.tocar@intel.com>
1417 Andrey Turetskiy <andrey.turetskiy@intel.com>
1418 Ilya Verbin <ilya.verbin@intel.com>
1419 Kirill Yukhin <kirill.yukhin@intel.com>
1420 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1421
1422 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1423 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1424 (FMAMODE): Ditto.
1425 (fma<mode>4): Removed condition.
1426 (fms<mode>4): Ditto.
1427 (fnma<mode>4): Ditto.
1428 (fnms<mode>4): Ditto.
1429 (fma4i_fmadd_<mode>): Ditto.
1430 (*fma_fmadd_<mode>): Ditto.
1431 (*fma_fmsub_<mode>): Ditto.
1432 (*fma_fnmadd_<mode>): Ditto.
1433 (*fma_fnmsub_<mode>): Ditto.
1434 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1435 (*fma_fmaddsub_<mode>): Ditto.
1436 (*fma_fmsubadd_<mode>): Ditto.
1437 (*fmai_fmadd_<mode>): Ditto.
1438 (*fmai_fmsub_<mode>): Ditto.
1439 (*fmai_fnmadd_<mode>): Ditto.
1440 (*fmai_fnmsub_<mode>): Ditto.
1441
e8d08206
AI
14422013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1443 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1444 Sergey Lega <sergey.s.lega@intel.com>
1445 Anna Tikhonova <anna.tikhonova@intel.com>
1446 Ilya Tocar <ilya.tocar@intel.com>
1447 Andrey Turetskiy <andrey.turetskiy@intel.com>
1448 Ilya Verbin <ilya.verbin@intel.com>
1449 Kirill Yukhin <kirill.yukhin@intel.com>
1450 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1451
1452 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1453 (VI124_256): Changed to ...
1454 (VI124_256_48_512): This.
1455 (ssepackmode): Extended with wider modes.
1456 (<code><mode>3): Changed iterator.
1457 (*avx2_<code><mode>3): Ditto.
1458 (vec_pack_trunc_<mode>): Ditto.
1459
16821545
AI
14602013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1461 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1462 Sergey Lega <sergey.s.lega@intel.com>
1463 Anna Tikhonova <anna.tikhonova@intel.com>
1464 Ilya Tocar <ilya.tocar@intel.com>
1465 Andrey Turetskiy <andrey.turetskiy@intel.com>
1466 Ilya Verbin <ilya.verbin@intel.com>
1467 Kirill Yukhin <kirill.yukhin@intel.com>
1468 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1469
1470 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1471 (VI8F_256_512): Ditto.
1472 (abs<mode>2): Changed iterator.
1473 (avx2_perm<mode>): Changed to ...
1474 (<avx2_avx512f>_perm<mode>): This.
1475 (avx2_perm<mode>_1): Changed to ...
1476 (<avx2_avx512f>_perm<mode>_1): This.
1477
5348cff8
AI
14782013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1479 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1480 Sergey Lega <sergey.s.lega@intel.com>
1481 Anna Tikhonova <anna.tikhonova@intel.com>
1482 Ilya Tocar <ilya.tocar@intel.com>
1483 Andrey Turetskiy <andrey.turetskiy@intel.com>
1484 Ilya Verbin <ilya.verbin@intel.com>
1485 Kirill Yukhin <kirill.yukhin@intel.com>
1486 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1487
1488 * config/i386/sse.md (VI48_AVX512F): New.
1489 (VI48_AVX2): Changed to ...
1490 (VI48_AVX2_48_AVX512F): This.
1491 (avx2_ashrv<mode>): Changed to ...
1492 (<avx2_avx512f>_ashrv<mode>): This.
1493 (avx2_<shift_insn>v<mode>): Changed to ...
1494 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1495
f5f41d88
AI
14962013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1497 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1498 Sergey Lega <sergey.s.lega@intel.com>
1499 Anna Tikhonova <anna.tikhonova@intel.com>
1500 Ilya Tocar <ilya.tocar@intel.com>
1501 Andrey Turetskiy <andrey.turetskiy@intel.com>
1502 Ilya Verbin <ilya.verbin@intel.com>
1503 Kirill Yukhin <kirill.yukhin@intel.com>
1504 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1505
1506 * config/i386/sse.md (VI4_AVX512F): New.
1507 (VI8_AVX2_AVX512F): Ditto.
1508 (mul<mode>3): Extended with wider modes.
1509 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1510 (mul<mode>3): Ditto.
1511 (vec_widen_<s>mult_odd_<mode>): Ditto.
1512
3bdf6340
AI
15132013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1514 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1515 Sergey Lega <sergey.s.lega@intel.com>
1516 Anna Tikhonova <anna.tikhonova@intel.com>
1517 Ilya Tocar <ilya.tocar@intel.com>
1518 Andrey Turetskiy <andrey.turetskiy@intel.com>
1519 Ilya Verbin <ilya.verbin@intel.com>
1520 Kirill Yukhin <kirill.yukhin@intel.com>
1521 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1522
1523 * config/i386/sse.md (VI2_AVX512F): New.
1524 (VI124_AVX512F): Ditto.
1525 (sseunpackmode): Extended with wider modes.
1526 (sseunpackfltmode): Ditto.
1527 (vec_unpacks_float_hi_<mode>): Ditto.
1528 (vec_unpacks_float_lo_<mode>): Ditto.
1529 (vec_unpacku_float_hi_<mode>): Ditto.
1530 (vec_unpacku_float_lo_<mode>): Ditto.
1531 (vec_unpacks_lo_<mode>): Ditto.
1532 (vec_unpacks_hi_<mode>): Ditto.
1533 (vec_unpacku_lo_<mode>): Ditto.
1534 (vec_unpacku_hi_<mode>): Ditto.
1535
67f783cb
AI
15362013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1537 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1538 Sergey Lega <sergey.s.lega@intel.com>
1539 Anna Tikhonova <anna.tikhonova@intel.com>
1540 Ilya Tocar <ilya.tocar@intel.com>
1541 Andrey Turetskiy <andrey.turetskiy@intel.com>
1542 Ilya Verbin <ilya.verbin@intel.com>
1543 Kirill Yukhin <kirill.yukhin@intel.com>
1544 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1545
1546 * config/i386/i386.md (multdiv): New.
1547 (multdiv_mnemonic): Ditto.
1548 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1549 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1550 (<sse>_vmdiv<mode>3): Removed.
1551
ec5e777c
AI
15522013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1553 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1554 Sergey Lega <sergey.s.lega@intel.com>
1555 Anna Tikhonova <anna.tikhonova@intel.com>
1556 Ilya Tocar <ilya.tocar@intel.com>
1557 Andrey Turetskiy <andrey.turetskiy@intel.com>
1558 Ilya Verbin <ilya.verbin@intel.com>
1559 Kirill Yukhin <kirill.yukhin@intel.com>
1560 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1561
1562 * config/i386/sse.md (V): Extended with wider modes.
1563 (VF2): Ditto.
1564 (ssehalfvecmode): Ditto.
1565 (i128): Ditto.
1566 (ssepackfltmode): Ditto.
1567 (avx_vec_concat<mode>): Ditto.
1568 (V_256_512): New iterator.
1569 (VF2_512_256): Ditto.
1570 (si2dfmode): New attribute.
1571 (si2dfmodelower): Ditto.
1572 (sf2dfmode): Ditto.
1573 (concat_tg_mode): Ditto.
1574 (floatv4siv4df2): Changed to ...
1575 (float<si2dfmodelower><mode>2): This.
1576 (avx_cvtps2pd256): Changed to ...
1577 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1578 (vec_pack_trunc_v4df): Changed to ...
1579 (vec_pack_trunc_<mode>): This.
1580 (avx_vpermil<mode>): Changed to ...
1581 (<sse2_avx_avx512f>_vpermil<mode>): This.
1582 (<fixsuffix>fix_truncv8dfv8si2): New.
1583 (vec_pack_sfix_trunc_v8df): Ditto.
1584 (avx512f_rndscale<mode>): Ditto.
1585 (avx512f_roundpd512): Ditto.
1586 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1587
a9ccbba2
AI
15882013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1589 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1590 Sergey Lega <sergey.s.lega@intel.com>
1591 Anna Tikhonova <anna.tikhonova@intel.com>
1592 Ilya Tocar <ilya.tocar@intel.com>
1593 Andrey Turetskiy <andrey.turetskiy@intel.com>
1594 Ilya Verbin <ilya.verbin@intel.com>
1595 Kirill Yukhin <kirill.yukhin@intel.com>
1596 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1597
1598 * config/i386/i386.md (any_fix): New iterator.
1599 (fixsuffix): New attribute.
1600 * config/i386/sse.md (VF1): Extened with wider modes.
1601 (VI): Ditto.
1602 (VI_AVX2): Ditto.
1603 (VI8): Ditto.
1604 (sseintvecmodelower): Ditto.
1605 (ssescalarmode): Ditto.
1606 (ssescalarnum): Ditto.
1607 (VF1_128_256): New.
1608 (ssexmmmode): Ditto.
1609 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1610 (<sse>_rcp<mode>2): Change iterator.
1611 (rsqrt<mode>2): Ditto.
1612 (<sse>_rsqrt<mode>2): Ditto.
1613 (avx2_vec_dup<mode>): Ditto.
1614 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1615 (round<mode>2_sfix): Ditto.
1616 (avx2_pbroadcast<mode>): Ditto.
1617 (*andnot<mode>3): Handle XI mode.
1618 (*<code><mode>3): Ditto.
1619 (AVXTOSSEMODE): Removed.
1620 (avx_vpermil<mode>): Changed to ...
1621 (<sse2_avx_avx512f>_vpermil<mode>): This.
1622
2b1ebb0c
AI
16232013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1624 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1625 Sergey Lega <sergey.s.lega@intel.com>
1626 Anna Tikhonova <anna.tikhonova@intel.com>
1627 Ilya Tocar <ilya.tocar@intel.com>
1628 Andrey Turetskiy <andrey.turetskiy@intel.com>
1629 Ilya Verbin <ilya.verbin@intel.com>
1630 Kirill Yukhin <kirill.yukhin@intel.com>
1631 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1632
1633 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1634 (<sse>_comi): Ditto.
1635 (<sse>_ucomi): Ditto.
1636 (sse_cvtss2siq_2): Ditto.
1637 (sse2_cvtsd2si): Ditto.
1638 (sse2_cvtsd2siq): Ditto.
1639 (sse2_cvttsd2si): Ditto.
1640 (sse2_cvttsd2siq): Ditto.
1641 (<shift_insn><mode>3): Ditto.
1642 (sse2_cvtsi2sdq): Update constraint and prefix.
1643 (sse_cvtsi2ss): Update prefix.
1644 (sse_cvtsi2ssq): Ditto.
1645
d89124ed
JJ
16462013-10-11 Jakub Jelinek <jakub@redhat.com>
1647
1648 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1649 ignore internal calls.
1650
e6ad28c3
RB
16512013-10-11 Richard Biener <rguenther@suse.de>
1652
1653 * tree-pretty-print.c (dump_generic_node): Allow to dump
1654 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
1655 (OVF) if TREE_OVERFLOW is set.
1656
d1227447
TS
16572013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1658
1ac4b8e4
TS
1659 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1660
7d05cebb
TS
1661 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1662 * gimple.h: Likewise.
1663
adcfd489 1664 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 1665
1a79fb8a
TS
1666 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1667 macros.
1668
3afd2873
TS
1669 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1670
adcfd489 1671 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
1672 * configure: Regenerate.
1673
acf0174b
JJ
16742013-10-11 Jakub Jelinek <jakub@redhat.com>
1675
1676 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1677 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1678 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1679 similarly pp_right_paren.
1680 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1681 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1682 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1683 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1684 clauses.
1685 (omp_declare_simd_clauses_equal,
1686 omp_remove_redundant_declare_simd_attrs): New functions.
1687 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1688 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1689 * tree.h (OMP_LOOP_CHECK): Define.
1690 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1691 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1692 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1693 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1694 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1695 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1696 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1697 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1698 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1699 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1700 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1701 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1702 (omp_remove_redundant_declare_simd_attrs): New prototype.
1703 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
1704 GIMPLE_OMP_TEAMS): New codes.
1705 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
1706 * omp-low.c (struct omp_context): Add cancel_label and cancellable
1707 fields.
1708 (target_nesting_level): New variable.
1709 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
1710 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
1711 for collapse > 1 static schedule unless ordered.
1712 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
1713 (determine_parallel_type): Adjust get_ws_args_for caller.
1714 (install_var_field): Handle mask & 4 for double indirection.
1715 (scan_sharing_clauses): Ignore shared clause on teams construct.
1716 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
1717 (create_omp_child_function): If inside target or declare target
adcfd489 1718 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
1719 (find_combined_for): New function.
1720 (scan_omp_parallel): Handle combined loops.
1721 (scan_omp_target, scan_omp_teams): New functions.
1722 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
1723 restrictions and set ctx->cancellable for cancellable constructs.
1724 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
1725 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
1726 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 1727 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b
JJ
1728 (omp_clause_aligned_alignment): New function.
1729 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
1730 on decls.
1731 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
1732 on teams constructs. Handle user defined reductions and new
1733 OpenMP 4.0 clauses.
1734 (lower_reduction_clauses): Don't set placeholder to address of ref
1735 if it has already the right type.
1736 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
1737 (expand_parallel_call): Use the new non-_start suffixed builtins,
1738 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
1739 and GOMP_parallel_end after the call.
1740 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
1741 (expand_omp_for_init_counts): Handle combined loops.
1742 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
1743 loops.
1744 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
1745 end of cancellable loops.
1746 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1747 Likewise. Handle collapse > 1 loops.
1748 (expand_omp_simd): Handle combined loops.
1749 (expand_omp_for): Add inner_stmt argument, adjust callers of
1750 expand_omp_for* functions, use expand_omp_for_static*chunk even
1751 for collapse > 1 unless ordered.
1752 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
1753 of cancellable sections.
1754 (expand_omp_single): Remove need_barrier variable, just rely on
1755 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
1756 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
1757 (expand_omp_atomic_load, expand_omp_atomic_store,
1758 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
1759 (expand_omp_target): New function.
1760 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
1761 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
1762 (build_omp_regions_1): Immediately close region for
1763 GF_OMP_TARGET_KIND_UPDATE.
1764 (maybe_add_implicit_barrier_cancel): New function.
1765 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
1766 cancellation.
1767 (lower_omp_single): Likewise. Add clobber after the barrier.
1768 (lower_omp_taskgroup): New function.
1769 (lower_omp_for): Handle combined loops. Adjust
1770 lower_rec_input_clauses caller. Handle cancellation.
1771 (lower_depend_clauses): New function.
1772 (lower_omp_taskreg): Lower depend clauses. Adjust
1773 lower_rec_input_clauses caller. Add clobber after the call. Handle
1774 cancellation.
1775 (lower_omp_target, lower_omp_teams): New functions.
1776 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
1777 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
1778 and GOMP_cancellation_point calls.
1779 (lower_omp): Fold stmts inside of target region.
1780 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
1781 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1782 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
1783 (BT_FN_VOID_OMPFN_PTR_UINT,
1784 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1785 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
1786 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
1787 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
1788 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
1789 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
1790 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
1791 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1792 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1793 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
1794 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1795 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
1796 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
1797 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
1798 BUILT_IN_GOMP_PARALLEL_END.
1799 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
1800 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1801 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1802 GF_OMP_FOR_KIND_DISTRIBUTE.
1803 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
1804 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
1805 (dump_gimple_omp_return): Print lhs if it has any.
1806 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
1807 gimple_omp_atomic_seq_cst_p.
1808 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
1809 and GIMPLE_OMP_TEAMS.
1810 * langhooks.c (lhd_omp_mappable_type): New function.
1811 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
1812 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
1813 hook.
1814 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
1815 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
1816 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
1817 ORT_TARGET.
1818 (struct gimplify_omp_ctx): Add combined_loop field.
1819 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
1820 on stmts inside of target region.
1821 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
1822 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
1823 ORT_TARGET and ORT_TARGET_DATA.
1824 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
1825 Handle GOVD_MAP.
1826 (omp_notice_threadprivate_variable): Complain about threadprivate
1827 variables in target region.
1828 (omp_notice_variable): Complain about vars with non-mappable type
1829 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
1830 (omp_check_private): Ignore ORT_TARGET* regions.
1831 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
1832 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
1833 (find_combined_omp_for): New function.
1834 (gimplify_omp_for): Handle gimplification of combined loops.
1835 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
1836 OMP_TEAMS.
1837 (gimplify_omp_target_update): New function.
1838 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
1839 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
1840 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
1841 (gimplify_body): If fndecl has "omp declare target" attribute, add
1842 implicit ORT_TARGET context around it.
1843 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
1844 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
1845 * tree-nested.c (convert_nonlocal_reference_stmt,
1846 convert_local_reference_stmt, convert_gimple_call): Handle
1847 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1848 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
1849 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
1850 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
1851 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
1852 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
1853 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
1854 BUILT_IN_GOMP_LOOP_END_CANCEL,
1855 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
1856 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
1857 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
1858 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
1859 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
1860 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
1861 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
1862 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
1863 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1864 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1865 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1866 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1867 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
1868 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
1869 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
1870 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1871 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
1872 gimple_build_omp_teams): New functions.
1873 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
1874 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
1875 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
1876 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1877 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
1878 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
1879 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
1880 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
1881 GF_OMP_ATOMIC_SEQ_CST): New.
1882 (gimple_build_omp_taskgroup, gimple_build_omp_target,
1883 gimple_build_omp_teams): New prototypes.
1884 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
1885 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1886 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
1887 GIMPLE_OMP_SINGLE as end of range.
1888 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
1889 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
1890 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
1891 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
1892 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
1893 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
1894 gimple_omp_target_kind, gimple_omp_target_set_kind,
1895 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
1896 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
1897 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
1898 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
1899 gimple_omp_teams_set_clauses): New inlines.
1900 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
1901 and GIMPLE_OMP_TASKGROUP.
adcfd489 1902 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
1903 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
1904 enum omp_clause_proc_bind_kind): New.
1905 (union omp_clause_subcode): Add depend_kind, map_kind and
1906 proc_bind_kind fields.
1907 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
1908 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1909 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
1910 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
1911 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1912
67fa7880
TJ
19132013-10-10 Teresa Johnson <tejohnson@google.com>
1914
1915 * predict.c (tree_estimate_probability): Add new parameter
1916 for estimate_bb_frequencies.
1917 (estimate_bb_frequencies): Add new parameter to force estimation.
1918 (rebuild_frequencies): When max frequency in function is small,
1919 recompute counts from frequencies.
1920 * predict.h (estimate_bb_frequencies): New parameter.
1921
b591a8b7
DM
19222013-10-10 David Malcolm <dmalcolm@redhat.com>
1923
1924 * ipa-inline.c (ipa_inline): Fix leak of "order" when
1925 optimizations are disabled.
1926
782f0db2
DM
19272013-10-10 David Malcolm <dmalcolm@redhat.com>
1928
1929 * coverage.c (coverage_finish): Fix leak of da_file_name.
1930
13ef00fa
JH
19312013-10-10 Jan Hubicka <jh@suse.cz>
1932
1933 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
1934 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
1935 Bobcat and generic.
1936
a1d50386
JJ
19372013-10-10 Jakub Jelinek <jakub@redhat.com>
1938
1939 PR middle-end/58670
1940 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
1941 if any labels are in FALLTHRU_BB, use a special label emitted
1942 immediately after the asm goto insn rather than label_rtx
1943 of the LABEL_DECL.
1944 (expand_asm_stmt): Adjust caller.
1945 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
1946 edge if the last insn in predecessor is a jump with single successor,
1947 but it isn't simplejump_p.
1948
e2c2fde2
RB
19492013-10-10 Richard Biener <rguenther@suse.de>
1950
1951 PR tree-optimization/58656
1952 * tree-ssa-pre.c (phi_translate): Do not cache failed
1953 translations.
1954
de6a5608
AM
19552013-10-10 Andrew MacLeod <amacleod@redhat.com>
1956
adcfd489
UB
1957 * gimplify.c: Include expr.h and tm_p.h for targets with special
1958 va-arg padding requirements.
de6a5608 1959
b184c8f1
AM
19602013-10-10 Andrew MacLeod <amacleod@redhat.com>
1961
1962 * tree-flow.h: Move some prototypes to gimple.h.
1963 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
1964 * gimple.h: Relocate some prototypes from tree-flow.h
1965 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
1966 Move to gimplify.c.
1967 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
1968 (build_va_arg_indirect_ref): Relocate and make static.
1969 (std_gimplify_va_arg_expr): Relocate here.
1970 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
1971 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
1972
13b72c22
AK
19732013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1974
1975 * doc/md.texi: Document the mnemonic attribute.
1976
5db40447
AK
19772013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1978
1979 PR target/57377
1980 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
1981 (set_attr_alternative x ...) when searching for user defined
1982 mnemonic attribute.
1983
ed018d4b
AM
19842013-10-10 Andrew MacLeod <amacleod@redhat.com>
1985
1986 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
1987
4d5b5e9f
ER
19882013-10-09 Easwaran Raman <eraman@google.com>
1989
1990 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
1991 * cfgexpand.c (defer_stack_allocation): ...use here
1992 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
1993
c9ef86a1
ZC
19942013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
1995
1996 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
1997 (operand_equal_for_value_replacement): New function, extracted from
1998 value_replacement and enhanced to catch more cases.
1999 (value_replacement): Use operand_equal_for_value_replacement.
2000
2431114f
AM
20012013-10-09 Andrew MacLeod <amacleod@redhat.com>
2002
adcfd489 2003 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2004 get_max_loop_iterations.
2005
1dd2a9a0
KT
20062013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2007
2008 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2009 Place comment above function.
2010
c1bf2a39
AM
20112013-10-09 Andrew MacLeod <amacleod@redhat.com>
2012
2013 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2014 are not related to tree-cfg.c.
2015 * tree-ssa-address.h: New file. Relocate prototypes.
2016 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2017 (addr_for_mem_ref): New. Combine call to get_address_description and
2018 return addr_for_mem_ref.
2019 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2020 * tree-ssa-live.h: Adjust prototypes.
2021 * passes.c: Include tree-ssa-live.h.
2022 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2023 * graphite.c (graphite_transform_loops): Make static.
2024 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2025 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2026 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2027 * ipa-pure-const.c (warn_function_noreturn): Make static.
2028 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2029 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2030 Relocate from tree-cfg.c
2031 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2032 static.
2033 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2034 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2035 Move to ipa-pure-const.c.
adcfd489
UB
2036 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2037 Relocate from tree-optimize.c.
c1bf2a39
AM
2038 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2039 make_pass_fixup_cfg): Move to tree-cfg.c.
2040 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2041 Relocate some prototypes.
2042 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2043 * tree-dump.c (dump_function_to_file): Remove prototype.
2044 Add tree-flow.h to the include file.
2045 * tree-dump.h: Remove prototype.
2046 * tree-parloops.h: New File. Add prototypes.
2047 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2048 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2049 from tree-ssa-loop.c.
2050 * tree-predcom.c (run_tree_predictive_commoning,
2051 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2052 Relocate here from tree-ssa-loop.c.
adcfd489 2053 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2054 ssa_name_values.release ().
2055 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2056 (ssa_name_values): Relocate from tree-flow.h.
2057 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2058 * tree-ssa-loop.c (run_tree_predictive_commoning,
2059 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2060 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2061 make_pass_graphite, pass_data_graphite_transforms,
2062 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2063 tree_parallelize_loops, pass_data_parallelize_loops,
2064 make_pass_parallelize_loops): Move to other files.
2065 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2066 moved here.
2067 * tree.h: Remove prototypes from tree-address.c.
2068
cc524fc7
AM
20692013-10-09 Andrew MacLeod <amacleod@redhat.com>
2070
2071 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2072 (struct int_tree_map): Move to tree-hasher.h
2073 (SCALE, LABEL, PERCENT): Move to gimple.h
2074 * tree-flow-inline.h: Delete. Move functions to other files.
2075 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2076 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2077 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2078 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2079 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2080 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2081 * tree-hasher.h: Don't include tree-flow.h.
2082 (struct int_tree_map): Relocate from tree-flow.h.
2083 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2084 tree-flow-inline.h and make static.
adcfd489
UB
2085 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2086 tree-flow-inline.h.
cc524fc7
AM
2087 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2088 tree-flow-inline.h and make static.
2089 * tree.h (is_global_var, may_be_aliased): Relocate from
2090 tree-flow-inline.h.
2091 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2092 * value-prof.c: No longer include tree-flow-inline.h.
2093 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2094
71343877
AM
20952013-10-09 Andrew MacLeod <amacleod@redhat.com>
2096
2097 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2098 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2099 (enum move_pos): Move to tree-ssa-loop-im.h
2100 * cfgloop.h: Move some prototypes.
2101 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2102 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2103 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2104 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2105 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2106 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2107 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2108 (enum move_pos): Relocate here.
2109 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2110 tree-ssa-loop.c.
2111 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2112 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2113 make_pass_lim): Relocate here from tree-ssa-loop.c.
2114 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2115 tree-ssa-loop.c.
2116 (loop_edge_to_cancel, unloop_loops): Make static.
2117 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2118 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2119 (tree_complete_unroll, gate_tree_complete_unroll,
2120 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2121 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2122 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2123 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2124 (stmt_invariant_in_loop_p): Remove unused function.
2125 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2126 * tree-ssa-loop-manip.h: New file. Add prototypes.
2127 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2128 (gcov_type_to_double_int): Move to cfgloop.h.
2129 (double_int_cmp, bound_index,
2130 estimate_numbers_of_iterations_loop): Make static.
2131 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2132 (max_loop_iterations): Factor out get_max_loop_iterations.
2133 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2134 cfgloop.c.
2135 * tree-ssa-loop-niter.h: New file. Add prototypes.
2136 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2137 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2138 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2139 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2140 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2141 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2142 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2143 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2144 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2145 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2146 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2147 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2148 pass_data_complete_unroll, make_pass_complete_unroll,
2149 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2150 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2151 tree-ssa-loop-ivcanon.c.
2152 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2153 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2154 tree-ssa-loop-prefetch.c.
2155 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2156 tree-ssa-loop-im.c.
2157 (get_lsm_tmp_name): Relocate and add suffix parameter.
2158 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2159 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2160 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2161 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2162 (get_estimated_loop_iterations): Factor out accessor from
71343877 2163 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2164 (get_max_loop_iterations): Factor out accessor from
2165 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2166 * loop-unroll.c (decide_unroll_constant_iterations,
2167 decide_unroll_runtime_iterations, decide_peel_simple,
2168 decide_unroll_stupid): Use new get_* accessors.
2169
826cacfe
MG
21702013-10-09 Marc Glisse <marc.glisse@inria.fr>
2171
2172 PR tree-optimization/20318
2173 * doc/extend.texi (returns_nonnull): New function attribute.
2174 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2175 attribute.
2176 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2177 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2178
378f8976
EB
21792013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2180
2181 PR middle-end/58570
2182 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2183 false if both components are bitfields.
2184
0fe04f5c
AV
21852013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2186
2187 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2188 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2189 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2190 * config/aarch64/aarch64.h
2191 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2192 * config/aarch64/aarch64-simd-builtins.def
2193 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2194
bed9bae4
AV
21952013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2196
2197 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2198
7f3d8b19
AV
21992013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2200
2201 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2202
7df625a6
AV
22032013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2204
2205 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2206 (vneg_f64): New intrinsic.
2207 (vneg_s8): Asm replaced with C.
2208 (vneg_s16): Likewise.
2209 (vneg_s32): Likewise.
2210 (vneg_s64): New intrinsic.
2211 (vnegq_f32): Asm replaced with C.
2212 (vnegq_f64): Likewise.
2213 (vnegq_s8): Likewise.
2214 (vnegq_s16): Likewise.
2215 (vnegq_s32): Likewise.
2216 (vnegq_s64): Likewise.
2217
2b86fca7
RL
22182013-10-09 Renlin Li <Renlin.Li@arm.com>
2219
2220 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2221
e179df83
AK
22222013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2223
2224 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2225 packed stack special handling.
2226 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2227 back to fixed stack slots for FPRs saved due to stdarg.
2228
74129172
AK
22292013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2230
2231 * config/s390/s390.c (s390_frame_info): Restructure function.
2232
6455a49e
AK
22332013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2234
2235 * config/s390/s390.c (struct s390_frame_layout): New field
2236 gpr_save_slots.
2237 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2238 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2239 regs_ever_clobbered to char*.
adcfd489
UB
2240 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2241 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2242 (s390_register_info): Enable FPR save slots. Move/Copy some
2243 functionality into ...
2244 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2245 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2246 function.
2247 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2248 not imply a stack frame.
2249 (s390_init_frame_layout): Remove variable clobbered_regs.
2250 (s390_update_register_info): Remove function.
2251 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2252 cannot be used for register renaming.
2253 (s390_hard_regno_scratch_ok): New function.
2254 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2255 (s390_initial_elimination_offset): Change offset calculation of
2256 the return address pointer.
adcfd489 2257 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2258 (restore_gprs): Set frame related flag.
adcfd489 2259 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2260 (s390_emit_prologue): Call s390_register_info instead of
2261 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2262 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2263 (s390_optimize_prologue): Call s390_optimize_register_info.
2264 Try to remove also FPR slot save/restore INSNs. Remove frame
2265 related flags from restore INSNs.
2266
59d96342
DD
22672013-10-08 DJ Delorie <dj@redhat.com>
2268
0dc7adad
DD
2269 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2270 (movhi): Likewise.
2271
59d96342
DD
2272 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2273 avoid conflict with the MI use of %c.
2274 * config/rl78/rl78-real.md: change %c to %C throughout.
2275 * config/rl78/rl78-virt.md: Likewise.
2276
a81169d8
JH
22772013-10-08 Jan Hubicka <jh@suse.cz>
2278
2279 * config/i386/i386.c (ix86_option_override_internal): Switch
2280 to SSE math for -ffast-math when target ISA supports SSE2.
2281
481d1b81
AM
22822013-10-08 Andrew MacLeod <amacleod@redhat.com>
2283
2284 * tree-flow.h: Remove some prototypes.
2285 * tree.h: Remove some protypes, add a couple.
2286 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2287 using_eh_for_cleanups_p): Add interface routines for front ends.
2288 * tree-eh.h: New file. Add protoptyes.
2289 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2290 (add_stmt_to_eh_lp_fn): Make static.
2291 (lower_try_finally): Use new using_eh_for_cleanups_p.
2292 * emit-rtl.c: Include tree-eh.h.
2293 * gimple.h: Include tree-eh.h.
2294
0e6a0e48
MG
22952013-10-08 Marc Glisse <marc.glisse@inria.fr>
2296
2297 PR tree-optimization/58480
2298 * tree-vrp.c (infer_nonnull_range): New function.
2299 (infer_value_range): Call infer_nonnull_range.
2300
ef6179d1
DC
23012013-10-08 Dehao Chen <dehao@google.com>
2302
2303 PR tree-optimization/58619
2304 * tree-inline.c (copy_phis_for_bb): Combine location data
2305 only if non-null.
2306
07d964d5
ZC
23072013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2308
2309 PR target/58423
2310 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2311 RTX_FRAME_RELATED_P on INSN.
2312
19e9b2a3
BS
23132013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2314
2315 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2316 (altivec_expand_vec_perm_const): Call it.
2317
0cf68694
BS
23182013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2319
2320 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2321 sequences for LE VSX loads and stores at expand time.
2322 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2323 prototype.
2324 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2325 (rs6000_gen_le_vsx_permute): New.
2326 (rs6000_gen_le_vsx_load): New.
2327 (rs6000_gen_le_vsx_store): New.
2328 (rs6000_gen_le_vsx_move): New.
2329 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2330 (*vsx_le_perm_load_v4si): New.
2331 (*vsx_le_perm_load_v8hi): New.
2332 (*vsx_le_perm_load_v16qi): New.
2333 (*vsx_le_perm_store_v2di): New.
2334 (*vsx_le_perm_store_v4si): New.
2335 (*vsx_le_perm_store_v8hi): New.
2336 (*vsx_le_perm_store_v16qi): New.
2337 (*vsx_xxpermdi2_le_<mode>): New.
2338 (*vsx_xxpermdi4_le_<mode>): New.
2339 (*vsx_xxpermdi8_le_V8HI): New.
2340 (*vsx_xxpermdi16_le_V16QI): New.
2341 (*vsx_lxvd2x2_le_<mode>): New.
2342 (*vsx_lxvd2x4_le_<mode>): New.
2343 (*vsx_lxvd2x8_le_V8HI): New.
2344 (*vsx_lxvd2x16_le_V16QI): New.
2345 (*vsx_stxvd2x2_le_<mode>): New.
2346 (*vsx_stxvd2x4_le_<mode>): New.
2347 (*vsx_stxvd2x8_le_V8HI): New.
2348 (*vsx_stxvd2x16_le_V16QI): New.
2349
9520e1eb
RL
23502013-10-07 Renlin Li <Renlin.Li@arm.com>
2351
2352 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2353
36c0bd4f
AK
23542013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2355
2356 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2357 loop to work also for 31bit ABI.
2358 Save the stack pointer for frame_size > 0.
2359
ee163e72
AK
23602013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2361
2362 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2363 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2364 constraint letters from expanders.
2365 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2366 retry count to general_operand.
2367 ("tabort"): Give operand 0 a mode.
2368 ("tabort_1"): Add mode and constraint letter for operand 0.
2369 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2370
45d99234
JL
23712013-10-04 Jeff Law <law@redhat.com>
2372
2373 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2374
adcfd489
UB
2375 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2376 out of ...
45d99234
JL
2377 (thread_across_edge): Here. Call it.
2378
7c327f7b
CC
23792013-10-04 Cary Coutant <ccoutant@google.com>
2380
2381 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2382 discarding a location list expression (or a piece of one).
7c327f7b 2383
6867e128
JH
23842013-10-03 Jan Hubicka <jh@suse.cz>
2385
65efa7e7
UB
2386 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2387 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2388 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2389
c7f36d55
JH
23902013-10-03 Jan Hubicka <jh@suse.cz>
2391
65efa7e7 2392 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2393 accumulate-outgoing-args when producing unwind info.
2394
4f0bee4c
WM
23952013-10-03 Wei Mi <wmi@google.com>
2396
2397 * lra-constraints.c (insert_move_for_subreg): New function
2398 extracted from simplify_operand_subreg.
2399 (simplify_operand_subreg): Add reload for paradoxical subreg.
2400
111c3f39
RX
24012013-10-03 Rong Xu <xur@google.com>
2402
65efa7e7
UB
2403 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2404 the candidate of builtin_expect such that we should fix the
2405 size/time estimation.
2406 (estimate_function_body_sizes): Do the acutally size/time fix-up
2407 for builtin_expect.
111c3f39 2408
942df739
RX
24092013-10-03 Rong Xu <xur@google.com>
2410
65efa7e7
UB
2411 * predict.c (tree_predict_by_opcode): Get the probability
2412 for builtin_expect from param builtin_expect_probability.
2413 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2414 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2415 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2416
2284b034
MG
24172013-10-03 Marc Glisse <marc.glisse@inria.fr>
2418
2419 PR c++/19476
2420 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2421 * calls.c (alloca_call_p): Use get_callee_fndecl.
2422 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2423 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2424 Likewise.
2425 (vrp_visit_stmt): Remove duplicated code.
2426
0609bdf2
MM
24272013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2428
2429 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2430 ceildf2, btruncdf2, instead of vsx_* name.
2431
2432 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2433 iterators to only do V2DF and V4SF here. Move the DF code to
2434 rs6000.md where it is combined with SF mode. Replace <VSv> with
2435 just 'v' since only vector operations are handled with these insns
2436 after moving the DF support to rs6000.md.
2437 (vsx_sub<mode>3): Likewise.
2438 (vsx_mul<mode>3): Likewise.
2439 (vsx_div<mode>3): Likewise.
2440 (vsx_fre<mode>2): Likewise.
2441 (vsx_neg<mode>2): Likewise.
2442 (vsx_abs<mode>2): Likewise.
2443 (vsx_nabs<mode>2): Likewise.
2444 (vsx_smax<mode>3): Likewise.
2445 (vsx_smin<mode>3): Likewise.
2446 (vsx_sqrt<mode>2): Likewise.
2447 (vsx_rsqrte<mode>2): Likewise.
2448 (vsx_fms<mode>4): Likewise.
2449 (vsx_nfma<mode>4): Likewise.
2450 (vsx_copysign<mode>3): Likewise.
2451 (vsx_btrunc<mode>2): Likewise.
2452 (vsx_floor<mode>2): Likewise.
2453 (vsx_ceil<mode>2): Likewise.
2454 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2455 (vsx_sminsf3): Likewise.
2456 (vsx_fmadf4): Likewise.
2457 (vsx_fmsdf4): Likewise.
2458 (vsx_nfmadf4): Likewise.
2459 (vsx_nfmsdf4): Likewise.
2460 (vsx_cmpdf_internal1): Likewise.
2461
2462 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2463 simpler to select whether a target has SPE or traditional floating
2464 point support in iterators.
2465 (TARGET_DF_SPE): Likewise.
2466 (TARGET_SF_FPR): Likewise.
2467 (TARGET_DF_FPR): Likewise.
2468 (TARGET_SF_INSN): Macros to say whether floating point support
2469 exists for a given operation for expanders.
2470 (TARGET_DF_INSN): Likewise.
2471
2472 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2473 combining of SF/DF mode operations, using both traditional and VSX
2474 registers.
2475 (Fvsx): Likewise.
2476 (Ff): Likewise.
2477 (Fv): Likewise.
2478 (Fs): Likewise.
2479 (Ffre): Likewise.
2480 (FFRE): Likewise.
2481 (abs<mode>2): Combine SF/DF modes using traditional floating point
2482 instructions. Add support for using the upper DF registers with
2483 VSX support, and SF registers with power8-vector support. Update
2484 expanders for operations supported by both the SPE and traditional
2485 floating point units.
2486 (abs<mode>2_fpr): Likewise.
2487 (nabs<mode>2): Likewise.
2488 (nabs<mode>2_fpr): Likewise.
2489 (neg<mode>2): Likewise.
2490 (neg<mode>2_fpr): Likewise.
2491 (add<mode>3): Likewise.
2492 (add<mode>3_fpr): Likewise.
2493 (sub<mode>3): Likewise.
2494 (sub<mode>3_fpr): Likewise.
2495 (mul<mode>3): Likewise.
2496 (mul<mode>3_fpr): Likewise.
2497 (div<mode>3): Likewise.
2498 (div<mode>3_fpr): Likewise.
2499 (sqrt<mode>3): Likewise.
2500 (sqrt<mode>3_fpr): Likewise.
2501 (fre<Fs>): Likewise.
2502 (rsqrt<mode>2): Likewise.
2503 (cmp<mode>_fpr): Likewise.
2504 (smax<mode>3): Likewise.
2505 (smin<mode>3): Likewise.
2506 (smax<mode>3_vsx): Likewise.
2507 (smin<mode>3_vsx): Likewise.
2508 (negsf2): Delete SF operations that are merged with DF.
2509 (abssf2): Likewise.
2510 (addsf3): Likewise.
2511 (subsf3): Likewise.
2512 (mulsf3): Likewise.
2513 (divsf3): Likewise.
2514 (fres): Likewise.
2515 (fmasf4_fpr): Likewise.
2516 (fmssf4_fpr): Likewise.
2517 (nfmasf4_fpr): Likewise.
2518 (nfmssf4_fpr): Likewise.
2519 (sqrtsf2): Likewise.
2520 (rsqrtsf_internal1): Likewise.
2521 (smaxsf3): Likewise.
2522 (sminsf3): Likewise.
2523 (cmpsf_internal1): Likewise.
2524 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2525 (negdf2): Delete DF operations that are merged with SF.
2526 (absdf2): Likewise.
2527 (nabsdf2): Likewise.
2528 (adddf3): Likewise.
2529 (subdf3): Likewise.
2530 (muldf3): Likewise.
2531 (divdf3): Likewise.
2532 (fred): Likewise.
2533 (rsqrtdf_internal1): Likewise.
2534 (fmadf4_fpr): Likewise.
2535 (fmsdf4_fpr): Likewise.
2536 (nfmadf4_fpr): Likewise.
2537 (nfmsdf4_fpr): Likewise.
2538 (sqrtdf2): Likewise.
2539 (smaxdf3): Likewise.
2540 (smindf3): Likewise.
2541 (cmpdf_internal1): Likewise.
2542 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2543 (btrunc<mode>2): Delete separate expander, and combine with the
2544 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2545 (btrunc<mode>2_fpr): Likewise.
2546 (ceil<mode>2): Likewise.
2547 (ceil<mode>2_fpr): Likewise.
2548 (floor<mode>2): Likewise.
2549 (floor<mode>2_fpr): Likewise.
2550 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2551 Add support for using the upper registers with VSX and
2552 power8-vector. Move insns to be closer to the define_expands. On
2553 VSX systems, prefer the traditional form of FMA over the VSX
2554 version, since the traditional form allows the target not to
2555 overlap with the inputs.
2556 (fms<mode>4_fpr): Likewise.
2557 (nfma<mode>4_fpr): Likewise.
2558 (nfms<mode>4_fpr): Likewise.
2559
5bea0c6c 25602013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2561 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2562
2563 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2564 (struct mult_cost_table): Likewise.
2565 (struct mem_cost_table): Likewise.
2566 (struct fp_cost_table): Likewise.
2567 (struct vector_cost_table): Likewise.
2568 (cpu_cost_table): Likewise.
2569 * config/arm/arm.opt (mold-rts-costs): New option.
2570 (mnew-generic-costs): Likewise.
2571 * config/arm/arm.c (generic_extra_costs): New table.
2572 (cortexa15_extra_costs): Likewise.
2573 (arm_slowmul_tune): Use NULL as new costs.
2574 (arm_fastmul_tune): Likewise.
2575 (arm_strongarm_tune): Likewise.
2576 (arm_xscale_tune): Likewise.
2577 (arm_9e_tune): Likewise.
2578 (arm_v6t2_tune): Likewise.
2579 (arm_cortex_a5_tune): Likewise.
2580 (arm_cortex_a9_tune): Likewise.
2581 (arm_v6m_tune): Likewise.
2582 (arm_fa726te_tune): Likewise.
2583 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2584 (arm_cortex_tune): Use generict_extra_costs.
2585 (shifter_op_p): New function.
2586 (arm_unspec_cost): Likewise.
2587 (LIBCALL_COST): Define.
2588 (arm_new_rtx_costs): New function.
2589 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2590 table is available. Use old costs otherwise unless mnew-generic-costs
2591 is specified.
2592 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2593 (cpu_cost_table): Declare.
2594
24c56925
MS
25952013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2596
2597 PR target/58460
2598 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2599 (*subs_mul_imm_<mode>)
2600 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2601 (*sub_<shift>_<mode>)
2602 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2603 Remove k constraint.
2604
2ab8f063
IB
26052013-10-03 Ian Bolton <ian.bolton@arm.com>
2606
2607 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2608 code.
2609 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2610
79221839
TJ
26112013-10-02 Teresa Johnson <tejohnson@google.com>
2612
2613 * predict.c (probably_never_executed): New function.
2614 (probably_never_executed_bb_p): Invoke probably_never_executed.
2615 (probably_never_executed_edge_p): Ditto.
2616 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2617 Treat profile insanities conservatively.
2618
d441afe0
JDA
26192013-10-02 John David Anglin <danglin@gcc.gnu.org>
2620
2621 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2622
80f466c4
VM
26232013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2624
2625 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2626 use it. Use smaller increase for scratch. Don't increase reject
2627 for early clobber scratch.
2628 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2629 setting eliminated regs except setting fp from hfp.
2630 (lra_eliminate): Check lra_insn_recog_data on NULL.
2631
6e228b4b
MM
26322013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2633
2634 PR target/58587
2635 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 2636 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
2637 (RS6000_CPU, power7 defaults): Likewise.
2638
11b54a5a
UB
26392013-10-02 Uros Bizjak <ubizjak@gmail.com>
2640
2641 * config/x-linux (host-linux.o): Remove header dependencies.
2642 Use $(COMPILE) and $(POSTCOMPILE).
2643 * config/t-linux-android (linux-android.o): Ditto.
2644
bbc02b69
UB
26452013-10-02 Uros Bizjak <ubizjak@gmail.com>
2646
2647 * Makefile.in (expmed.o-warn): Remove.
2648
440917de
AM
26492013-10-02 Andrew MacLeod <amacleod@redhat.com>
2650
2651 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2652 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2653
99206ca9
TJ
26542013-10-02 Teresa Johnson <tejohnson@google.com>
2655
2656 * dojump.c (do_jump_1): Divide probability between
2657 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2658
56e82b14
TT
26592013-10-02 Tom Tromey <tromey@redhat.com>
2660
2661 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2662
3d9c733e
AM
26632013-10-02 Andrew MacLeod <amacleod@redhat.com>
2664
2665 * tree-flow.h: Remove some prototypes.
2666 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2667 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2668 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2669 mark_virtual_phi_result_for_renaming): Relocate here.
2670 * tree-into-ssa.h: Add prototypes.
bbc02b69 2671 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
2672 single_pred_before_succ_order.
2673 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2674 (nonfreeing_call_p) Move to gimple.c.
2675 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2676 tree-ssa-phiopt.c.
2677 * basic-block.h (single_pred_before_succ_order): Add prototype.
2678 * gimple.c (nonfreeing_call_p): Relocate here.
2679 * gimple.h: Add prototype.
2680 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2681 * tree-ssa-dom.h: New file. Relocate prototypes here.
2682 * tree-ssa.h: Include tree-ssa-dom.h.
2683
78cedfb1
UB
26842013-10-02 Uros Bizjak <ubizjak@gmail.com>
2685
2686 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2687 Use $(COMPILE) and $(POSTCOMPILE).
2688
2689 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2690
744730a4
AM
26912013-10-02 Andrew MacLeod <amacleod@redhat.com>
2692
2693 * tree-flow.h: Remove some prototypes.
2694 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2695 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2696 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2697 propagate_tree_value*): Move from here to...
2698 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2699 propagate_tree_value*): Relocate here.
2700 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2701 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2702 * gimple-fold.c: Remove gimple-fold.h from include list.
2703 * tree-vrp.c: Remove gimple-fold.h from include list.
2704 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2705 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
2706 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
2707 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
2708 * sese.c: Add tree-ssa-propagate.h to include list.
2709
826a536d
RB
27102013-10-02 Richard Biener <rguenther@suse.de>
2711
2712 * tree-loop-distribution.c: Include tree-vectorizer.h for
2713 find_loop_location.
2714 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 2715 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
2716 (partition_alloc): Adjust.
2717 (partition_builtin_p): Likewise.
2718 (partition_has_writes): Remove.
2719 (partition_reduction_p): New function.
2720 (partition_merge_into): Likewise.
2721 (generate_code_for_partition): Commonize builtin partition
2722 handling tail.
2723 (rdg_cannot_recompute_vertex_p): Remove.
2724 (already_processed_vertex_p): Likewise.
2725 (rdg_flag_vertex): Do not set has_writes.
2726 (classify_partition): Adjust.
2727 (rdg_build_partitions): Do not set has_writes, treat all
2728 partitions as useful.
78cedfb1 2729 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
2730 (tree_loop_distribution): Report number of loops and library
2731 calls generated as opt-info.
2732
4b403ece
AM
27332013-10-02 Andrew MacLeod <amacleod@redhat.com>
2734
2735 * tree-flow.h: Include new .h files. Move prototypes.
2736 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
2737 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
2738 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
2739 * tree-pretty-print.h: Add prototypes from tree-flow.h.
2740 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
2741 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
2742 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
2743 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 2744 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
2745 tree-dfa.h.
2746 * gimple-low.h: New File. Add prototypes from tree-flow.h.
2747 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
2748 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
2749 * tree-scalar-evolution.c: Include tree.h.
2750 * sese.c: Include tree.h.
2751 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
2752 * dwarf2out.c: Include tree-dfa.h.
2753 * tree-chrec.c: Include tree.h.
2754 * tree-data-ref.c: Include tree.h.
2755
1d2151c6
YZ
27562013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
2757
2758 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
2759 Fix whitespace.
2760
441ad147
RO
27612013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2762
2763 * config/t-sol2 (sol2-c.o): Remove header dependencies.
2764 Use $(COMPILE) and $(POSTCOMPILE).
2765 (sol2-cxx.o): Likewise.
2766 (sol2-stubs.o): Likewise.
2767 (sol2.o): Likewise.
2768 * config/x-solaris (host-solaris.o): Likewise.
2769
2770 * config/sparc/t-sparc (sparc.o): Remove.
2771 (sparc-c.o): Remove header dependencies.
2772 Use $(COMPILE) and $(POSTCOMPILE).
2773 * config/sparc/x-sparc: Likewise.
2774
2deaf8b0
JR
27752013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
2776
2777 * config/arc/arc-opts.h: Add 2013 to Copyright years.
2778 * config/arc/arc700.md: Likewise.
2779 * config/arc/arc-modes.def: Likewise.
2780 * config/arc/arc-simd.h: Likewise.
2781 * config/arc/t-arc-uClibc: Likewise.
2782 * config/arc/t-arc-newlib: Likewise.
2783
f6fe771a
RL
27842013-10-02 Renlin Li <renlin.li@arm.com>
2785
78cedfb1
UB
2786 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2787 plus_constant.
f6fe771a
RL
2788 (aarch64_expand_epilogue): Likewise.
2789
0916f876
YZ
27902013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2791 Yufeng Zhang <yufeng.zhang@arm.com>
2792
2793 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
2794 declaration.
2795 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
2796 'base_in' represent a conversion and legal_cast_p_1 holds; set
2797 'base_in' with the returned value from get_unwidened.
2798
ebfcd719
KT
27992013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2800
2801 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
2802 plus_constant is not used.
2803
157ca3e9
WM
28042013-10-01 Wei Mi <wmi@google.com>
2805
78cedfb1 2806 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
2807 * config/i386/i386.md: Add define_peephole2 to
2808 break partial reg stall for cvtss2sd/cvtsd2ss.
2809
cd4dd8f0
JR
28102013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2811
2812 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 2813 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 2814
1465e5cf
JL
28152013-10-01 Jeff Law <law@redhat.com>
2816
2817 * tree-ssa-threadupdate.c (struct redirection_data): Delete
2818 outgoing_edge and intermediate_edge fields. Instead store the path.
2819 (redirection_data::hash): Hash on the last edge's destination index.
2820 (redirection_data::equal): Check the entire thread path.
2821 (lookup_redirectio_data): Corresponding changes.
2822 (create_edge_and_update_destination_phis): Likewise.
2823 (thread_single_edge): Likewise.
2824
25c606cb 28252013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 2826 Diego Novillo <dnovillo@google.com>
25c606cb
JR
2827
2828 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
2829 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
2830 (vld32wh_insn, vld32wl_insn): Delete commented-out old
2831 versions of these patterns.
2832
0ccbc132
JR
2833 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
2834 (__builtin_arc_aligned): Likewise.
2835
f55d4a20
JR
2836 * config/arc/arc.md: Expand adc_0 comment stating the intended
2837 purpose and why it isn't ready.
2838 Replace commented out call_value_via_label_mixed with a
2839 plain comment about bl_s.
2840
5719867d 2841 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
2842 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
2843 Remove if (1) condition.
2844 (arc_encode_section_info): Fix comment.
2845
6462fab0
JR
28462013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2847
2848 * config/arc/arc.c (arc_conditional_register_usage):
2849 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
2850 Also set reg_alloc_order for DMA config regs.
2851
5d5f6720
JR
28522013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2853 Jeremy Bennett <jeremy.bennett@embecosm.com>
2854
2855 * doc/install.texi (--with-cpu): Mention ARC.
2856 (arc-*-elf32): New paragraph.
2857 (arc-linux-uclibc): Likewise.
2858 * doc/md.texi (Machine Constraints): Add ARC part.
2859 * doc/invoke.texi: (menu): Add ARC Options.
2860 (Machine Dependent Options) <ARC Options>: Add synopsis.
2861 (node ARC Options): Add.
2862 * doc/extend.texi (long_call / short_call attribute): Add ARC.
2863 (ARC Built-in Functions): New section defining
2864 generic ARC built-in functions.
2865 (ARC SIMD Built-in Functions): New section defining SIMD specific
2866 built-in functions.
2867 (Declaring Attributes of Functions): Extended
2868 description of short_call and long_call attributes for ARC and
2869 added index entries.
2870
526b7aee
SV
28712013-10-01 Saurabh Verma <saurabh.verma@codito.com>
2872 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
2873 Joern Rennecke <joern.rennecke@embecosm.com>
2874 Muhammad Khurram Riaz <khurram.riaz@arc.com>
2875 Brendan Kehoe <brendan@zen.org>
2876 Michael Eager <eager@eagercon.com>
2877 Simon Cook <simon.cook@embecosm.com>
2878 Jeremy Bennett <jeremy.bennett@embecosm.com>
2879
2880 * config/arc, common/config/arc: New directories.
2881
53426f6c
JR
28822013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2883 Brendan Kehoe <brendan@zen.org>
2884 Simon Cook <simon.cook@embecosm.com>
2885
2886 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
2887
1df9f5a9
AM
28882013-10-01 Andrew MacLeod <amacleod@redhat.com>
2889
2890 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
2891 * tree-ssa-coalesce.h: New. Move prototype to here.
2892 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
2893 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
2894 (gimple_can_coalesce_p): Move to...
2895 * gimple.c (gimple_can_coalesce_p): Here.
2896
80560f95
AM
28972013-10-01 Andrew MacLeod <amacleod@redhat.com>
2898
2899 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
2900 (dump_decl_set): Move to gimple.c.
2901 * gimple.h: Don't include tree-ssa-operands.h.
2902 (dump_decl_set): Add prototype.
2903 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2904 Move to gimple-ssa.h.
2905 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
2906 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
2907 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
2908 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
2909 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
2910 than PHI_ARG_DEF.
2911 (dump_decl_set): Relocate here.
2912 * gimple-ssa.h: New file.
2913 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2914 Relocate from gimple.h.
2915 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
2916 * tree-ssa-operands.c (swap_ssa_operands): Rename from
2917 swap_tree_operands and remove non-ssa path.
2918 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
2919 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
2920 swap_ssa_operands.
2921 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
2922 vect_is_simple_reduction_1): Use swap_ssa_operands.
2923 * tree-flow.h: Move various prototypes to tree-phinodes.h.
2924 (enum need_phi_state): Move to tree-into-ssa.c.
2925 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2926 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
2927 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
2928 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2929 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2930 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2931 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2932 num_imm_uses): Move to ssa-iterators.h.
2933 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
2934 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
2935 tree-phinodes.h.
2936 (op_iter_done, op_iter_next_def, op_iter_next_tree,
2937 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
2938 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
2939 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
2940 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
2941 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
2942 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
2943 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
2944 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
2945 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
2946 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
2947 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
2948 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
2949 (set_phi_nodes): Move to tree-phinodes.h.
2950 * tree-ssa-operands.h (enum ssa_op_iter_type,
2951 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
2952 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
2953 (dump_decl_set): Remove prototype.
2954 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
2955 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
2956 (set_phi_nodes): Relocate from tree-flow-inline.h.
2957 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
2958 tree-flow-inline.h
2959 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
2960 include list. Temporarily add gimple.h to include list.
2961 * ssa-iterators.h: New file.
2962 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2963 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
2964 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
2965 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
2966 Relocate from tree-ssa-operands.h.
2967 (delink_imm_use, link_imm_use_to_list, link_imm_use,
2968 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2969 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2970 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2971 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
2972 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
2973 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
2974 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
2975 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
2976 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
2977 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
2978 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
2979 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
2980 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
2981 Relocate from tree-flow-inline.h.
2982 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
2983
8da00d65
VP
29842013-10-01 Vidya Praveen <vidyapraveen@arm.com>
2985
2986 * aarch64-simd.md
2987 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
2988 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
2989 Insert '\t' to output template.
2990 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
2991 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
2992 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
2993 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
2994
e2ebe1c2
UB
29952013-10-01 Uros Bizjak <ubizjak@gmail.com>
2996
2997 * doc/install.texi (Host/target specific installation notes for GCC):
2998 Put @anchor before @heading.
2999 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3000 Use @email for email addresses.
3001
aee2d611
JL
30022013-10-01 Jeff Law <law@redhat.com>
3003
3004 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3005 a vec. Only delete the path if we create one without successfully
3006 registering a jump thread.
3007 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3008 as a pointer.
3009 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3010 (paths): New vector of jump threading paths.
3011 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3012 (THREAD_PATH): New accessor macro for the entire thread path.
3013 (lookup_redirection_data): Get intermediate and final outgoing edge
3014 from the thread path.
3015 (create_edge_and_update_destination_phis): Copy the threading path.
3016 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3017 jump threading path.
3018 (ssa_redirect_edges): Get edges and block types from the jump threading
3019 path. Free the path vector.
3020 (thread_block): Get edges from the jump threading path. Look at the
3021 entire path to see if we thread to a loop exit. If we cancel a jump
3022 thread request, then free the path vector.
3023 (thread_single_edge): Get edges and block types from the jump threading
3024 path. Free the path vector.
3025 (thread_through_loop_header): Get edges and block types from the jump
3026 threading path. Free the path vector.
3027 (mark_threaded_blocks): Iterate over the vector of paths and store
3028 the path on the appropriate edge. Get edges and block types from the
3029 jump threading path.
3030 (mark_threaded_blocks): Get edges and block types from the jump
3031 threading path. Free the path vector.
3032 (thread_through_all_blocks): Use the vector of paths rather than
3033 a vector of 3-edge sets.
3034 (register_jump_thread): Accept pointer to a path vector rather
3035 than the path vector itself. Store the path vector for later use.
3036 Simplify.
3037
966f97ac 30382013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3039 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3040
3041 PR target/58574
3042 * config/s390/s390.c (s390_split_branches): Modify check for table
3043 jump insns.
3044 (s390_chunkify_start): Rearrange table jump insn check in order to
3045 deal with compare and branch insns correctly.
3046
3a323a38
KV
30472013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3048
3049 PR target/58578
3050 Revert
3051 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3052 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3053 define_insn_and_split.
3054 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3055 (shiftsi3_compare): New pattern.
3056 (rrx): New pattern.
3057 * config/arm/unspecs.md (UNSPEC_RRX): New.
3058
90444831
AM
30592013-10-01 Alan Modra <amodra@gmail.com>
3060
3061 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3062 casing inout operands.
3063
818625cf
RB
30642013-10-01 Richard Biener <rguenther@suse.de>
3065
3066 PR tree-optimization/58553
3067 * tree-loop-distribution.c (struct partition_s): Add niter member.
3068 (classify_partition): Populate niter member for the partition
3069 and properly identify whether the relevant store happens before
3070 or after the loop exit.
3071 (generate_memset_builtin): Use niter member from the partition.
3072 (generate_memcpy_builtin): Likewise.
3073
30f641cd
RS
30742013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3075
3076 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3077 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3078
65d3284b
RS
30792013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3080
3081 * basic-block.h (edge_list): Prefix member names with "m_".
3082 * context.h (context): Likewise.
3083 * domwalk.h (dom_walker): Likewise.
3084 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3085 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3086 * hash-table.h (hash_table): Likewise.
3087 * machmode.h (bit_field_mode_iterator): Likewise.
3088 * pass_manager.h (pass_list): Likewise.
3089 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3090 * tree-pass.h (pass_data): Likewise.
3091 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3092 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3093 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3094 * asan.c (pass_data_asan): Update accordingly.
3095 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3096 (control_dependences::control_dependences): Likewise.
3097 (control_dependences::~control_dependences): Likewise.
3098 (control_dependences::~control_dependences): Likewise.
3099 (control_dependences::get_edges_dependent_on): Likewise.
3100 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3101 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3102 * context.c (gcc::context::context): Likewise.
3103 * cprop.c (pass_rtl_cprop::clone): Likewise.
3104 * domwalk.c (dom_walker::walk): Likewise.
3105 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3106 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3107 * mode-switching.c (pass_mode_switching::clone): Likewise.
3108 * passes.c (opt_pass::opt_pass): Likewise.
3109 (pass_manager::pass_manager): Likewise.
3110 * predict.c (pass_strip_predict_hints::clone): Likewise.
3111 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3112 (pass_split_all_insns::clone): Likewise.
3113 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3114 Likewise.
3115 (bit_field_mode_iterator::next_mode): Likewise.
3116 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3117 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3118 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3119 * tree-complex.c (pass_lower_complex::clone): Likewise.
3120 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3121 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3122 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3123 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3124 (pass_fold_builtins::clone): Likewise.
3125 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3126 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3127 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3128 (pass_cd_dce::clone): Likewise.
3129 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3130 (pass_phi_only_cprop::clone): Likewise.
3131 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3132 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3133 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3134 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3135 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3136 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3137 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3138 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3139 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3140 * tree-vrp.c (pass_vrp::clone): Likewise.
3141 * tsan.c (pass_tsan::clone): Likewise.
3142
f66d0891
JJ
31432013-09-30 Jakub Jelinek <jakub@redhat.com>
3144
d2a365a8
JJ
3145 PR middle-end/58564
3146 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3147 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3148
f66d0891
JJ
3149 PR middle-end/58564
3150 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3151 optimization, punt if sign_bit_p looked through any zero extension.
3152
05357ac3
TJ
31532013-09-30 Teresa Johnson <tejohnson@google.com>
3154
3155 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3156 Update redirected out edge count in joiner case.
3157 (ssa_redirect_edges): Common the joiner and non-joiner cases
3158 so that joiner case gets profile updates.
3159
ca406576
RB
31602013-09-30 Richard Biener <rguenther@suse.de>
3161
3162 PR tree-optimization/58554
e2ebe1c2
UB
3163 * tree-loop-distribution.c (classify_partition): Require
3164 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3165 (tree_loop_distribution): Calculate dominance info.
3166
92d649c4
VK
31672013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3168
3169 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3170 (NO_PROFILE_COUNTERS): Likewise.
3171 (PROFILE_HOOK): Likewise.
3172 (FUNCTION_PROFILER): Likewise.
3173 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3174
bd9534e2
IS
31752013-09-30 Iain Sandoe <iain@codesourcery.com>
3176
3177 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3178 calls and defines in TARGET_MACHO conditional.
3179 (load_macho_picbase_di): Likewise.
3180 (reload_macho_picbase): Likewise.
3181 (reload_macho_picbase_si): Likewise.
3182 (reload_macho_picbase_di): Likewise.
3183 (nonlocal_goto_receiver): Likewise.
3184
4494fbc9
NC
31852013-09-30 Nick Clifton <nickc@redhat.com>
3186
3187 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3188 that use the MSP430X ISA.
3189 (msp430_option_override): Scan -mmcu command line option for any
3190 MCU name that supports the MSP430X ISA.
3191 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3192 -mmcu options which enable the MSP430X ISA.
3193
791d9044
RB
31942013-09-30 Richard Biener <rguenther@suse.de>
3195
3196 PR middle-end/58532
3197 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3198 before looking for setjmp-like calls.
3199
e1c5c877
IS
32002013-09-29 Iain Sandoe <iain@codesourcery.com>
3201
3202 PR target/10901
3203 * config/darwin-protos.h (machopic_get_function_picbase): New.
3204 * config/darwin.c (machopic_get_function_picbase): New.
3205 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3206 label for a new func. (load_macho_picbase_di): Likewise.
3207 (reload_macho_picbase): New expand.
3208 (reload_macho_picbase_si): New insn.
3209 (reload_macho_picbase_di): New insn.
3210 (nonlocal_goto_receiver): New define and split.
3211 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3212 (unspecv enum): Add UNSPECV_NLGR.
3213
749278c5
IS
32142013-09-29 Iain Sandoe <iain@codesourcery.com>
3215
3216 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3217 that altivec registers are correctly sized on Darwin.
3218
2c43a51c
IS
32192013-09-29 Iain Sandoe <iain@codesourcery.com>
3220
3221 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3222 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3223 * config/x-darwin (host-darwin.o): Likewise.
3224 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3225 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3226 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3227
7a5911d3
UB
32282013-09-29 Uros Bizjak <ubizjak@gmail.com>
3229
3230 * doc/invoke.texi: Fix usage of @tie{} command.
3231
3f67a73d
EB
32322013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3233
3234 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3235
9ac2f538
JH
32362013-09-28 Jan Hubicka <jh@suse.cz>
3237
3238 * config/i386/x86-tune.def: Add documentation for each of the options;
3239 add whitespace.
3240
b0ff06da
JH
32412013-09-28 Jan Hubicka <jh@suse.cz>
3242
7a5911d3
UB
3243 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3244 generic.
b0ff06da
JH
3245 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3246 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3247 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3248 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3249 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3250
c3284718
RS
32512013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3252
3253 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3254 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3255 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3256 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3257 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3258 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3259 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3260 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3261 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3262 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3263 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3264 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3265 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3266 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3267 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3268 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3269 gimple.h, godump.c, graphite-clast-to-gimple.c,
3270 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3271 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3272 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3273 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3274 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3275 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3276 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3277 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3278 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3279 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3280 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3281 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3282 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3283 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3284 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3285 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3286 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3287 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3288 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3289 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3290 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3291 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3292 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3293 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3294 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3295 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3296 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3297 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3298 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3299 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3300 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3301 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3302 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3303 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3304 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3305 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3306 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3307 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3308 whitespace before "(".
3309
c6285bd7
SL
33102013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3311
3312 * expr.h (extract_bit_field): Remove packedp parameter.
3313 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3314 from forward declaration.
3315 (store_split_bit_field): Remove packedp arg from calls to
3316 extract_fixed_bit_field.
3317 (extract_bit_field_1): Remove packedp parameter and packedp
3318 argument from recursive calls and calls to extract_fixed_bit_field.
3319 (extract_bit_field): Remove packedp parameter and corresponding
3320 arg to extract_bit_field_1.
3321 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3322 to issue warnings.
3323 (extract_split_bit_field): Remove packedp arg from call to
3324 extract_fixed_bit_field.
3325 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3326 (copy_blkmode_from_reg): Likewise.
3327 (copy_blkmode_to_reg): Likewise.
3328 (read_complex_part): Likewise.
3329 (store_field): Likewise.
3330 (expand_expr_real_1): Likewise.
3331 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3332 to extract_bit_field.
3333 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3334 call to extract_bit_field.
3335 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3336 call to extract_bit_field.
3337 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3338 and special packedp behavior from -fstrict-volatile-bitfields
3339 documentation.
3340
522d4efc
JBG
33412013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3342
3343 * lra-eliminations.c (init_elim_table): Guard value_p.
3344
19cdb489
MM
33452013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3346
3347 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3348 DFmode, DImode, and SFmode in the upper VSX registers based on the
3349 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3350 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3351 of the VSX register handling.
3352
3353 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3354 (f32_sv): Likewise.
3355 (zero_extendsidi2_lfiwzx): Add support for loading into the
3356 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3357 only do VSX memory options on Altivec registers.
3358 (extendsidi2_lfiwax): Likewise.
3359 (extendsfdf2_fpr): Likewise.
3360 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3361 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3362 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3363 (movdi_internal64): Likewise.
3364
d6d11272
XDL
33652013-09-27 Xinliang David Li <davidxl@google.com>
3366
3367 * opts.c (finish_options): Adjust parameters
3368 according to vect cost model.
3369 (common_handle_option): Set dynamic vect cost
3370 model for FDO.
3371 targhooks.c (default_add_stmt_cost): Compute stmt cost
3372 unconditionally.
3373 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3374 Use helper function.
3375 * tree-vectorizer.h (unlimited_cost_model): New function.
3376 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3377 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3378 function.
3379 (vect_enhance_data_refs_alignment): Ditto.
3380 * flag-types.h: New enum.
3381 * common/config/i386/i386-common.c (ix86_option_init_struct):
3382 No need to initialize vect_cost_model flag.
3383 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3384 unconditionally.
3385
ac1857a3
DN
33862013-09-27 Diego Novillo <dnovillo@google.com>
3387
3388 * gimple.h (enum ssa_mode): Remove.
3389
0d0e2af6
PM
33902013-09-27 Paulo Matos <pmatos@broadcom.com>
3391
3392 * cfgloop.h (number_of_loops): Fix typo in check for null.
3393
09dc585e
JJ
33942013-09-27 Jakub Jelinek <jakub@redhat.com>
3395
3396 PR middle-end/58551
3397 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3398 are children of outermost saved_cfun's loop, and set it up to
3399 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3400 if loop != loop0 and SESE region contains bbs that belong to loop0.
3401
ec5a3504
RS
34022013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3403
3404 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3405 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3406 (set_address_segment, set_address_base, set_address_index)
3407 (set_address_disp): Accept the argument unconditionally.
3408 (baseness): Remove must_be_base_p and must_be_index_p checks.
3409 (decompose_normal_address): Classify as much as possible in the
3410 main loop.
3411
f91aec98
RS
34122013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3413
3414 * cse.c (count_reg_usage): Handle INT_LIST.
3415 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3416 * reginfo.c (reg_scan_mark_refs): Likewise.
3417 * reload1.c (eliminate_regs_1): Likewise.
3418
a9195970
IS
34192013-09-27 Iain Sandoe <iain@codesourcery.com>
3420
3421 PR middle-end/58547
3422 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3423 signed.
3424
e6f1c509
RB
34252013-09-27 Richard Biener <rguenther@suse.de>
3426
3427 PR tree-optimization/58459
3428 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3429 restriction not propagating into loops.
3430
84f48495
FW
34312013-09-26 Florian Weimer <fw@deneb.enyo.de>
3432
3433 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3434 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3435 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3436
74fc8b8a
RB
34372013-09-26 Richard Biener <rguenther@suse.de>
3438
7a5911d3 3439 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3440
b4ada065
RB
34412013-09-26 Richard Biener <rguenther@suse.de>
3442
3443 * alias.h (component_uses_parent_alias_set): Rename to ...
3444 (component_uses_parent_alias_set_from): ... this.
3445 * alias.c (component_uses_parent_alias_set): Rename to ...
3446 (component_uses_parent_alias_set_from): ... this and return
3447 the desired parent.
3448 (reference_alias_ptr_type_1): Use the result from
3449 component_uses_parent_alias_set_from instead of stripping
3450 components one at a time.
3451 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3452
78bca40d
AM
34532013-09-26 Andrew MacLeod <amacleod@redhat.com>
3454
7a5911d3
UB
3455 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3456 Move prototypes to...
78bca40d
AM
3457 * tree-ssa-ter.h: New File. Move prototypes here.
3458 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3459 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3460 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3461 from is_replaceable_p.
78bca40d
AM
3462 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3463 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3464 (process_replaceable): Use ter_is_replaceable_p.
3465 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3466 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3467 newly refactored ssa_is_replaceable_p.
3468 * cfgexpand.c: Include tree-outof-ssa.h.
3469 * ssaexpand.h: Delete.
3470
ff2a63a7
AM
34712013-09-26 Andrew MacLeod <amacleod@redhat.com>
3472
3473 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3474 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3475 tree-ssa.c
3476 (create_gimple_tmp): Delete.
3477 (get_expr_type, build_assign, build_type_cast): Move to...
3478 * gimple-builder.c: New File.
3479 (get_expr_type): Relocate from gimple.c.
3480 (build_assign, build_type_cast): Change to only create ssanames.
3481 * gimple.h: Move prototypes to...
3482 * gimple-builder.h: New File. Here.
3483 * tree-ssa.h: And here.
3484 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3485 count_uses_and_derefs): Relocate from gimple.c.
3486 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3487 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3488 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3489 gimple_replace_ssa_lhs.
3490 * asan.c: Include gimple-builder.h.
3491 * Makefile.in: Add gimple-builder.o.
3492
a2544177
RB
34932013-09-26 Richard Biener <rguenther@suse.de>
3494
3495 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3496 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3497 (loe_visit_block): Use gcc_checking_assert.
3498 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3499 gimple_assign_ssa_name_copy_p.
3500 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3501 change.
3502
6d1ca9a0
DE
35032013-09-26 David Edelsohn <dje.gcc@gmail.com>
3504
3505 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3506 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3507
46e950db
RB
35082013-09-26 Richard Biener <rguenther@suse.de>
3509
3510 PR tree-optimization/58539
3511 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3512 the fact that debug statements are not taking part in loop-closed
3513 SSA construction.
3514
40ada30a
NC
35152013-09-26 Nick Clifton <nickc@redhat.com>
3516
3517 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3518 time warning message.
3519 (msp430_print_operand_raw): Delete unused letter parameter.
3520 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3521 (msp430_print_operand_address): New function.
3522 (msp430_print_operand): Move address printing code from here to
3523 new function.
3524 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3525 assembler.
3526 (zero_extendpsisi2): Likewise.
3527 (extendpsisi2): New pattern.
3528 (andneghi3): New pattern.
3529
38e8f663
YR
35302013-09-26 Yvan Roux <yvan.roux@linaro.org>
3531
3532 * config/aarch64/aarch64.opt (mlra): New option.
3533 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3534 (TARGET_LRA_P): Define.
3535
4167e8d4
EB
35362013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3537
3538 * expr.c (expand_assignment): Remove obsolete comment.
3539
5254eac4
JL
35402013-09-25 Jeff Law <law@redhat.com>
3541
3542 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3543 tree-ssa-threadupdate.h.
3544 (register_jump_thread): Similarly.
3545 * tree-ssa-threadupdate.h: New header file.
3546 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3547 * tree-vrp.c: Likewise.
3548 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3549 (thread_around_empty_blocks): Change type of path vector argument to
3550 an edge,type pair from just an edge. Initialize both elements when
3551 appending to a jump threading path. Tweak references to elements
3552 appropriately.
3553 (thread_across_edge): Similarly. Release memory for the elements
3554 as needed.
3555 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3556 (dump_jump_thread_path): New function broken out from
3557 register_jump_thread.
3558 (register_jump_thread): Use dump_jump_thread_path. Change type of
3559 path vector entries. Search the path for NULL edges and dump
3560 the path if one is found. Tweak the conversion of path to 3-edge
3561 form to use the block copy type information embedded in the path.
3562
20f114a3
YR
35632013-09-25 Yvan Roux <yvan.roux@linaro.org>
3564
3565 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3566
3936bafc
YR
35672013-09-25 Yvan Roux <yvan.roux@linaro.org>
3568 Vladimir Makarov <vmakarov@redhat.com>
3569
3570 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3571 from the least significant bit.
3572 (strip_address_mutations): Add bitfield operations handling.
3573 (must_be_index_p): Add shifting and rotate operations handling.
3574 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3575 (set_address_index): Use must_be_index_p predicate.
3936bafc 3576
b86f6e9e
AI
35772013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3578 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3579 Sergey Lega <sergey.s.lega@intel.com>
3580 Anna Tikhonova <anna.tikhonova@intel.com>
3581 Ilya Tocar <ilya.tocar@intel.com>
3582 Andrey Turetskiy <andrey.turetskiy@intel.com>
3583 Ilya Verbin <ilya.verbin@intel.com>
3584 Kirill Yukhin <kirill.yukhin@intel.com>
3585 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3586
3587 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3588 Use new names.
3589 (ix86_expand_vector_move_misalign): Support new unaligned load and
3590 stores and use new names.
3591 (CODE_FOR_sse2_storedqu): Rename to ...
3592 (CODE_FOR_sse2_storedquv16qi): ... this.
3593 (CODE_FOR_sse2_loaddqu): Rename to ...
3594 (CODE_FOR_sse2_loaddquv16qi): ... this.
3595 (CODE_FOR_avx_loaddqu256): Rename to ...
3596 (CODE_FOR_avx_loaddquv32qi): ... this.
3597 (CODE_FOR_avx_storedqu256): Rename to ...
3598 (CODE_FOR_avx_storedquv32qi): ... this.
3599 * config/i386/i386.md (fpint_logic): New.
3600 * config/i386/sse.md (VMOVE): Extend for AVX512.
3601 (VF): Ditto.
3602 (VF_128_256): New.
3603 (VF_512): Ditto.
3604 (VI_UNALIGNED_LOADSTORE): Ditto.
3605 (sse2_avx_avx512f): Ditto.
3606 (sse2_avx2): Extend for AVX512.
3607 (sse4_1_avx2): Ditto.
3608 (avx2_avx512f): New.
3609 (sse): Extend for AVX512.
3610 (sse2): Ditto.
3611 (sse4_1): Ditto.
3612 (avxsizesuffix): Ditto.
3613 (sseintvecmode): Ditto.
3614 (ssePSmode): Ditto.
3615 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3616 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3617 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3618 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3619 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3620 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3621 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3622 (STORENT_MODE): Extend for AVX512.
3623 (*absneg<mode>2): Replace constraint "x" with "v".
3624 (*mul<mode>3): Ditto.
3625 (*ieee_smin<mode>3): Ditto.
3626 (*ieee_smax<mode>3): Ditto.
3627 (avx_cmp<mode>3): Replace VF with VF_128_256.
3628 (*<sse>_maskcmp<mode>3_comm): Ditto.
3629 (<sse>_maskcmp<mode>3): Ditto.
3630 (<sse>_andnot<mode>3): Extend for AVX512.
3631 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3632 (<code><mode>3, fpint_logic): New.
3633 (*<code><mode>3): Extend for AVX512.
3634 (avx512flogicsuff): New.
3635 (avx512f_<logic><mode>): Ditto.
3636 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3637 VF_128_256.
3638 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3639 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3640 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3641 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3642 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3643 (xop_vpermil2<mode>3): Ditto.
3644 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3645 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3646 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3647 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3648
4d44d03c
TT
36492013-09-25 Tom Tromey <tromey@redhat.com>
3650
3651 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3652 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3653 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3654 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3655 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3656 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3657 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3658 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3659 (GRAPHITE_HTAB_H): Remove.
3660
86aaf68d
TT
36612013-09-25 Tom Tromey <tromey@redhat.com>
3662
3663 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3664
c987deb8
TT
36652013-09-25 Tom Tromey <tromey@redhat.com>
3666
3667 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3668
9439747e
TT
36692013-09-25 Tom Tromey <tromey@redhat.com>
3670
3671 * config/i386/t-i386 (i386.o): Remove.
3672 (i386-c.o): Use COMPILE and POSTCOMPILE.
3673
aefc31a1
TT
36742013-09-25 Tom Tromey <tromey@redhat.com>
3675
3676 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3677
b6541edc
TT
36782013-09-25 Tom Tromey <tromey@redhat.com>
3679
3680 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3681 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3682 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3683 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3684 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3685 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3686 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3687 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3688 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3689 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3690 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3691 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3692 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3693 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3694 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3695 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3696 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3697 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3698 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3699 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3700 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3701 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3702 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3703 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3704 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3705 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
3706 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
3707 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
3708 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
3709 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
3710 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
3711 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
3712 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
3713 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
3714 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
3715 (graphite-clast-to-gimple.o, graphite-dependences.o)
3716 (graphite-interchange.o, graphite-poly.o)
3717 (graphite-scop-detection.o, graphite-sese-to-poly.o)
3718 (graphite-optimize-isl.o, tree-vect-loop.o)
3719 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
3720 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
3721 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
3722 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
3723 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
3724 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
3725 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
3726 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
3727 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
3728 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
3729 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
3730 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
3731 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
3732 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
3733 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
3734 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
3735 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
3736 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
3737 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
3738 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
3739 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
3740 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
3741 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
3742 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
3743 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
3744 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
3745 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
3746 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
3747 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
3748 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
3749 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
3750 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
3751 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
3752 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
3753 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
3754 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
3755 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
3756 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
3757 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
3758 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
3759 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
3760 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
3761 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
3762 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
3763 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
3764 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
3765 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
3766 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
3767 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
3768 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
3769 (gcov-dump.o): Remove.
3770 (default-c.o): Use COMPILE and POSTCOMPILE.
3771 (CFLAGS-gcc.o): New variable.
3772 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
3773
8c796d19
TT
37742013-09-25 Tom Tromey <tromey@redhat.com>
3775
3776 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
3777 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
3778 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
3779 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
3780 (c-family/c-pragma.o, c-family/c-pretty-print.o)
3781 (c-family/c-semantics.o, c-family/c-ada-spec.o)
3782 (c-family/array-notation-common.o, c-family/stub-objc.o)
3783 (c-family/c-ubsan.o): Remove.
3784
0a6c2227
TT
37852013-09-25 Tom Tromey <tromey@redhat.com>
3786
3787 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
3788
f3bc55f0
TT
37892013-09-25 Tom Tromey <tromey@redhat.com>
3790
3791 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
3792 to add -DENABLE_SHARED_LIBGCC.
3793 (gcc.o): Don't use subshell.
3794
c11c795e
TT
37952013-09-25 Tom Tromey <tromey@redhat.com>
3796
3797 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
3798 * configure.ac: Don't invoke AM_PROG_CC_C_O.
3799 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
3800 * configure, config.in: Rebuild.
3801
043378c3
TT
38022013-09-25 Tom Tromey <tromey@redhat.com>
3803
3804 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
3805 (COMPILE, POSTCOMPILE): New variables.
3806 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
3807 (DEPFILES): New variable.
3808 Include ".Po" files.
3809 * configure.ac: Add checks for dependency checking.
3810 * configure, aclocal.m4: Regenerate.
3811
eab34643
TT
38122013-09-25 Tom Tromey <tromey@redhat.com>
3813
3814 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 3815 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 3816
d2db5e91
TT
38172013-09-25 Tom Tromey <tromey@redhat.com>
3818
3819 * Makefile.in (generated_files): Add options.h,
3820 target-hooks-def.h, insn-opinit.h,
3821 common/common-target-hooks-def.h, pass-instances.def,
3822 c-family/c-target-hooks-def.h.
3823
af33629e
JL
38242013-09-25 Jeff Law <law@redhat.com>
3825
3826 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
3827 than foo[foo.length () - 1] to access last member in a vec.
3828 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
3829
ed0d3051
RB
38302013-09-25 Richard Biener <rguenther@suse.de>
3831
3832 PR middle-end/58521
3833 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
3834
123485ca
JH
38352013-09-25 Jan Hubicka <jh@suse.cz>
3836
3837 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
3838 test.
3839
d70b0f1f
MP
38402013-09-25 Marek Polacek <polacek@redhat.com>
3841
3842 PR sanitizer/58420
3843 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
3844 when determining the type name.
3845
e3f02798
OE
38462013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
3847
3848 * config/sh/sh.md: Fix formatting.
3849
7a5911d3 38502013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 3851
7a5911d3
UB
3852 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
3853 max peel iterations parameter.
4f17aa0b
XDL
3854 * param.def: New parameter.
3855 * doc/invoke.texi: Document New parameter.
3856
0498471b
CL
38572013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
3858
3859 * gimple-pretty-print.c: Various whitespace tweaks.
3860 * tree-core.h: Likewise.
3861 * tree-pretty-print.c: Likewise.
3862 * tree-ssa-alias.c: Likewise.
3863 * tree-ssa-copy.c: Likewise.
3864 * tree-ssanames.c: Likewise.
3865 * tree-ssanames.h: Likewise.
3866 * tree-vrp.c: Likewise.
3867
5a8c2b57
AM
38682013-09-24 Alan Modra <amodra@gmail.com>
3869
3870 PR middle-end/57134
3871 PR middle-end/57586
7a5911d3
UB
3872 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
3873 for output operands that disallow regs. Don't use EXPAND_WRITE on
3874 inout operands.
5a8c2b57 3875
f40333af
RB
38762013-09-24 Richard Biener <rguenther@suse.de>
3877
3878 PR middle-end/58513
3879 * tree.c (reference_alias_ptr_type): Move ...
3880 * alias.c (reference_alias_ptr_type): ... here and implement
3881 in terms of the new reference_alias_ptr_type_1.
3882 (ref_all_alias_ptr_type_p): New helper.
3883 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
3884 use ref_all_alias_ptr_type_p.
3885 (get_deref_alias_set): Add flag_strict_aliasing check here.
3886 (reference_alias_ptr_type_1): New function, split out from ...
3887 (get_alias_set): ... here.
3888 (alias_ptr_types_compatible_p): New function.
3889 * alias.h (reference_alias_ptr_type): Declare.
3890 (alias_ptr_types_compatible_p): Likewise.
3891 * tree.h (reference_alias_ptr_type): Remove.
3892 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
3893 to compare MEM_REF alias types.
3894
583e8bf5
RB
38952013-09-24 Richard Biener <rguenther@suse.de>
3896
3897 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
3898
5e8586d7
MM
38992013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3900
19c3e797
MM
3901 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3902 reload helper function arrays into a single array reg_addr.
3903 (reload_fpr_gpr): Likewise.
3904 (reload_gpr_vsx): Likewise.
3905 (reload_vsx_gpr): Likewise.
3906 (struct rs6000_reg_addr): Likewise.
3907 (reg_addr): Likewise.
3908 (rs6000_debug_reg_global): Change rs6000_vector_reload,
3909 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3910 (rs6000_init_hard_regno_mode_ok): Likewise.
3911 (rs6000_secondary_reload_direct_move): Likewise.
3912 (rs6000_secondary_reload): Likewise.
3913
5e8586d7
MM
3914 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3915 constraints: wu, ww, and wy. Repurpose wv constraint added during
3916 power8 changes. Put wg constraint in alphabetical order.
3917
3918 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3919 for future work to add ISA 2.07 VSX single precision support.
3920 (-mvsx-scalar-double): Change default from -1 to 1, update
3921 documentation comment.
3922 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3923 (-mupper-regs-df): New debug switch to control whether DF values
3924 can go in the traditional Altivec registers.
3925 (-mupper-regs-sf): New debug switch to control whether SF values
3926 can go in the traditional Altivec registers.
3927
3928 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3929 and wy constraints.
3930 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3931 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
3932 Add new constraints, wu/ww/wy. Repurpose wv constraint.
3933 (rs6000_debug_legitimate_address_p): Print if we are running
3934 before, during, or after reload.
3935 (rs6000_secondary_reload): Add a comment.
3936 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3937
3938 * config/rs6000/constraints.md (wa constraint): Sort w<x>
3939 constraints. Update documentation string.
3940 (wd constraint): Likewise.
3941 (wf constraint): Likewise.
3942 (wg constraint): Likewise.
3943 (wn constraint): Likewise.
3944 (ws constraint): Likewise.
3945 (wt constraint): Likewise.
3946 (wx constraint): Likewise.
3947 (wz constraint): Likewise.
3948 (wu constraint): New constraint for ISA 2.07 SFmode scalar
3949 instructions.
3950 (ww constraint): Likewise.
3951 (wy constraint): Likewise.
3952 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
3953 the previous submissions.
3954 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
3955
e5af9ddd
RS
39562013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3957
3958 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
3959 (REG_BR_PROB): Say that the probability is stored in an int_list.
3960 * reg-notes.def: Update commentary to mention INT_LIST.
3961 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
3962 (INT_LIST): New rtx.
3963 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
3964 * rtlanal.c (int_reg_note_p): New function.
3965 (alloc_reg_note): Assert that the note does not have an int argument.
3966 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
3967 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
3968 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
3969 rather than an INSN_LIST. Handle INT_LIST.
3970 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
3971 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
3972 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
3973 Manipulate them as ints rather than rtxes.
3974 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
3975 * regmove.c (copy_src_to_dest): Likewise.
3976 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
3977
3978 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
3979 into the cases that need it.
3980 * config/arm/arm.c (arm_unwind_emit): Likewise.
3981
3982 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
3983 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
3984 * loop-doloop.c (add_test, doloop_modify): Likewise.
3985 * loop-unswitch.c (compare_and_jump_seq): Likewise.
3986 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
3987 * predict.c (combine_predictions_for_insn): Likewise.
3988 * print-rtl.c (print_rtx): Handle INT_LIST.
3989 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
3990 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
3991 * config/arm/arm.c (emit_unlikely_jump): Likewise.
3992 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
3993 (ix86_split_fp_branch, predict_jump): Likewise.
3994 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
3995 * config/sh/sh.c (expand_cbranchsi4): Likewise.
3996 * config/spu/spu.c (ea_load_store_inline): Likewise.
3997
3998 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
3999 value of a REG_BR_PROB note.
4000 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4001 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4002 * emit-rtl.c (try_split): Likewise.
4003 * predict.c (br_prob_note_reliable_p): Likewise.
4004 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4005 * reorg.c (mostly_true_jump): Likewise.
4006 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4007 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4008 * config/i386/i386.c (ix86_print_operand): Likewise.
4009 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4010 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4011 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4012 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4013 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4014 * config/sparc/sparc.c (output_cbranch): Likewise.
4015 * config/spu/spu.c (get_branch_target): Likewise.
4016 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4017 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4018
450ad0cd
JH
40192013-09-23 Jan Hubicka <jh@suse.cz>
4020
4021 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4022 for ipa-devirt.
4023 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4024 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4025 of external calls
4026 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4027 (gimple_fold_call): Dump inconsistent devirtualizations; add
4028 sanity check for type based devirtualizations.
4029 * ipa-prop.c: Include ipa-utils.h
4030 (ipa_intraprocedural_devirtualization): Add sanity check.
4031 (try_make_edge_direct_virtual_call): Likewise.
4032
cefce769
EB
40332013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4034
4035 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4036 assignment statements.
4037
a895a2b8
KV
40382013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4039
4040 * gimple-pretty-print.c (dump_ssaname_info): New function.
4041 (dump_gimple_phi): Call it.
4042 (pp_gimple_stmt_1): Likewise.
4043 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4044 (range_info_def): Declare.
4045 * tree-pretty-print.c (pp_double_int): New function.
4046 (dump_generic_node): Call it.
4047 * tree-pretty-print.h (pp_double_int): Declare.
4048 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4049 * tree-ssanames.h (range_info_def): New structure.
4050 (value_range_type): Move definition here.
4051 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4052 Declare.
4053 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4054 initialization.
4055 (set_range_info): New function.
4056 (get_range_info): Likewise.
4057 (duplicate_ssa_name_range_info): Likewise.
4058 (duplicate_ssa_name_fn): Check pointer type and call
4059 duplicate_ssa_name_range_info.
4060 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4061 * tree-vrp.c (value_range_type): Remove definition, now in
4062 tree-ssanames.h.
7a5911d3 4063 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4064 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4065 (SSA_NAME_RANGE_INFO): New macro.
4066
984af6ac
RB
40672013-09-23 Richard Biener <rguenther@suse.de>
4068
4069 PR tree-optimization/58464
4070 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4071 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4072 (phi_translate_1): Remove recursion detection here.
4073 (phi_translate): Pre-seed the cache with NULL to catch
4074 recursion here in a more generic way.
4075 (bitmap_find_leader): Adjust comment.
4076 (get_representative_for): Dump value-numbers.
4077 (create_expression_by_pieces): Likewise.
4078 (insert_into_preds_of_block): Likewise.
4079
0e26cf79
CB
40802013-09-23 Christian Bruel <christian.bruel@st.com>
4081
4082 PR target/58475
4083 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4084 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4085
4d0e5b54
JG
40862013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4087
4088 Revert r202780:
4089 2013-09-20 Renlin Li <renlin.li@arm.com>
4090
7a5911d3
UB
4091 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4092 plus_constant.
4d0e5b54
JG
4093 (aarch64_expand_epilogue): Likewise.
4094 (aarch64_legitimize_reload_address): Likewise.
4095
ca081cc8
EB
40962013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4097
4098 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4099 NULL_TREE before pushing them onto the vector. Likewise for labels.
4100
8fc53a5f
EB
41012013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4102
4103 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4104 comparison operators when -fno-trapping-math is in effect.
4105 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4106 comparison operators in TFmode and assert that unsupported operators
4107 cannot reach here.
4108 (ia64_print_operand): Likewise.
4109
41102013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4111
4112 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4113 (sse_typeless_stores): Enable for core
4114 (sse_load0_by_pxor): Likewise.
4115 (four_jump_limit): Disable for core.
4116 (pad_returns): Likewise.
4117 (avoid_vector_decode): Likewise.
4118 (fuse_cmp_and_branch): Enable for cores.
4119 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4120
578e51e6
JDA
41212013-09-20 John David Anglin <danglin@gcc.gnu.org>
4122
96ce28a3
JDA
4123 PR middle-end/56791
4124 * config/pa/pa.c (pa_option_override): Disable auto increment and
4125 decrement instructions until reload is completed.
4126
578e51e6
JDA
4127 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4128 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4129 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4130
6fcd3a13 41312013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4132 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4133
4134 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4135 (need_to_save): Save bank 0 on interrupts.
4136 (characterize_address): Strip far address wrappers.
4137 (rl78_as_legitimate_address): Likewise.
4138 (transcode_memory_rtx): Likewise.
4139 (rl78_peep_movhi_p): Disable this peephole after devirt.
4140 (rl78_propogate_register_origins): Forget all origins when a
4141 CLOBBER is seen.
4142 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4143 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4144 peephole2's.
4145 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4146 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4147 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4148 relocating.
4149 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4150
4a08db33
JDA
41512013-09-20 John David Anglin <danglin@gcc.gnu.org>
4152
4153 * config/pa/pa.md: In "scc" insn patterns, change output template to
4154 handle const0_rtx in reg_or_0_operand operands.
4155
7691132c
JBG
41562013-09-20 Martin Husemann <martin@NetBSD.org>
4157
4158 PR target/56875
4159 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4160 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4161
a3cc13cc
RB
41622013-09-20 Richard Biener <rguenther@suse.de>
4163
4164 PR middle-end/58484
4165 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4166 remembering SSA name version and block index.
4167 (new_scev_info_str): Adjust.
4168 (hash_scev_info): Likewise. Also hash the block index.
4169 (eq_scev_info): Adjust.
4170 (find_var_scev_info): Likewise.
4171 (struct instantiate_cache_entry): Remove.
4172 (struct instantiate_cache_type): Use a htab to map name, block
4173 to chrec.
4174 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4175 (get_instantiated_value_entry): Likewise.
4176 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4177 (instantiate_scev_name): Adjust.
4178
925f3871
JL
41792013-09-20 Jeff Law <law@redhat.com>
4180
4181 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4182
2888c331
YZ
41832013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4184
4185 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4186 Call aarch64_simd_expand_args to update op[argc].
4187
0a811e96
BS
41882013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4189
7a5911d3
UB
4190 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4191 plugin argument.
0a811e96 4192
0078f462
BS
41932013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4194
7a5911d3
UB
4195 * gengtype.c (file_rules): Added rule for *.cc files.
4196 (get_output_file_with_visibility): Give fatal message when no
4197 rules found.
0078f462 4198
d20e48b0
RL
41992013-09-20 Renlin Li <renlin.li@arm.com>
4200
4201 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4202 (aarch64_expand_epilogue): Likewise.
4203 (aarch64_legitimize_reload_address): Likewise.
4204
59bb1544
BE
42052013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4206
4207 PR middle-end/57748
4208 * expr.c (expand_assignment): Remove misalignp code path.
4209
a5430019
MP
42102013-09-20 Marek Polacek <polacek@redhat.com>
4211
4212 PR sanitizer/58413
4213 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4214 TYPE_PRECISION. Add asserts.
4215
9fed7f3a
RB
42162013-09-20 Richard Biener <rguenther@suse.de>
4217
4218 PR tree-optimization/58453
4219 * tree-loop-distribution.c (distribute_loop): Apply the cost
4220 model for -ftree-loop-distribute-patterns, too.
4221
a820c834
RB
42222013-09-20 Richard Biener <rguenther@suse.de>
4223
4224 PR middle-end/58473
4225 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4226 make type comparison less strict.
4227
3cbe17f7
AM
42282013-09-20 Alan Modra <amodra@gmail.com>
4229
4230 * configure: Regenerate.
4231 * aclocal.m4: Regenerate.
4232
87fccdbb
MP
42332013-09-20 Marek Polacek <polacek@redhat.com>
4234
4235 PR other/58467
4236 * doc/extend.texi: Document that attribute used is meant to be used
4237 on variables with static storage duration.
4238
8928eff3
JJ
42392013-09-19 Jakub Jelinek <jakub@redhat.com>
4240
4241 PR tree-optimization/58472
4242 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4243 simd_lane_access set inv_p = false.
4244 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4245 the simduid magic VAR_DECL.
4246
b7b28c53
JH
42472013-09-19 Jan Hubicka <jh@suse.cz>
4248
4249 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4250
83ae86f5
JL
42512013-09-17 Jeff Law <law@redhat.com>
4252
4253 * tree-ssa-dom.c (record_temporary_equivalences): New function
4254 split out of dom_opt_dom_walker::after_dom_children.
4255 (dom_opt_dom_walker::thread_across_edge): Move common code
4256 in here from dom_opt_dom_walker::after_dom_children.
4257 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4258
9d532162
JH
42592013-09-19 Jan Hubicka <jh@suse.cz>
4260
4261 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4262 (TARGET_GENERIC): Use PROCESOR_GENERIC
4263 (enum processor_type): Unify generic32 and 64.
4264 * i386.md (cpu): Likewise.
4265 * x86-tune.def (use_leave): Enable for generic32.
4266 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4267 * athlon.md: Change generic64 to generic in all occurences.
4268 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4269 (ix86_target_macros_internal): Likewise.
4270 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4271 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4272 to ..
9d532162
JH
4273 (generic_memcpy, generic_memset, generic_cost): This one.
4274 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4275 (m_GENERIC32, m_GENERIC64): Remove.
4276 (m_GENERIC): Turn into one flag.
4277 (processor_target): Unify generic tunnings.
4278 (ix86_option_override_internal): Replace generic32/64 by generic.
4279 (ix86_issue_rate): Likewise.
4280 (ix86_adjust_cost): Likewise.
4281
188c7d00
JH
42822013-09-19 Jan Hubicka <jh@suse.cz>
4283
4284 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4285 of speculative flag.
4286
4befd127
JJ
42872013-09-19 Jakub Jelinek <jakub@redhat.com>
4288
4289 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4290 GOMP_sections_start, even if !exit_reachable.
4291
8a26ad39
VM
42922013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4293
4294 * lra-constraints.c (need_for_all_save_p): Use macro
4295 HARD_REGNO_CALL_PART_CLOBBERED.
4296 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4297 set up pseudo conflict hard regs.
4298
09487185
MM
42992013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4300
4301 PR target/58452
4302 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4303 operands.
4304
080cbf9e
VM
43052013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4306
4307 PR rtl-optimization/58438
4308 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4309 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4310 from previous subpasses.
4311
a0f70fcb
RE
43122013-09-18 Richard Earnshaw <rearnsha@arm.com>
4313
4314 * arm.c (arm_get_frame_offsets): Validate architecture supports
4315 LDRD/STRD before accepting the tuning preference.
4316 (arm_expand_prologue): Likewise.
4317 (arm_expand_epilogue): Likewise.
4318
0547c9b6
RB
43192013-09-18 Richard Biener <rguenther@suse.de>
4320
4321 PR tree-optimization/58417
4322 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4323 have chrecs with symbols defined in the loop as operands.
4324 (chrec_fold_multiply): Likewise.
4325 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4326 parameters before folding binary operations.
4327 (struct instantiate_cache_entry_hasher): Remove.
4328 (struct instantiate_cache_type): Use a pointer-map.
4329 (instantiate_cache_type::instantiate_cache_type): New function.
4330 (instantiate_cache_type::get): Likewise.
4331 (instantiate_cache_type::set): Likewise.
4332 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4333 (get_instantiated_value_entry): Likewise.
4334 (global_cache): New global.
4335 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4336 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4337 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4338 (instantiate_scev_name): Adjust.
4339 (instantiate_scev): Construct global instead of local cache.
4340 (resolve_mixers): Likewise.
4341
309dc1aa
DM
43422013-09-18 Daniel Morris <danielm@ecoscentric.com>
4343 Paolo Carlini <paolo.carlini@oracle.com>
4344
4345 PR c++/58458
4346 * doc/implement-cxx.texi: Fix references to the C++ standards.
4347
995a1b4a
JJ
43482013-09-18 Jakub Jelinek <jakub@redhat.com>
4349
4350 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4351 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4352 simd_lane_access drs, update also DR_ALIGNED_TO.
4353
ce6923c5
MP
43542013-09-18 Marek Polacek <polacek@redhat.com>
4355
4356 PR sanitizer/58411
4357 * doc/extend.texi: Document no_sanitize_undefined attribute.
4358 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4359 no_sanitize_undefined attribute.
4360
d30d00a2
NC
43612013-09-18 Nick Clifton <nickc@redhat.com>
4362
4363 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4364 (ASM_DECLARE_FUNCTION_NAME): Define.
4365
4d9192b5
TS
43662013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4367
4368 * compare-elim.c (find_comparison_dom_walker): New class
4369 (find_comparisons_in_bb): Rename to
4370 find_comparison_dom_walker::before_dom_children
4371 (find_comparisons): Adjust
4372 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4373 adjust.
4374 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4375 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4376 (init_walk_dominator_tree): Remove declaration.
4377 (fini_walk_dominator_tree): Remove declaration.
4378 * fwprop.c (single_def_use_dom_walker): New class
4379 (single_def_use_enter_block): Convert to
4380 single_def_use_dom_walker::before_dom_children.
4381 (single_def_use_leave_block): Convert to
4382 single_def_use_dom_walker::after_dom_children.
4383 (build_single_def_use_links): Adjust.
4384 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4385 class.
4386 (find_candidates_in_block): Convert to
4387 find_candidates_dom_walker::before_dom_children.
4388 (execute_strength_reduction): Adjust.
4389 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4390 (sese_dom_walker): New class.
4391 (sese_dom_walker::sese_dom_walker): New constructor.
4392 (sese_dom_walker::~sese_dom_walker): New destructor.
4393 (build_sese_conditions_before): Convert to
4394 sese_dom_walker::before_dom_children.
4395 (build_sese_conditions_after): Convert to
4396 sese_dom_walker::after_dom_children.
4397 (build_poly_scop): Adjust
4398 * tree-into-ssa.c (rewrite_dom_walker): New class
4399 (rewrite_enter_block): Convert to
4400 rewrite_dom_walker::before_dom_children.
4401 (rewrite_leave_block): Convert to
4402 rewrite_dom_walker::after_dom_children.
4403 (rewrite_update_dom_walker): New class.
4404 (rewrite_update_enter_block): Convert to
4405 rewrite_update_dom_walker::before_dom_children.
4406 (rewrite_update_leave_block): Convert to
4407 rewrite_update_dom_walker::after_dom_children.
4408 (rewrite_blocks, rewrite_into_ssa): Adjust.
4409 (mark_def_dom_walker): New class.
4410 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4411 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4412 (mark_def_sites_blocks): Convert to
4413 mark_def_dom_walker::before_dom_children.
4414 (mark_def_site_blocks): Remove.
4415 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4416 (tree_ssa_dominator_optimize): Adjust.
4417 (dom_thread_across_edge): Convert to method
4418 dom_opt_dom_walker::thread_across_edge.
4419 (dom_opt_enter_block): Convert to member function
4420 dom_opt_dom_walker::before_dom_children.
4421 (dom_opt_leave_block): Convert to member function
4422 dom_opt_dom_walker::after_dom_children.
4423 * tree-ssa-dse.c (dse_dom_walker): New class.
4424 (dse_enter_block): Convert to member function
4425 dse_dom_walker::before_dom_children.
4426 (tree_ssa_dse): Adjust.
4427 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4428 (determine_invariantness_stmt): Convert to method
4429 invariantness_dom_walker::before_dom_children.
4430 (determine_invariantness): Remove
4431 (move_computations_dom_walker): New class.
4432 (move_computations_stmt): Convert to method
4433 move_computations_dom_walker::before_dom_children.
4434 (move_computations, tree_ssa_lim): Adjust.
4435 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4436 (nt_init_block): Make method
4437 notrappping_dom_walker::before_dom_children.
4438 (nt_fini_block): Make
4439 method nontrapping_dom_walker::after_dom_children.
4440 (get_non_trapping): Adjust.
4441 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4442 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4443 (eliminate_leave_block): Make method.
4444 eliminate_dom_walker::after_dom_children.
4445 (eliminate): Adjust
4446 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4447 (strlen_enter_block): Make method
4448 strlen_dom_walker::before_dom_children.
4449 (strlen_leave_block): Make
4450 method strlen_dom_walker::after_dom_children.
4451 (tree_ssa_strlen): Adjust.
4452 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4453 (tree_ssa_uncprop): Adjust.
4454 (uncprop_leave_block): Make method
4455 uncprop_dom_walker::after_dom_children.
4456 (uncprop_leave_block): Make method
4457 uncprop_dom_walker::before_dom_children.
4458
3b3cc26b
BC
44592013-09-18 Bin Cheng <bin.cheng@arm.com>
4460
7a5911d3
UB
4461 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4462 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4463
b5ba3a9b
NC
44642013-09-17 Nick Clifton <nickc@redhat.com>
4465
4466 * config/rl78/rl78-real.md (bf): New pattern.
4467 (bt): New pattern.
4468 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4469 (rl78_print_operand): Do not put a # before a %B.
4470 * config/rl78/rl78.opt: Tweak doc strings.
4471
09d5094b
DD
44722013-09-17 DJ Delorie <dj@redhat.com>
4473
4474 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4475 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4476 (rl78_option_override): Likewise, if -mallregs.
4477 (is_virtual_register): Likewise.
4478 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4479 (REGNO_OK_FOR_BASE_P): Likewise.
4480 * config/rl78/rl78.opt (-mallregs): New.
4481
2ba1dca1
NC
44822013-09-17 Nick Clifton <nickc@redhat.com>
4483
4484 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4485 For interrupt functions: save all call clobbered registers if the
4486 interrupt handler is not a leaf function.
4487 (rl78_expand_prologue): Always recompute the frame information.
4488 For interrupt functions: only select bank 0 if one of the bank 0
4489 registers is going to be psuhed.
4490
2e7c3f21
DD
44912013-09-17 DJ Delorie <dj@redhat.com>
4492
4493 * config/rl78/constraints.md: For each W* constraint, rename to C*
4494 and create a W* constraint that checks for an optional ES: prefix
4495 pattern also.
4496 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4497 (es_addr): New. Used to wrap far addresses.
4498 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4499 (rl78_es_base): New.
4500 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4501 wrapped far addresses.
4502 (rl78_print_operand_1): Unwrap far addresses before processing.
4503 (rl78_lo16): Wrap far addresses in unspecs.
4504 (rl78_es_addr): New.
4505 (rl78_es_base): New.
4506 (insn_ok_now): Check for not-yet-wrapped far addresses.
4507 (transcode_memory_rtx): Properly re-wrap far addresses.
4508
5c26a69a
SH
45092013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4510
4511 * config/sparc/t-rtems: Add leon3 multilibs.
4512
181f5f3e
CH
45132013-09-17 Cong Hou <congh@google.com>
4514
4515 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4516 when checking the dot production pattern. The type of rhs operand
4517 of multiply is now checked correctly.
4518
8d34e421
JL
45192013-09-17 Jeff Law <law@redhat.com>
4520
4521 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4522 edge implied equivalences into successor phis.
4523 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4524 here from tree-ssa-threadedge.c.
4525 (mark_threaded_blocks): When threading through a joiner, if both
4526 successors of the joiner's clone reach the same block, verify the
4527 PHI arguments are equal. If not, cancel the jump threading request.
4528 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4529 tree-ssa-threadupdate.c
4530 (thread_across_edge): Don't check PHI argument equality when
4531 threading through joiner block here.
7a5911d3 4532
c152901f
AM
45332013-09-17 Andrew MacLeod <amacleod@redhat.com>
4534
4535 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4536 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4537 (warn_uninit, warn_uninitialized_vars,
4538 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4539 Move to tree-ssa-uninit.c.
78cedfb1 4540 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4541 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4542 ssa_undefined_value_p.
4543 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4544 (warn_uninit, warn_uninitialized_vars,
4545 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4546 Move from tree-ssa.c.
4547 * tree-ssa.h: Adjust prototypes.
c152901f 4548
b631d45a
JH
45492013-09-17 Jan Hubicka <jh@suse.cz>
4550
4551 PR middle-end/58332
4552 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4553 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4554 FUNCTION_NOT_OPTIMIZED.
4555 * ipa-inline-analysis.c (compute_inline_parameters): Function
4556 not optimized is not inlinable unless it is alwaysinline.
4557 (inline_analyze_function): Force calls in not optimized
4558 function not inlinable.
4559
5b79657a
JH
45602013-09-17 Jan Hubicka <jh@suse.cz>
4561
4562 PR middle-end/58329
4563 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4564 to return NULL.
4565 * ipa.c (function_and_variable_visibility): Likewise.
4566 * ipa-profile.c (ipa_profile): Likewise.
4567
27442c24
BE
45682013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4569
4570 PR ipa/58398
4571 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4572 attribute, and don't inline the resolver in this case.
4573
753b9bc3
TJ
45742013-09-17 Teresa Johnson <tejohnson@google.com>
4575
4576 * coverage.c (get_coverage_counts): Add missing newline.
4577
e3d3cfb4
KT
45782013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4579
4580 PR tree-optimization/58088
4581 * fold-const.c (mask_with_trailing_zeros): New function.
4582 (fold_binary_loc): Make sure we don't recurse infinitely
4583 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4584 Use mask_with_trailing_zeros where appropriate.
4585
9a0ac98f
YR
45862013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4587
4588 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4589 of 'prev' var to get better distance estimation.
4590
78bbd765
EB
45912013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4592
4593 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4594 * tree-inline.c (is_parameter_of): New predicate.
4595 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4596 a parameter has been remapped.
4597 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4598 (optimize_inline_calls): Initialize transform_parameter.
4599 (copy_gimple_seq_and_replace_locals): Likewise.
4600 (tree_function_versioning): Likewise.
4601 (maybe_inline_call_in_expr): Likewise.
4602
cad055a4
NC
46032013-09-17 Nick Clifton <nickc@redhat.com>
4604
4605 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4606 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4607 interrupt handlers.
4608 (is_attr_func): New function.
4609 (msp430_is_interrupt_func): New function.
4610 (is_naked_func): New function.
4611 (is_reentrant_func): New function.
4612 (is_critical_func): New function.
4613 (msp430_start_function): Add annotations for function attributes.
4614 (msp430_attr): New function.
4615 (msp430_attribute_table): New.
4616 (msp430_function_section): New function.
4617 (TARGET_ASM_FUNCTION_SECTION): Define.
4618 (msp430_builtin): New enum.
4619 (msp430_init_builtins): New function.
4620 (msp430_builtin_devl): New function.
4621 (msp430_expand_builtin): New function.
4622 (TARGET_INIT_BUILTINS): Define.
4623 (TARGET_EXPAND_BUILTINS): Define.
4624 (TARGET_BUILTIN_DECL): Define.
4625 (msp430_expand_prologue): Add support for naked, interrupt,
4626 critical and reentrant functions.
4627 (msp430_expand_epilogue): Likewise.
4628 (msp430_print_operand): Handle 'O' character.
4629 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4630 NO_TRAMPOLINES.
4631 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4632 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4633 (pushm): Use a 'n' rather than an 'i' constraint.
4634 (msp_return): Add generation of the interrupt return instruction.
4635 (disable_interrupts): New pattern.
4636 (enable_interrupts): New pattern.
4637 (push_intr_state): New pattern.
4638 (pop_intr_state): New pattern.
4639 (bic_SR): New pattern.
4640 (bis_SR): New pattern.
4641 * doc/extend.texi: Document MSP430 function attributes and builtin
4642 functions.
4643
deb6c11a
RB
46442013-09-17 Richard Biener <rguenther@suse.de>
4645
4646 PR tree-optimization/58432
4647 * tree-loop-distribution.c (tree_loop_distribution): Also
4648 scan PHIs for outside loop uses and seed a partition from them.
4649
c068654b
BC
46502013-09-17 Bin Cheng <bin.cheng@arm.com>
4651
4652 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4653 (restructure_reference): Call backtrace_base_for_ref.
4654
567969e4
AM
46552013-09-17 Alan Modra <amodra@gmail.com>
4656
4657 PR target/57589
7a5911d3
UB
4658 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4659 patch.
567969e4 4660
5c0029de
DD
46612013-09-16 DJ Delorie <dj@redhat.com>
4662
4663 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4664 vregs location for RL78/G10.
4665 (rl78_expand_prologue): Avoid SEL on G10.
4666 (rl78_expand_epilogue): Likewise.
4667 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4668 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4669 __RL78_G10__ when appropriate.
4670 (ASM_SPEC): Pass -mg10 along to the assembler.
4671 * config/rl78/rl78.md (sel_rb): Disable for G10.
4672 * config/rl78/rl78.opt: Add -mg10 option.
4673 * config/rl78/t-rl78: Add -mg10 multilib.
4674
ea0f3e87
XDL
46752013-09-16 Xinliang David Li <davidxl@google.com>
4676
4677 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4678 * omp-low.c (omp_max_vf): Ditto.
4679 (expand_omp_simd): Ditto.
4680 * tree-vectorizer.c (vectorize_loops): Ditto.
4681 (gate_vect_slp): Ditto.
4682 (gate_increase_alignment): Ditto.
4683 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4684 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4685 (gate_tree_vectorize): Name change.
4686 (tree_vectorize): Ditto.
4687 (pass_vectorize::gate): Call new function.
4688 (pass_vectorize::execute): Ditto.
7a5911d3 4689 * opts.c: O3 default setting change.
ea0f3e87
XDL
4690 (finish_options): Check new flag.
4691 * doc/invoke.texi: Document new flags.
4692 * common.opt: New flags.
4693
4f3da2e5
AS
46942013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4695
4696 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4697 (Condition Code): Don't reference it.
4698 * doc/tm.texi: Regenerate.
4699
aa940f7c
VM
47002013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4701
4702 PR middle-end/58418
4703 * lra-constraints.c (undo_optional_reloads): Consider all optional
4704 reload even if it did not get a hard reg.
4705
e645e942
TJ
47062013-09-16 Teresa Johnson <tejohnson@google.com>
4707
4708 * dumpfile.c (dump_loc): Remove newline emission.
4709 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
4710 emission to dump_printf_loc calls where missing.
4711 (vect_mark_for_runtime_alias_test): Ditto.
4712 (vect_analyze_data_ref_dependence): Ditto.
4713 (vect_analyze_data_ref_dependences): Ditto.
4714 (vect_slp_analyze_data_ref_dependence): Ditto.
4715 (vect_slp_analyze_data_ref_dependences): Ditto.
4716 (vect_compute_data_ref_alignment): Ditto.
4717 (vect_update_misalignment_for_peel): Ditto.
4718 (vect_verify_datarefs_alignment): Ditto.
4719 (vector_alignment_reachable_p): Ditto.
4720 (vect_get_data_access_cost): Ditto.
4721 (vect_enhance_data_refs_alignment): Ditto.
4722 (vect_find_same_alignment_drs): Ditto.
4723 (vect_analyze_data_refs_alignment): Ditto.
4724 (vect_analyze_group_access): Ditto.
4725 (vect_analyze_data_ref_access): Ditto.
4726 (vect_analyze_data_ref_accesses): Ditto.
4727 (vect_prune_runtime_alias_test_list): Ditto.
4728 (vect_analyze_data_refs): Ditto.
4729 (vect_create_addr_base_for_vector_ref): Ditto.
4730 (vect_create_data_ref_ptr): Ditto.
4731 (vect_grouped_store_supported): Ditto.
4732 (vect_grouped_load_supported): Ditto.
4733 * value-prof.c (check_counter): Ditto.
4734 (check_ic_target): Ditto.
4735 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
4736 (vect_recog_widen_mult_pattern): Ditto.
4737 (vect_recog_widen_sum_pattern): Ditto.
4738 (vect_recog_over_widening_pattern): Ditto.
4739 (vect_recog_widen_shift_pattern): Ditto.
4740 (vect_recog_rotate_pattern): Ditto.
4741 (vect_recog_vector_vector_shift_pattern): Ditto.
4742 (vect_recog_divmod_pattern): Ditto.
4743 (vect_recog_mixed_size_cond_pattern): Ditto.
4744 (vect_recog_bool_pattern): Ditto.
4745 (vect_pattern_recog_1): Ditto.
4746 (vect_pattern_recog): Ditto.
4747 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
4748 (vect_is_simple_iv_evolution): Ditto.
4749 (vect_analyze_scalar_cycles_1): Ditto.
4750 (vect_get_loop_niters): Ditto.
4751 (vect_analyze_loop_1): Ditto.
4752 (vect_analyze_loop_form): Ditto.
4753 (vect_analyze_loop_operations): Ditto.
4754 (vect_analyze_loop_2): Ditto.
4755 (vect_analyze_loop): Ditto.
4756 (report_vect_op): Ditto.
4757 (vect_is_slp_reduction): Ditto.
4758 (vect_is_simple_reduction_1): Ditto.
4759 (vect_get_known_peeling_cost): Ditto.
4760 (vect_estimate_min_profitable_iters): Ditto.
4761 (vect_model_reduction_cost): Ditto.
4762 (vect_model_induction_cost): Ditto.
4763 (get_initial_def_for_induction): Ditto.
4764 (vect_create_epilog_for_reduction): Ditto.
4765 (vectorizable_reduction): Ditto.
4766 (vectorizable_induction): Ditto.
4767 (vectorizable_live_operation): Ditto.
4768 (vect_loop_kill_debug_uses): Ditto.
4769 (vect_transform_loop): Ditto.
4770 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
4771 (vect_stmt_relevant_p): Ditto.
4772 (process_use): Ditto.
4773 (vect_mark_stmts_to_be_vectorized): Ditto.
4774 (vect_model_simple_cost): Ditto.
4775 (vect_model_promotion_demotion_cost): Ditto.
4776 (vect_model_store_cost): Ditto.
4777 (vect_get_store_cost): Ditto.
4778 (vect_model_load_cost): Ditto.
4779 (vect_get_load_cost): Ditto.
4780 (vect_init_vector_1): Ditto.
4781 (vect_get_vec_def_for_operand): Ditto.
4782 (vect_finish_stmt_generation): Ditto.
4783 (vectorizable_call): Ditto.
4784 (vectorizable_conversion): Ditto.
4785 (vectorizable_assignment): Ditto.
4786 (vectorizable_shift): Ditto.
4787 (vectorizable_operation): Ditto.
4788 (vectorizable_store): Ditto.
4789 (vectorizable_load): Ditto.
4790 (vectorizable_condition): Ditto.
4791 (vect_analyze_stmt): Ditto.
4792 (vect_transform_stmt): Ditto.
4793 (vect_is_simple_use): Ditto.
4794 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
4795 (vect_can_advance_ivs_p): Ditto.
4796 (vect_update_ivs_after_vectorizer): Ditto.
4797 (vect_do_peeling_for_loop_bound): Ditto.
4798 (vect_gen_niters_for_prolog_loop): Ditto.
4799 (vect_update_inits_of_drs): Ditto.
4800 (vect_create_cond_for_alias_checks): Ditto.
4801 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
4802 (vect_build_slp_tree_1): Ditto.
4803 (vect_supported_load_permutation_p): Ditto.
4804 (vect_analyze_slp_instance): Ditto.
4805 (vect_analyze_slp): Ditto.
4806 (vect_make_slp_decision): Ditto.
4807 (vect_detect_hybrid_slp): Ditto.
4808 (vect_bb_vectorization_profitable_p): Ditto.
4809 (vect_slp_analyze_bb_1): Ditto.
4810 (vect_update_slp_costs_according_to_vf): Ditto.
4811 (vect_get_mask_element): Ditto.
4812 (vect_transform_slp_perm_load): Ditto.
4813 (vect_schedule_slp_instance): Ditto.
4814 (vect_schedule_slp): Ditto.
4815 (vect_slp_transform_bb): Ditto.
4816 * profile.c (read_profile_edge_counts): Ditto.
4817 (compute_branch_probabilities): Ditto.
4818 * coverage.c (get_coverage_counts): Ditto.
4819
46f851f3
DN
48202013-09-16 Diego Novillo <dnovillo@google.com>
4821
7a5911d3 4822 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 4823
1632a686
JH
48242013-09-16 Jan Hubicka <jh@suse.cz>
4825
4826 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 4827 abstract functions; for static functions check the presence of body.
1632a686 4828
828e70c1
JG
48292013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4830
4831 * config/aarch64/aarch64-simd-builtins.def (fma): New.
4832 * config/aarch64/aarch64-simd.md
4833 (aarch64_mla_elt<mode>): New.
4834 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4835 (aarch64_mls_elt<mode>): Likewise.
4836 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4837 (aarch64_fma4_elt<mode>): Likewise.
4838 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4839 (aarch64_fma4_elt_to_128v2df): Likewise.
4840 (aarch64_fma4_elt_to_64df): Likewise.
4841 (fnma<mode>4): Likewise.
4842 (aarch64_fnma4_elt<mode>): Likewise.
4843 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4844 (aarch64_fnma4_elt_to_128v2df): Likewise.
4845 (aarch64_fnma4_elt_to_64df): Likewise.
4846 * config/aarch64/iterators.md (VDQSF): New.
4847 * config/aarch64/arm_neon.h
4848 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
4849 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
4850
779aea46
JG
48512013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4852
4853 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
4854 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4855 (aarch64_mul3_elt_to_128df): Likewise.
4856 (aarch64_mul3_elt_to_64v2df): Likewise.
4857 * config/aarch64/iterators.md (VEL): Also handle DFmode.
4858 (VMUL): New.
4859 (VMUL_CHANGE_NLANES) Likewise.
4860 (h_con): Likewise.
4861 (f): Likewise.
4862 * config/aarch64/arm_neon.h
4863 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
4864
a407a750
JG
48652013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4866
4867 * config/aarch64/arm_neon.h
4868 (vcvtx_high_f32_f64): Fix parameters.
4869
f77e2d2d 48702013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 4871 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 4872
a5bd71fa 4873 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 4874
36875e8f
RB
48752013-09-16 Richard Biener <rguenther@suse.de>
4876
4877 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
4878 (dot_rdg_1): Handle control_dd.
4879 (create_edge_for_control_dependence): New function.
4880 (create_rdg_edges): Add control dependences if asked for.
4881 (build_rdg): Likewise.
4882 (generate_loops_for_partition): If there are not necessary
4883 control stmts remove all their dependencies.
4884 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
4885 (distribute_loop): Pass on control dependences.
4886 (tree_loop_distribution): Compute control dependences and remove
4887 restriction on number of loop nodes.
4888
96e24d49
JJ
48892013-09-16 Jakub Jelinek <jakub@redhat.com>
4890
4891 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
4892 for internal calls.
4893
40dbb05c
RS
48942013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
4895
4896 * cse.c (try_const_anchors): Punt on CC modes.
4897
97191ad0
JBG
48982013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4899
4900 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
4901
403a3fb7
JDA
49022013-09-14 John David Anglin <danglin@gcc.gnu.org>
4903
4904 PR target/58382
4905 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
4906 calls to word_mode.
4907
fb5610fb
IS
49082013-09-14 Iain Sandoe <iain@codesourcery.com>
4909
4910 PR target/48094
4911 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
4912 seen.
4913 (darwin_objc1_section): Likewise.
fb5610fb
IS
4914 (darwin_file_end): Emit Image Info section when required.
4915
afdec9bd
JH
49162013-09-14 Jan Hubicka <jh@suse.cz>
4917
4918 * tree-into-ssa.c (gate_into_ssa): New.
4919 (pass_data_build_ssa): Use it.
4920 * cgraph.h (expand_thunk): Update prototype.
4921 * cgraphunit.c (analyze_function): Expand thunks early.
4922 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
4923 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
4924 set lowered flag; do not add new function.
4925 (assemble_thunks_and_aliases): Update.
4926 * tree-ssa.c (gate_init_datastructures): New gate.
4927 (pass_data_init_datastructures): Use it.
4928
492d1e0a
IS
49292013-09-14 Iain Sandoe <iain@codesourcery.com>
4930
4931 PR target/58269
f77e2d2d 4932 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
4933 xmm register set described in the psABI.
4934
d13c6b70
EG
49352013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
4936
f77e2d2d
JBG
4937 * dwarf2out.c (should_emit_struct_debug): Add check
4938 for type_decl variable is not NULL.
d13c6b70 4939
88b0e79e
JC
49402013-09-13 Jacek Caban <jacek@codeweavers.com>
4941
4942 * config.gcc: Use new winnt-c.c target hooks
4943 * config/t-winnt: New file
4944 * config/winnt-c.c: New file
4945 * doc/tm.texi.in: Document new hook
4946 * doc/tm.texi: Regenerated
4947
19ba6aab
JH
49482013-09-13 Jan Hubicka <jh@suse.cz>
4949
4950 PR middle-end/58094
4951 * ipa-inline.c (check_callers): New function.
4952 (check_caller_edge): Remove.
4953 (want_inline_function_to_all_callers_p): Also permit alises that are
4954 called dirrectly.
4955 (inline_to_all_callers): Terminate the walk when devirtualization
4956 introduce new calls.
4957
a93c18c8
JH
49582013-09-13 Jan Hubicka <jh@suse.cz>
4959
4960 * ipa-inline-analysis.c (struct growth_data): Add node.
4961 (do_estimate_growth_1): Fix detection of recursion.
4962
f3b331d1
JJ
49632013-09-13 Jakub Jelinek <jakub@redhat.com>
4964
4965 PR tree-optimization/58392
4966 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
4967 to avoid shadowing of outer loop variable. If
4968 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
4969 replace_by_duplicate_decl simduid of loops that have it set and
4970 set dest_cfun->has_simduid_loops and/or
4971 dest_cfun->has_force_vect_loops.
4972 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
4973 instead of maybe_lookup_decl.
4974 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
4975 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
4976 call. Copy over force_vect and copy and remap simduid. Set
4977 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
4978 (copy_cfg_body): Remove blocks_to_copy argument. Use
4979 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
4980 caller. Don't set cfun->has_simduid_loops and/or
4981 cfun->has_force_vect_loops here.
4982 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
4983 caller.
4984 (expand_call_inline, tree_function_versioning): Adjust copy_body
4985 callers.
4986
ae6d0907
MJ
49872013-09-13 Martin Jambor <mjambor@suse.cz>
4988
4989 PR bootstrap/58388
4990 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
4991 the assert if the edge was a speculative one.
4992
2fd5894f
RB
49932013-09-13 Richard Biener <rguenther@suse.de>
4994
4995 * tree-data-ref.h (known_dependences_p): Move here ...
4996 * tree-loop-distribution.c (known_dependences_p): ... from here.
4997 (dump_rdg_component, debug_rdg_component): Remove.
4998 (dump_rdg): Adjust.
4999 (generate_loops_for_partition): Use gimple_uid instead of
5000 relying on matching stmt visit order.
5001 (rdg_build_partitions): Take starting stmt vector.
5002 (ldist_gen): Merge into ...
5003 (distribute_loop): ... this function. Do not compute starting
5004 vertices vector.
5005 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5006
86eb4bd7
KT
50072013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5008
5009 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5010 Set type attribute correctly. Set predicable_short_it attribute.
5011 (cmpsi_shiftsi): Remove %? from output template.
5012
83a95546
RB
50132013-09-13 Richard Biener <rguenther@suse.de>
5014
5015 * tree-loop-distribution.c (struct rdg_component,
5016 rdg_defs_used_in_other_loops_p, free_rdg_components,
5017 rdg_build_components): Remove.
5018 (stmts_from_loop): Do not record virtual PHIs.
5019 (generate_loops_for_partition): Skip virtual PHIs.
5020 (build_rdg_partition_for_component): Rename to ...
5021 (build_rdg_partition_for_vertex): ... this and adjust.
5022 (rdg_build_partitions): Take a vector of starting vertices
5023 instead of components. Remove unnecessary leftover handling.
5024 (ldist_gen): Do not build components or record other stores.
5025 (distribute_loop): Do not distribute loops containing stmts
5026 with side-effects.
5027
c0ecf7f1
CB
50282013-09-13 Christian Bruel <christian.bruel@st.com>
5029
5030 PR target/58314
5031 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5032
34f56efc
KT
50332013-09-13 Kai Tietz <ktietz@redhat.com>
5034
740f2bf3
KT
5035 * config.gcc: Separate cases for mingw and cygwin targets,
5036 and add 64-bit cygwin target case.
5037
34f56efc
KT
5038 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5039 dll-export inline-functions.
5040 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5041
5042
50432013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5044
5045 PR middle-end/58387
5046 Revert:
5047 2013-09-06 Jeff Law <law@redhat.com>
5048
5049 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5050 edge implied equivalences into successor phis.
5051
aadb52ad
DD
50522013-09-12 DJ Delorie <dj@redhat.com>
5053
5054 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5055 separators.
5056
90ae7019
BM
50572013-09-12 Brooks Moses <bmoses@google.com>
5058
5059 PR driver/42955
5060 * Makefile.in: Do not install driver binaries in $(target)/bin.
5061
17b2557c
DD
50622013-09-12 DJ Delorie <dj@redhat.com>
5063
c5215a9b
DD
5064 * config/rl78/rl78.opt (mrelax): New.
5065 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5066 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5067
17b2557c
DD
5068 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5069 between SP and FP.
5070 (rl78_expand_epilogue): Likewise.
5071
ecafcf05
VM
50722013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5073
5074 PR middle-end/58335
84f6d9fa 5075 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5076 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5077 pointer elimination with using remove_reg_equal_offset_note.
5078
8369f38a
DD
50792013-09-12 DJ Delorie <dj@redhat.com>
5080
f6a83b4a
DD
5081 * config/msp430/: New port.
5082 * config.gcc (msp430): Added.
5083 * doc/invoke.texi: Document MSP430 options.
5084 * doc/install.texi: Document msp430-elf
5085 * doc/md.texi: Document msp430-elf
5086 * doc/contrib.texi: Document msp430-elf
5087
8369f38a
DD
5088 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5089 PSImode.
5090
a854f856
MJ
50912013-09-12 Martin Jambor <mjambor@suse.cz>
5092
5093 PR ipa/58389
5094 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5095 reference descriptor is NULL.
5096 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5097 edge to NULL.
5098
b12ebd96
AM
50992013-09-12 Andrew MacLeod <amacleod@redhat.com>
5100
5101 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5102 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5103 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5104 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5105 make_temp_ssa_name): move to tree-ssanames.h
5106 * tree-ssa-alias.h: Move prototype.
5107 * tree-ssa.h: Include tree-ssanames.h.
5108 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5109 * tree-ssanames.h: New. Move items from tree-flow*.h
5110 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5111
e1fb4ad3
RB
51122013-09-12 Richard Biener <rguenther@suse.de>
5113
5114 PR tree-optimization/58404
5115 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5116 propagate non-invariant addresses into dereferences wrapped
5117 in component references.
5118
154c9188
RB
51192013-09-12 Richard Biener <rguenther@suse.de>
5120
5121 PR tree-optimization/58402
5122 * passes.def: Move pass_late_warn_uninitialized later.
5123
7a300452
AM
51242013-09-12 Andrew MacLeod <amacleod@redhat.com>
5125
5126 * tree-ssa.h: New. Move content from tree-flow.h and
5127 tree-flow-inline.h.
5128 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5129 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5130 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5131 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5132 tree-ssa.h.
5133 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5134 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5135 to...
5136 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5137 * tree.h: Move prototype to tree-ssa.h.
5138 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5139 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5140 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5141 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5142 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5143 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5144 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5145 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5146 graphite-blocking.c, graphite-clast-to-gimple.c,
5147 graphite-dependences.c, graphite-interchange.c,
5148 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5149 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5150 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5151 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5152 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5153 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5154 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5155 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5156 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5157 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5158 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5159 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5160 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5161 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5162 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5163 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5164 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5165 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5166 value-prof.c, var-tracking.c,
5167 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5168
97463b2b
RB
51692013-09-12 Richard Biener <rguenther@suse.de>
5170
5171 PR tree-optimization/58396
5172 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5173 (build_rdg): Take a loop-nest parameter, fix memleaks.
5174 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5175
80ecd89d
YR
51762013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5177
5178 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5179 for SLM.
5180
893e85fa
CM
51812013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5182
5183 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5184 The FMA instruction names should have a 'v' prefix.
5185
174ec470
RB
51862013-09-12 Richard Biener <rguenther@suse.de>
5187
5188 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5189 (dot_rdg): Use popen instead of system in optional code.
5190 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5191 (already_processed_vertex_p): Adjust.
5192 (has_anti_or_output_dependence, predecessor_has_mem_write,
5193 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5194 rdg_flag_uses): Remove.
5195 (rdg_flag_vertex): Simplify.
5196 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5197 remove recursion.
5198 (build_rdg_partition_for_component): Process the first vertex
5199 of a component only.
5200 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5201
38c89763
AM
52022013-09-12 Alan Modra <amodra@gmail.com>
5203
5204 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5205
3e3d9d17
DD
52062013-09-11 DJ Delorie <dj@redhat.com>
5207 Nick Clifton <nickc@redhat.com>
5208
5209 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5210 (rl78_stack_based_mem): New.
5211 * config/rl78/constraints.md (Iv08): New.
5212 (Iv16): New.
5213 (Iv24): New.
5214 (Is09): New.
5215 (Is17): New.
5216 (Is25): New.
5217 (ISsi): New.
5218 (IShi): New.
5219 (ISqi): New.
5220 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5221 (movhi): Likewise.
5222 (movsi): Change from expand to insn-and-split.
5223 (ashrsi3): Clobber AX.
5224 (lshrsi3): New.
5225 (ashlsi3): New.
5226 (cbranchsi4): New.
5227 * config/rl78/rl78.md (CC_REG): Fix.
5228 (addsi3): Allow memory and immediate operands.
5229 (addsi3_internal): Split into...
5230 (addsi3_internal_virt): ...new, and ...
5231 (addsi3_internal_real): ...new.
5232 (subsi): New.
5233 (subsi3_internal_virt): New.
5234 (subsi3_internal_real): New.
5235 (mulsi3): Add memory operand.
5236 (mulsi3_rl78): Likewise.
5237 (mulsi3_g13): Likewise.
5238 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5239 (cbranchqi4_real): Add more constraint options.
5240 (cbranchhi4_real): Expand pattern.
5241 (cbranchhi4_real_signed): New.
5242 (cbranchhi4_real_inverted): New.
5243 (cbranchsi4_real_lt): New.
5244 (cbranchsi4_real_ge): New.
5245 (cbranchsi4_real_signed): New.
5246 (cbranchsi4_real): New.
5247 (peephole2): New.
893e85fa
CM
5248 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5249 constant shifts.
3e3d9d17
DD
5250 (lshrsi3_virt): Likewise.
5251 (ashlsi3_virt): Likewise.
5252 (cbranchqi4_virt_signed): New.
5253 (cbranchhi4_virt_signed): New.
5254 (cbranchsi4_virt): New.
5255 * config/rl78/rl78.c: Whitespace fixes throughout.
5256 (move_elim_pass): New.
5257 (pass_data_rl78_move_elim): New.
5258 (pass_rl78_move_elim): New.
5259 (make_pass_rl78_move_elim): New.
5260 (rl78_devirt_info): Run devirt earlier.
5261 (rl78_move_elim_info): New.
5262 (rl78_asm_file_start): Register it.
5263 (rl78_split_movsi): New.
5264 (rl78_as_legitimate_address): Allow virtual base registers when
5265 appropriate.
5266 (rl78_addr_space_convert): Remove spurious debug stuff.
5267 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5268 (rl78_print_operand): More cases for not printing '#'.
5269 (rl78_expand_compare): Remove most of the logic.
5270 (content_memory): New.
5271 (clear_content_memory): New.
5272 (get_content_index): New.
5273 (get_content_name): New.
5274 (display_content_memory): New.
5275 (update_content): New.
5276 (record_content): New.
5277 (already_contains): New.
5278 (insn_ok_now): Re-recog insns with virtual registers.
5279 (add_postponed_content_update): New.
5280 (process_postponed_content_update): New.
5281 (gen_and_emit_move): New.
893e85fa
CM
5282 (transcode_memory_rtx): Record new location content.
5283 Use gen_and_emit_move.
3e3d9d17
DD
5284 (force_into_acc): New.
5285 (move_to_acc): Use gen_and_emit_move.
5286 (move_from_acc): Likewise.
5287 (move_acc_to_reg): Likewise.
5288 (move_to_x): Likewise.
5289 (move_to_hl): Likewise.
5290 (move_to_de): Likewise.
5291 (rl78_alloc_physical_registers_op1): Record location content.
5292 (has_constraint): New.
5293 (rl78_alloc_physical_registers_op2): Record location content.
5294 Optimize use of HL.
5295 (rl78_alloc_physical_registers_ro1): Likewise.
5296 (rl78_alloc_physical_registers_cmp): Likewise.
5297 (rl78_alloc_physical_registers_umul): Likewise.
5298 (rl78_alloc_address_registers_macax): New.
5299 (rl78_alloc_physical_registers): Initialize and set location
5300 content memory as needed.
5301 (rl78_reorg): Make sure split2 is called.
5302 (rl78_rtx_costs): New.
5303
088845a5
RS
53042013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5305
5306 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5307 for (not (neg ...)) and (neg (not ...)) cases.
5308
5c2961cf
RB
53092013-09-11 Richard Biener <rguenther@suse.de>
5310
5311 PR middle-end/58377
5312 * passes.def: Split critical edges before late uninit warning passes.
5313 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5314
427e6a14
JJ
53152013-09-11 Jakub Jelinek <jakub@redhat.com>
5316
5317 PR tree-optimization/58385
5318 * fold-const.c (build_range_check): If both low and high are NULL,
5319 use omit_one_operand_loc to preserve exp side-effects.
5320
df45c0cc
KT
53212013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5322
5323 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5324
80ab0b19
RB
53252013-09-11 Richard Biener <rguenther@suse.de>
5326
5327 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5328 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5329 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5330 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5331 stmts_from_loop, known_dependences_p, build_empty_rdg,
5332 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5333 * tree-loop-distribution.c: ... here.
5334 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5335 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5336 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5337 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5338 * tree-loop-distribution.c: ... here.
5339 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5340 (struct partition_s): Add loops member.
5341 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5342 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5343 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5344
85a77221
AI
53452013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5346 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5347 Sergey Lega <sergey.s.lega@intel.com>
5348 Anna Tikhonova <anna.tikhonova@intel.com>
5349 Ilya Tocar <ilya.tocar@intel.com>
5350 Andrey Turetskiy <andrey.turetskiy@intel.com>
5351 Ilya Verbin <ilya.verbin@intel.com>
5352 Kirill Yukhin <kirill.yukhin@intel.com>
5353 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5354
5355 * config/i386/constraints.md (k): New.
5356 (Yk): Ditto.
5357 * config/i386/i386.c (const regclass_map): Add new mask registers.
5358 (dbx_register_map): Ditto.
5359 (dbx64_register_map): Ditto.
5360 (svr4_dbx_register_map): Ditto.
5361 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5362 disabled.
5363 (ix86_preferred_reload_class): Disable constants for mask registers.
5364 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5365 (ix86_hard_regno_mode_ok): Support new mask registers.
5366 (x86_order_regs_for_local_alloc): Ditto.
5367 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5368 (FIXED_REGISTERS): Add new mask registers.
5369 (CALL_USED_REGISTERS): Ditto.
5370 (REG_ALLOC_ORDER): Ditto.
5371 (VALID_MASK_REG_MODE): New.
5372 (FIRST_MASK_REG): Ditto.
5373 (LAST_MASK_REG): Ditto.
5374 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5375 (MAYBE_MASK_CLASS_P): New.
5376 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5377 (REG_CLASS_CONTENTS): Ditto.
5378 (MASK_REGNO_P): New.
5379 (ANY_MASK_REG_P): Ditto.
5380 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5381 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5382 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5383 mask registers.
85a77221
AI
5384 (attribute "type"): Add mskmov, msklog.
5385 (attribute "length_immediate"): Support them.
5386 (attribute "memory"): Ditto.
5387 (attribute "prefix_0f"): Ditto.
5388 (*movhi_internal): Support new mask registers.
5389 (*movqi_internal): Ditto.
5390 (define_split): Split out clobber pattern is a logic
5391 insn on mask registers.
5392 (*k<logic><mode>): New.
5393 (*andhi_1): Extend to support mask regs.
5394 (*andqi_1): Extend to support mask regs.
5395 (kandn<mode>): New.
5396 (define_split): Split and-not to and and not if operands
5397 are not mask regs.
5398 (*<code><mode>_1): Separate HI mode to new pattern...
5399 (*<code>hi_1): This.
5400 (*<code>qi_1): Extend to support mask regs.
5401 (kxnor<mode>): New.
5402 (kortestzhi): Ditto.
5403 (kortestchi): Ditto.
5404 (kunpckhi): Ditto.
5405 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5406 (*one_cmplhi2_1): ...Here, now with mask registers support.
5407 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5408 (HI/QImode arithmetics splitter): Don't split if mask registers
5409 are used.
85a77221
AI
5410 (HI/QImode not splitter): Ditto.
5411 * config/i386/predicated.md (mask_reg_operand): New.
5412 (general_reg_operand): Ditto.
5413
7e570821
AI
54142013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5415
5416 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5417 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5418
9e1376e9
JL
54192013-09-10 Jeff Law <law@redhat.com>
5420
5421 PR tree-optimization/58380
5422 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5423 of threading through a buried loop header.
5424
5425 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5426 return value for single successor case.
5427
5bbcb888
JH
54282013-09-10 Jan Hubicka <jh@suse.cz>
5429
5430 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5431
d742ff4b
RE
54322013-09-10 Richard Earnshaw <rearnsha@arm.com>
5433
5434 PR target/58361
5435 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5436 support conditional execution.
5437 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5438
b0681c9e
VM
54392013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5440
5441 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5442 constraint pass.
f77e2d2d
JBG
5443 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5444 Check destination too to check move insn.
b0681c9e 5445 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5446 changed its allocation and the optional reload was inherited on last
5447 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5448 (lra_undo_inheritance): Add check that inherited pseudo still in
5449 memory.
5450
c9b1c957
JG
54512013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5452
5453 * config/aarch64/aarch64.md (generic_sched): New.
5454 * config/aarch64/aarch64-generic.md (load): Make conditional
5455 on generic_sched attribute.
5456 (nonload): Likewise.
5457
82d618d3
JH
54582013-09-10 Jan Hubicka <jh@suse.cz>
5459
5460 * lto-cgraph.c: Include ipa-utils.h.
5461 (compute_ltrans_boundary): Also add possible targets into the boundary.
5462
668b6894
JH
54632013-09-10 Jan Hubicka <jh@suse.cz>
5464
5465 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5466 VAR_DECL of vtable rather than full expression.
5467
4f90d3e0
JH
54682013-09-10 Jan Hubicka <jh@suse.cz>
5469 Paolo Carlini <paolo.carlini@oracle.com>
5470
5471 * cgraphunit.c (analyze_functions): Save input_location, set it
5472 to UNKNOWN_LOCATION and restore it at the end.
5473
39e87baf
MJ
54742013-09-10 Martin Jambor <mjambor@suse.cz>
5475
5476 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5477 represented by a thunk.
5478
581aedec
JL
54792013-09-10 Jeff Law <law@redhat.com>
5480
5481 PR tree-optimization/58343
5482 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5483 jump threading requests through loop headers buried in the middle
5484 of a jump threading path.
5485
5486 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5487 in return value/type.
5488
84cf4ab6
JJ
54892013-09-10 Jakub Jelinek <jakub@redhat.com>
5490
5491 PR rtl-optimization/58365
5492 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5493 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5494 it differs.
5495
447dd906
RB
54962013-09-10 Richard Biener <rguenther@suse.de>
5497
5498 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5499 * tree-data-ref.c (create_rdg_vertices): Collect all data
5500 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5501 (build_rdg): Compute data references only once. Maintain lifetime
5502 of data references and data dependences from within RDG.
447dd906
RB
5503 (free_rdg): Free dependence relations.
5504 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5505 inventing extra dependences.
5506 (distribute_loop): Update for RDG API changes.
5507
f14a7324
KT
55082013-09-10 Kai Tietz <ktietz@redhat.com>
5509
5510 * doc/invoke.texi (fms-extensions): Document changed
5511 behavior for ms-abi targets.
5512 * config/i386/i386.c (ix86_option_override_internal):
5513 Set default value of option -fms-extension for ms-abi targets.
5514
ff131f26
MZ
55152013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5516
5517 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5518
33115a2c
AM
55192013-09-10 Alan Modra <amodra@gmail.com>
5520
5521 PR target/58330
5522 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5523
b6872a13
AM
55242013-09-10 Alan Modra <amodra@gmail.com>
5525
5526 * config/rs6000/predicates.md (add_cint_operand): New.
5527 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5528 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5529 using add_cint_operand.
5530 (largetoc_high_plus_aix): Likewise.
5531
28fd0ba2
JJ
55322013-09-09 Jakub Jelinek <jakub@redhat.com>
5533
5534 PR tree-optimization/58364
5535 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5536 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5537 the current range can't be an unconditional true or false.
5538
552d99fe
JG
55392013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5540
5541 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5542
f43245d1
UB
55432013-09-09 Uros Bizjak <ubizjak@gmail.com>
5544
5545 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5546
c9b0866a
PC
55472013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5548
5549 PR c++/43452
5550 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5551
78d8b9f0
IB
55522013-09-09 Ian Bolton <ian.bolton@arm.com>
5553
5554 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5555 NO_REGS for immediate that can't be moved directly into FP_REGS.
5556
274b2532
KT
55572013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5558
5559 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5560 comparison with negated operand.
c9b0866a
PC
5561 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5562 RTL form.
274b2532 5563
467a3558
RB
55642013-09-09 Richard Biener <rguenther@suse.de>
5565
5566 PR middle-end/58326
5567 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5568 of a subloop record all its block as affecting loop-closed SSA form.
5569
088c5368
RS
55702013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5571
5572 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5573 of an rtx/bitpos pair.
5574 (store_fixed_bit_field): Update accordingly.
5575
69db2d57
RS
55762013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5577
5578 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5579 GEN_INT.
5580 * builtins.c (expand_errno_check): Likewise.
5581 * dwarf2cfi.c (init_return_column_size): Likewise.
5582 * except.c (sjlj_mark_call_sites): Likewise.
5583 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5584 * lra-constraints.c (emit_inc): Likewise.
5585 * ree.c (combine_set_extension): Likewise.
5586 * regmove.c (fixup_match_2): Likewise.
5587 * reload1.c (inc_for_reload): Likewise.
5588
69a59f0f
RS
55892013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5590
5591 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5592 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5593 Use gen_int_mode with the mode of the associated simplify_* call.
5594 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5595 * expmed.c (expand_shift_1): Likewise.
5596 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5597 * loop-iv.c (iv_number_of_iterations): Likewise.
5598 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5599 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5600
2f1cd2eb
RS
56012013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5602
5603 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5604 of the associated expand_* call.
5605 (asan_emit_stack_protection): Likewise.
5606 * builtins.c (round_trampoline_addr): Likewise.
5607 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5608 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5609 (emit_store_flag): Likewise.
5610 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5611 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5612 Likewise.
5613 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5614 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5615 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5616 * modulo-sched.c (generate_prolog_epilog): Likewise.
5617 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5618 (expand_ctz, expand_ffs, expand_unop): Likewise.
5619
4789c0ce
RS
56202013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5621
5622 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5623 of the associated gen_rtx_* call.
5624 * caller-save.c (init_caller_save): Likewise.
5625 * combine.c (find_split_point, make_extraction): Likewise.
5626 (make_compound_operation): Likewise.
5627 * dwarf2out.c (mem_loc_descriptor): Likewise.
5628 * explow.c (plus_constant, probe_stack_range): Likewise.
5629 * expmed.c (expand_mult_const): Likewise.
5630 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5631 * reload1.c (init_reload): Likewise.
5632 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5633 * var-tracking.c (adjust_mems): Likewise.
5634 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5635 rather than gen_rtx_fmt_ee.
5636
a811f7cb
JH
56372013-09-09 Jan Hubicka <jh@suse.cz>
5638
5639 PR middle-end/58294
5640 * value-prof.c (gimple_ic): Copy also abnormal edges.
5641
dcad1dd3
RS
56422013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5643
5644 * asan.c (asan_shadow_cst): Use gen_int_mode.
5645
daf5c770
JH
56462013-09-08 Jan Hubicka <jh@suse.cz>
5647
5648 * ipa-profile.c: Add toplevel comment.
5649 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5650 (contains_hot_call_p): New function.
5651 (ipa_propagate_frequency): Set frequencies based on counts when
5652 profile is read.
5653 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5654 profile; do not tamper with profile after inlining if it is read.
5655
a12cd2db
JH
56562013-09-08 Jan Hubicka <jh@suse.cz>
5657
5658 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5659 speculative edges.
5660
856a1588
JH
56612013-09-08 Jan Hubicka <jh@suse.cz>
5662
5663 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5664 summary generation.
5665
4f4b0b73
JL
56662013-09-08 Jeff Law <law@redhat.com>
5667
5668 PR bootstrap/58340
5669 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5670 of 'found'.
5671
cc4029ee
AK
56722013-09-08 Andi Kleen <ak@linux.intel.com>
5673
5674 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5675
7b395ddd
JH
56762013-09-08 Jan Hubicka <jh@suse.cz>
5677
5678 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5679
c34c46dd
RS
56802013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5681
5682 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5683 for non-debug insns.
5684 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5685 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5686 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5687 accordingly.
5688
3462aa02
JH
56892013-09-08 Jan Hubicka <jh@suse.cz>
5690
5691 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5692 targets and devirtualize to BUILT_IN_UNREACHABLE.
5693 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5694 * ipa.c (walk_polymorphic_call_targets): New function.
5695 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5696 functions; use the new timevar.
5697 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5698 was removed from the program.
5699 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5700 not consider it in the walk when its vtable is dead.
5701 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5702 record_binfo.
5703 (devirt_variable_node_removal_hook): New function.
5704 (possible_polymorphic_call_targets): Also register
5705 devirt_variable_node_removal_hook.
5706 (ipa_devirt): Do not do non-speculative devirtualization.
5707 (gate_ipa_devirt): One execute if devirtualizing speculatively.
5708
26e5b0fd
JH
57092013-09-08 Jan Hubicka <jh@suse.cz>
5710
5711 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
5712 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
5713 varpool_remove_variable_insertion_hook): Declare.
5714 * varpool.c (varpool_node_hook_list): New structure.
5715 (first_varpool_node_removal_hook,
5716 first_varpool_variable_insertion_hook): New variables.
5717 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
5718 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
5719 varpool_remove_variable_insertion_hook,
5720 varpool_call_variable_insertion_hooks): New functions.
5721 (varpool_remove_node): Use it.
5722
97f1f314 57232013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 5724
97f1f314
PC
5725 PR c++/54941
5726 * diagnostic.c (diagnostic_build_prefix): When s.file is
5727 "<built-in>" don't output line and column numbers.
6df2ca09 5728
bcb650cb
JH
57292013-09-06 Jan Hubicka <jh@suse.cz>
5730
5731 * cgraphunit.c (expand_thunk): Get body before touching arguments.
5732 * lto-streamer-out.c: Stream thunks, too.
5733 * lto-streamer-in.c (input_function): Pop cfun here
5734 (lto_read_body): Instead of here.
5735
87f3fea8
CT
57362013-09-06 Caroline Tice <cmtice@google.com>
5737
5738 * doc/install.texi: Add documentation for the --enable-vtable-verify
5739 and the --disable-libvtv configure options.
5740
5e8d9b45
JL
57412013-09-06 Jeff Law <law@redhat.com>
5742
5743 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5744 edge implied equivalences into successor phis.
5745
3a001aff
JR
57462013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
5747
5748 * resource.c (mark_referenced_resources): Handle COND_EXEC.
5749
57502013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
5751
5752 * resource.c (mark_target_live_regs): Compute resources taking
5753 into account if a call is predicated or not.
5754
2c641f8b
EB
57552013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5756
5757 * toplev.c (output_stack_usage): Be prepared for suffixes created by
5758 the compiler in the function names.
5759
a81b0a3d
JH
57602013-09-06 Jan Hubicka <jh@suse.cz>
5761
5762 PR middle-end/58094
5763 * ipa-inline.c (has_caller_p): New function.
5764 (want_inline_function_to_all_callers_p): Use it.
5765 (sum_callers, inline_to_all_callers): Break out from ...
5766 (ipa_inline): ... here.
5767
68e4ca7e
JH
57682013-09-06 Jan Hubicka <jh@suse.cz>
5769
2c641f8b
EB
5770 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
5771 only when AVX is enabled.
68e4ca7e 5772
3c73e2fe
JG
57732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5774
5775 * config/aarch64/aarch64.md
5776 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
5777 is fpsimd_<load/store>2.
5778 (load_pair<mode>): Likewise.
5779 (store_pair<mode>): Likewise.
5780
8c48eecd
JG
57812013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5782
5783 * config/arm/types.md (type): Add "mrs" type.
5784 * config/aarch64/aarch64.md
5785 (aarch64_load_tp_hard): Make type "mrs".
5786 * config/arm/arm.md
5787 (load_tp_hard): Make type "mrs".
5788 * config/arm/cortex-a15.md: Update with new attributes.
5789 * config/arm/cortex-a5.md: Update with new attributes.
5790 * config/arm/cortex-a53.md: Update with new attributes.
5791 * config/arm/cortex-a7.md: Update with new attributes.
5792 * config/arm/cortex-a8.md: Update with new attributes.
5793 * config/arm/cortex-a9.md: Update with new attributes.
5794 * config/arm/cortex-m4.md: Update with new attributes.
5795 * config/arm/cortex-r4.md: Update with new attributes.
5796 * config/arm/fa526.md: Update with new attributes.
5797 * config/arm/fa606te.md: Update with new attributes.
5798 * config/arm/fa626te.md: Update with new attributes.
5799 * config/arm/fa726te.md: Update with new attributes.
5800
9ea187a5
JG
58012013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5802
5803 * config/aarch64/aarch64.md
5804 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
5805 (*movtf_aarch64): Likewise.
5806 * config/arm/arm.md
5807 (thumb1_movdi_insn): Use "multiple" for type where more than one
5808 instruction is used for a move.
5809 (*arm32_movhf): Likewise.
5810 (*thumb_movdf_insn): Likewise.
5811
292b89b3
JG
58122013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5813
5814 * config/arm/types.md (type): Rename fcpys to fmov.
5815 * config/arm/vfp.md
5816 (*arm_movsi_vfp): Rename type fcpys as fmov.
5817 (*thumb2_movsi_vfp): Likewise
5818 (*movhf_vfp_neon): Likewise
5819 (*movhf_vfp): Likewise
5820 (*movsf_vfp): Likewise
5821 (*thumb2_movsf_vfp): Likewise
5822 (*movsfcc_vfp): Likewise
5823 (*thumb2_movsfcc_vfp): Likewise
5824 * config/aarch64/aarch64-simd.md
5825 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
5826 * config/aarch64/aarch64.md
5827 (*movsi_aarch64): Replace type mov_reg with fmovs.
5828 (*movdi_aarch64): Likewise
5829 (*movsf_aarch64): Likewise
5830 (*movdf_aarch64): Likewise
5831 * config/arm/arm.c
5832 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
5833 * config/arm/iwmmxt.md
5834 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
5835 * config/arm/arm1020e.md: Update with new attributes.
5836 * config/arm/cortex-a15-neon.md: Update with new attributes.
5837 * config/arm/cortex-a5.md: Update with new attributes.
5838 * config/arm/cortex-a53.md: Update with new attributes.
5839 * config/arm/cortex-a7.md: Update with new attributes.
5840 * config/arm/cortex-a8-neon.md: Update with new attributes.
5841 * config/arm/cortex-a9.md: Update with new attributes.
5842 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5843 * config/arm/cortex-r4f.md: Update with new attributes.
5844 * config/arm/marvell-pj4.md: Update with new attributes.
5845 * config/arm/vfp11.md: Update with new attributes.
5846
6a24a83e
JG
58472013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5848
5849 * config/aarch64/aarch64.md
5850 (*madd<mode>): Fix type attribute.
5851 (*maddsi_uxtw): Likewise.
5852 (*msub<mode>): Likewise.
5853 (*msubsi_uxtw): Likewise.
5854 (<su_optab>maddsidi4): Likewise.
5855 (<su_optab>msubsidi4): Likewise.
5856
b86923f0
JG
58572013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5858
5859 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
5860 * config/arm/arm.md (core_cycles): Remove fdiv.
5861 * config/arm/vfp.md:
5862 (*sqrtsf2_vfp): Update for attribute changes.
5863 (*sqrtdf2_vfp): Likewise.
5864 * config/aarch64/aarch64.md:
5865 (sqrt<mode>2): Update for attribute changes.
5866 * config/arm/arm1020e.md: Update with new attributes.
5867 * config/arm/cortex-a15-neon.md: Update with new attributes.
5868 * config/arm/cortex-a5.md: Update with new attributes.
5869 * config/arm/cortex-a53.md: Update with new attributes.
5870 * config/arm/cortex-a7.md: Update with new attributes.
5871 * config/arm/cortex-a8-neon.md: Update with new attributes.
5872 * config/arm/cortex-a9.md: Update with new attributes.
5873 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5874 * config/arm/cortex-r4f.md: Update with new attributes.
5875 * config/arm/marvell-pj4.md: Update with new attributes.
5876 * config/arm/vfp11.md: Update with new attributes.
5877
7b49c9e1
JG
58782013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5879
5880 * config/arm/types.md
5881 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
5882 * config/aarch64/aarch64.md
5883 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
5884 new attributes.
5885 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
5886 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
5887 (float<GPI:mode><GPF:mode>2): Likewise.
5888 * config/arm/vfp.md
5889 (*truncsisf2_vfp): Update with new attributes.
5890 (*truncsidf2_vfp): Likewise.
5891 (fixuns_truncsfsi2): Likewise.
5892 (fixuns_truncdfsi2): Likewise.
5893 (*floatsisf2_vfp): Likewise.
5894 (*floatsidf2_vfp): Likewise.
5895 (floatunssisf2): Likewise.
5896 (floatunssidf2): Likewise.
5897 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
5898 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
5899 * config/arm/arm1020e.md: Update with new attributes.
5900 * config/arm/cortex-a15-neon.md: Update with new attributes.
5901 * config/arm/cortex-a5.md: Update with new attributes.
5902 * config/arm/cortex-a53.md: Update with new attributes.
5903 * config/arm/cortex-a7.md: Update with new attributes.
5904 * config/arm/cortex-a8-neon.md: Update with new attributes.
5905 * config/arm/cortex-a9.md: Update with new attributes.
5906 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5907 * config/arm/cortex-r4f.md: Update with new attributes.
5908 * config/arm/marvell-pj4.md: Update with new attributes.
5909 * config/arm/vfp11.md: Update with new attributes.
5910
e7df8af8
JG
59112013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5912
5913 * config/aarch64/arm_neon.h
5914 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
5915 (vqtbx<1,2,3,4><q>_s8): Likewise.
5916
594726e4
JG
59172013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5918
f43245d1
UB
5919 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
5920 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
5921 (add<mode>3): Add type attribute.
5922 (add<mode>3): Likewise.
5923 (usadd<mode>3): Likewise.
5924 (ssadd<mode>3): Likewise.
5925 (sub<mode>3): Likewise.
5926 (sub<mode>3): Likewise.
5927 (ussub<mode>3): Likewise.
5928 (sssub<mode>3): Likewise.
5929 (ssmulsa3): Likewise.
5930 (usmulusa3): Likewise.
5931 (arm_usatsihi): Likewise.
5932 * config/arm/vfp.md
5933 (*movdi_vfp): Add types for all instructions.
5934 (*movdi_vfp_cortexa8): Likewise.
5935 (*movhf_vfp_neon): Likewise.
5936 (*movhf_vfp): Likewise.
5937 (*movdf_vfp): Likewise.
5938 (*thumb2_movdf_vfp): Likewise.
5939 (*thumb2_movdfcc_vfp): Likewise.
5940 * config/arm/arm.md: Add type attribute to all insn patterns.
5941 (*thumb1_adddi3): Add type attribute.
5942 (*arm_adddi3): Likewise.
5943 (*adddi_sesidi_di): Likewise.
5944 (*adddi_zesidi_di): Likewise.
5945 (*thumb1_addsi3): Likewise.
5946 (addsi3_compare0): Likewise.
5947 (*addsi3_compare0_scratch): Likewise.
5948 (*compare_negsi_si): Likewise.
5949 (cmpsi2_addneg): Likewise.
5950 (*addsi3_carryin_<optab>): Likewise.
5951 (*addsi3_carryin_alt2_<optab>): Likewise.
5952 (*addsi3_carryin_clobercc_<optab>): Likewise.
5953 (*subsi3_carryin): Likewise.
5954 (*subsi3_carryin_const): Likewise.
5955 (*subsi3_carryin_compare): Likewise.
5956 (*subsi3_carryin_compare_const): Likewise.
5957 (*arm_subdi3): Likewise.
5958 (*thumb_subdi3): Likewise.
5959 (*subdi_di_zesidi): Likewise.
5960 (*subdi_di_sesidi): Likewise.
5961 (*subdi_zesidi_di): Likewise.
5962 (*subdi_sesidi_di): Likewise.
5963 (*subdi_zesidi_ze): Likewise.
5964 (thumb1_subsi3_insn): Likewise.
5965 (*arm_subsi3_insn): Likewise.
5966 (*anddi3_insn): Likewise.
5967 (*anddi_zesidi_di): Likewise.
5968 (*anddi_sesdi_di): Likewise.
5969 (*ne_zeroextracts): Likewise.
5970 (*ne_zeroextracts): Likewise.
5971 (*ite_ne_zeroextr): Likewise.
5972 (*ite_ne_zeroextr): Likewise.
5973 (*anddi_notdi_di): Likewise.
5974 (*anddi_notzesidi): Likewise.
5975 (*anddi_notsesidi): Likewise.
5976 (andsi_notsi_si): Likewise.
5977 (thumb1_bicsi3): Likewise.
5978 (*iordi3_insn): Likewise.
5979 (*iordi_zesidi_di): Likewise.
5980 (*iordi_sesidi_di): Likewise.
5981 (*thumb1_iorsi3_insn): Likewise.
5982 (*xordi3_insn): Likewise.
5983 (*xordi_zesidi_di): Likewise.
5984 (*xordi_sesidi_di): Likewise.
5985 (*arm_xorsi3): Likewise.
5986 (*andsi_iorsi3_no): Likewise.
5987 (*smax_0): Likewise.
5988 (*smax_m1): Likewise.
5989 (*arm_smax_insn): Likewise.
5990 (*smin_0): Likewise.
5991 (*arm_smin_insn): Likewise.
5992 (*arm_umaxsi3): Likewise.
5993 (*arm_uminsi3): Likewise.
5994 (*minmax_arithsi): Likewise.
5995 (*minmax_arithsi_): Likewise.
5996 (*satsi_<SAT:code>): Likewise.
5997 (arm_ashldi3_1bit): Likewise.
5998 (arm_ashrdi3_1bit): Likewise.
5999 (arm_lshrdi3_1bit): Likewise.
6000 (*arm_negdi2): Likewise.
6001 (*thumb1_negdi2): Likewise.
6002 (*arm_negsi2): Likewise.
6003 (*thumb1_negsi2): Likewise.
6004 (*negdi_extendsid): Likewise.
6005 (*negdi_zero_extend): Likewise.
6006 (*arm_abssi2): Likewise.
6007 (*thumb1_abssi2): Likewise.
6008 (*arm_neg_abssi2): Likewise.
6009 (*thumb1_neg_abss): Likewise.
6010 (one_cmpldi2): Likewise.
6011 (extend<mode>di2): Likewise.
6012 (*compareqi_eq0): Likewise.
6013 (*arm_extendhisi2addsi): Likewise.
6014 (*arm_movdi): Likewise.
6015 (*thumb1_movdi_insn): Likewise.
6016 (*arm_movt): Likewise.
6017 (*thumb1_movsi_insn): Likewise.
6018 (pic_add_dot_plus_four): Likewise.
6019 (pic_add_dot_plus_eight): Likewise.
6020 (tls_load_dot_plus_eight): Likewise.
6021 (*thumb1_movhi_insn): Likewise.
6022 (*thumb1_movsf_insn): Likewise.
6023 (*movdf_soft_insn): Likewise.
6024 (*thumb_movdf_insn): Likewise.
6025 (cbranchsi4_insn): Likewise.
6026 (cbranchsi4_scratch): Likewise.
6027 (*negated_cbranchsi4): Likewise.
6028 (*tbit_cbranch): Likewise.
6029 (*tlobits_cbranch): Likewise.
6030 (*tstsi3_cbranch): Likewise.
6031 (*cbranchne_decr1): Likewise.
6032 (*addsi3_cbranch): Likewise.
6033 (*addsi3_cbranch_scratch): Likewise.
6034 (*arm_cmpdi_insn): Likewise.
6035 (*arm_cmpdi_unsig): Likewise.
6036 (*arm_cmpdi_zero): Likewise.
6037 (*thumb_cmpdi_zero): Likewise.
6038 (*deleted_compare): Likewise.
6039 (*mov_scc): Likewise.
6040 (*mov_negscc): Likewise.
6041 (*mov_notscc): Likewise.
6042 (*cstoresi_eq0_thumb1_insn): Likewise.
6043 (cstoresi_nltu_thumb1): Likewise.
6044 (cstoresi_ltu_thu): Likewise.
6045 (thumb1_addsi3_addgeu): Likewise.
6046 (*arm_jump): Likewise.
6047 (*thumb_jump): Likewise.
6048 (*check_arch2): Likewise.
6049 (arm_casesi_internal): Likewise.
6050 (thumb1_casesi_dispatch): Likewise.
6051 (*arm_indirect_jump): Likewise.
6052 (*thumb1_indirect_jump): Likewise.
6053 (nop): Likewise.
6054 (*and_scc): Likewise.
6055 (*ior_scc): Likewise.
6056 (*compare_scc): Likewise.
6057 (*cond_move): Likewise.
6058 (*cond_arith): Likewise.
6059 (*cond_sub): Likewise.
6060 (*cmp_ite0): Likewise.
6061 (*cmp_ite1): Likewise.
6062 (*cmp_and): Likewise.
6063 (*cmp_ior): Likewise.
6064 (*ior_scc_scc): Likewise.
6065 (*ior_scc_scc_cmp): Likewise.
6066 (*and_scc_scc): Likewise.
6067 (*and_scc_scc_cmp): Likewise.
6068 (*and_scc_scc_nod): Likewise.
6069 (*negscc): Likewise.
6070 (movcond_addsi): Likewise.
6071 (movcond): Likewise.
6072 (*ifcompare_plus_move): Likewise.
6073 (*if_plus_move): Likewise.
6074 (*ifcompare_move_plus): Likewise.
6075 (*if_move_plus): Likewise.
6076 (*ifcompare_arith_arith): Likewise.
6077 (*if_arith_arith): Likewise.
6078 (*ifcompare_arith_move): Likewise.
6079 (*if_arith_move): Likewise.
6080 (*ifcompare_move_arith): Likewise.
6081 (*if_move_arith): Likewise.
6082 (*ifcompare_move_not): Likewise.
6083 (*if_move_not): Likewise.
6084 (*ifcompare_not_move): Likewise.
6085 (*if_not_move): Likewise.
6086 (*ifcompare_shift_move): Likewise.
6087 (*if_shift_move): Likewise.
6088 (*ifcompare_move_shift): Likewise.
6089 (*if_move_shift): Likewise.
6090 (*ifcompare_shift_shift): Likewise.
6091 (*ifcompare_not_arith): Likewise.
6092 (*ifcompare_arith_not): Likewise.
6093 (*if_arith_not): Likewise.
6094 (*ifcompare_neg_move): Likewise.
6095 (*if_neg_move): Likewise.
6096 (*ifcompare_move_neg): Likewise.
6097 (*if_move_neg): Likewise.
6098 (prologue_thumb1_interwork): Likewise.
6099 (*cond_move_not): Likewise.
6100 (*sign_extract_onebit): Likewise.
6101 (*not_signextract_onebit): Likewise.
6102 (stack_tie): Likewise.
6103 (align_4): Likewise.
6104 (align_8): Likewise.
6105 (consttable_end): Likewise.
6106 (consttable_1): Likewise.
6107 (consttable_2): Likewise.
6108 (consttable_4): Likewise.
6109 (consttable_8): Likewise.
6110 (consttable_16): Likewise.
6111 (*thumb1_tablejump): Likewise.
6112 (prefetch): Likewise.
6113 (force_register_use): Likewise.
6114 (thumb_eh_return): Likewise.
6115 (load_tp_hard): Likewise.
6116 (load_tp_soft): Likewise.
6117 (tlscall): Likewise.
6118 (*arm_movtas_ze): Likewise.
6119 (*arm_rev): Likewise.
6120 (*arm_revsh): Likewise.
6121 (*arm_rev16): Likewise.
6122 * config/arm/thumb2.md
6123 (*thumb2_smaxsi3): Likewise.
6124 (*thumb2_sminsi3): Likewise.
6125 (*thumb32_umaxsi3): Likewise.
6126 (*thumb2_uminsi3): Likewise.
6127 (*thumb2_negdi2): Likewise.
6128 (*thumb2_abssi2): Likewise.
6129 (*thumb2_neg_abss): Likewise.
6130 (*thumb2_movsi_insn): Likewise.
6131 (tls_load_dot_plus_four): Likewise.
6132 (*thumb2_movhi_insn): Likewise.
6133 (*thumb2_mov_scc): Likewise.
6134 (*thumb2_mov_negs): Likewise.
6135 (*thumb2_mov_negs): Likewise.
6136 (*thumb2_mov_nots): Likewise.
6137 (*thumb2_mov_nots): Likewise.
6138 (*thumb2_movsicc_): Likewise.
6139 (*thumb2_movsfcc_soft_insn): Likewise.
6140 (*thumb2_indirect_jump): Likewise.
6141 (*thumb2_and_scc): Likewise.
6142 (*thumb2_ior_scc): Likewise.
6143 (*thumb2_ior_scc_strict_it): Likewise.
6144 (*thumb2_cond_move): Likewise.
6145 (*thumb2_cond_arith): Likewise.
6146 (*thumb2_cond_ari): Likewise.
6147 (*thumb2_cond_sub): Likewise.
6148 (*thumb2_negscc): Likewise.
6149 (*thumb2_movcond): Likewise.
6150 (thumb2_casesi_internal): Likewise.
6151 (thumb2_casesi_internal_pic): Likewise.
6152 (*thumb2_alusi3_short): Likewise.
6153 (*thumb2_mov<mode>_shortim): Likewise.
6154 (*thumb2_addsi_short): Likewise.
6155 (*thumb2_subsi_short): Likewise.
6156 (thumb2_addsi3_compare0): Likewise.
6157 (*thumb2_cbz): Likewise.
6158 (*thumb2_cbnz): Likewise.
6159 (*thumb2_one_cmplsi2_short): Likewise.
6160 (*thumb2_negsi2_short): Likewise.
6161 (*orsi_notsi_si): Likewise.
6162 * config/arm/arm1020e.md: Update with new attributes.
6163 * config/arm/arm1026ejs.md: Update with new attributes.
6164 * config/arm/arm1136jfs.md: Update with new attributes.
6165 * config/arm/arm926ejs.md: Update with new attributes.
6166 * config/arm/cortex-a15.md: Update with new attributes.
6167 * config/arm/cortex-a5.md: Update with new attributes.
6168 * config/arm/cortex-a53.md: Update with new attributes.
6169 * config/arm/cortex-a7.md: Update with new attributes.
6170 * config/arm/cortex-a8.md: Update with new attributes.
6171 * config/arm/cortex-a9.md: Update with new attributes.
6172 * config/arm/cortex-m4.md: Update with new attributes.
6173 * config/arm/cortex-r4.md: Update with new attributes.
6174 * config/arm/fa526.md: Update with new attributes.
6175 * config/arm/fa606te.md: Update with new attributes.
6176 * config/arm/fa626te.md: Update with new attributes.
6177 * config/arm/fa726te.md: Update with new attributes.
6178
1c83b673
JG
61792013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6180
6181 * config/aarch64/aarch64-simd.md
6182 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6183 <vwx> iterator to ensure correct register choice.
6184 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6185 (aarch64_sqdmull_n<mode>): Likewise.
6186 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6187 * config/aarch64/arm_neon.h
6188 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6189 (vml<as><q>_n_<su>16): Likewise.
6190 (vml<as>l_high_lane<q>_<su>16): Likewise.
6191 (vml<as>l_high_n_<su>16): Likewise.
6192 (vml<as>l_lane<q>_<su>16): Likewise.
6193 (vml<as>l_n_<su>16): Likewise.
6194 (vmul<q>_lane<q>_<su>16): Likewise.
6195 (vmul<q>_n_<su>16): Likewise.
6196 (vmull_lane<q>_<su>16): Likewise.
6197 (vmull_n_<su>16): Likewise.
6198 (vmull_high_lane<q>_<su>16): Likewise.
6199 (vmull_high_n_<su>16): Likewise.
6200 (vqrdmulh<q>_n_s16): Likewise.
6201
bb1ae543
TB
62022013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6203
6204 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6205 have the correct lane parameter.
6206
f23c0742
RB
62072013-09-06 Richard Biener <rguenther@suse.de>
6208
6209 * cfganal.c (control_dependences::~control_dependences):
6210 Properly free all of the vector.
6211
c1d49770
KY
62122013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6213
6214 PR target/58269
6215 * config/i386/i386.c (ix86_conditional_register_usage):
6216 Proper initialize extended SSE registers.
6217
6da47f52
JH
62182013-09-06 Jan Hubicka <jh@suse.cz>
6219
6220 PR tree-optimization/58311
6221 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6222
62232013-09-06 Jan Hubicka <jh@suse.cz>
6224
6225 * Makefile.in (tree-sra.o): Update dependencies.
6226 * tree-sra.c: Include ipa-utils.h
6227 (scan_function): Use recursive_call_p.
6228 (has_caller_p): New function.
6229 (cgraph_for_node_and_aliases): Count also callers of aliases.
6230
fc11f321
JH
62312013-09-06 Jan Hubicka <jh@suse.cz>
6232
6233 PR middle-end/58094
6234 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6235 * tree-tailcall.c: Include ipa-utils.h.
6236 (find_tail_calls): Use it.
6237 * ipa-pure-const.c (check_call): Likewise.
6238 * ipa-utils.c (recursive_call_p): New function.
6239 * ipa-utils.h (recursive_call_p): Dclare.
6240 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6241 (symtab_semantically_equivalent_p): New function.
6242 * Makefile.in (tree-tailcall.o): Update dependencies.
6243
9a6af450
EB
62442013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6245
6246 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6247 non-inlinable part.
6248
35f32ad4
RB
62492013-09-06 Richard Biener <rguenther@suse.de>
6250
6251 * lto-streamer.h (lto_global_var_decls): Remove.
6252 * Makefile.in (OBJS): Remove lto-symtab.o.
6253 (lto-symtab.o): Remove.
6254 (GTFILES): Remove lto-symtab.c
6255 * lto-symtab.c: Move to lto/
6256
d12a76f3
AK
62572013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6258
6259 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6260 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6261 (UNSPEC_FPINT_RINT): New constant definitions.
6262 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6263 definition with 2 attributes.
6264 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6265 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6266 definitions.
6267
62682013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6269
f43245d1 6270 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6271 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6272 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6273 attribute to "z196_alone".
6274 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6275 "zEC12_simple".
6276
c8e9d8c3
RB
62772013-09-06 Richard Biener <rguenther@suse.de>
6278
6279 * basic-block.h (class control_dependences): New.
6280 * tree-ssa-dce.c (control_dependence_map): Remove.
6281 (cd): New global.
6282 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6283 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6284 find_pdom, find_control_dependence, find_all_control_dependences):
6285 Move to cfganal.c.
f43245d1
UB
6286 (mark_control_dependent_edges_necessary,
6287 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6288 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6289 * cfganal.c (set_control_dependence_map_bit,
6290 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6291 find_all_control_dependences): Move from tree-ssa-dce.c and
6292 implement as methods of control_dependences class.
6293 (control_dependences::control_dependences): New.
6294 (control_dependences::~control_dependences): Likewise.
6295 (control_dependences::get_edges_dependent_on): Likewise.
6296 (control_dependences::get_edge): Likewise.
6297
7d2ba471
JH
62982013-09-04 Jan Hubicka <jh@suse.cz>
6299
6300 * tree.c (types_same_for_odr): Drop overactive check.
6301 * ipa-devirt.c (hash_type_name): Likewise.
6302
e18412fc
JH
63032013-09-04 Jan Hubicka <jh@suse.cz>
6304
6305 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6306 (analyze_functions): ... here.
6307
d352b245
JH
63082013-09-04 Jan Hubicka <jh@suse.cz>
6309
6310 PR middle-end/58201
6311 * cgraphunit.c (analyze_functions): Clear AUX fields
6312 after processing; initialize assembler name has.
6313
770da076
JL
63142013-09-05 Jeff Law <law@redhat.com>
6315
6316 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6317 from thread_around_empty_block. Record threading path into PATH.
6318 Recurse if threading through the initial block is successful.
6319 (thread_across_edge): Corresponding changes to slightly simplify.
6320
fe6f68e2
JG
63212013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6322
6323 * config/aarch64/aarch64.md
6324 (type): Remove frecpe, frecps, frecpx.
6325 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6326 fix to be a TARGET_SIMD instruction.
6327 (aarch64_frecps): Remove.
6328 * config/aarch64/aarch64-simd.md
6329 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6330 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6331
6e4150e1
JG
63322013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6333 Sofiane Naci <sofiane.naci@arm.com>
6334
f43245d1 6335 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6336 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6337 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6338 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6339 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6340 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6341 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6342 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6343 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6344 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6345 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6346 shift* types.
6347 * config/arm/arm-fixed.md: Update for attribute changes
6348 all occurrences of arlo_* types.
6349 * config/arm/thumb2.md: Update for attribute changes all occurrences
6350 of arlo_* types.
6351 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6352 (cortexa7_older_only): Likewise.
6353 (cortexa7_younger): Likewise.
6354 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6355 (1020alu_shift_op): Likewise.
6356 (1020alu_shift_reg_op): Likewise.
6357 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6358 (alu_shift_op): Likewise.
6359 (alu_shift_reg_op): Likewise.
f43245d1 6360 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6361 (11_alu_shift_op): Likewise.
6362 (11_alu_shift_reg_op): Likewise.
6363 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6364 (9_alu_shift_reg_op): Likewise.
6365 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6366 attribute changes.
6367 (cortex_a15_alu_shift): Likewise.
6368 (cortex_a15_alu_shift_reg): Likewise.
6369 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6370 attribute changes.
6371 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6372 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6373 attribute changes.
6e4150e1 6374 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6375 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6376 attribute changes.
6e4150e1
JG
6377 (cortex_a7_alu_reg): Likewise.
6378 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6379 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6380 attribute changes.
6e4150e1
JG
6381 (cortex_a8_alu_shift): Likewise.
6382 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6383 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6384 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6385 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6386 attribute changes.
6e4150e1
JG
6387 * config/arm/cortex-r4.md
6388 (cortex_r4_alu): Update for attribute changes.
6389 (cortex_r4_mov): Likewise.
6390 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6391 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6392 (526_alu_shift_op): Likewise.
f43245d1
UB
6393 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6394 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6395 (626te_alu_shift_op): Likewise.
f43245d1 6396 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6397 (726te_alu_shift_op): Likewise.
6398 (726te_alu_shift_reg_op): Likewise.
6399 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6400 (mp626_alu_shift_op): Likewise.
6401 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6402 (pj4_alu_conds): Likewise.
6403 (pj4_shift): Likewise.
6404 (pj4_shift_conds): Likewise.
6405 (pj4_alu_shift): Likewise.
6406 (pj4_alu_shift_conds): Likewise.
6407 * config/aarch64/aarch64.md: Update for attribute change
6408 all occurrences of arlo_* and shift* types.
6409
e6523306
MS
64102013-09-05 Mike Stump <mikestump@comcast.net>
6411
6412 * tree.h: Move documentation for tree_function_decl to tree-core.h
6413 with the declaration.
6414
80a18161
PB
64152013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6416
6417 PR target/58139
6418 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6419 looking for widest mode.
6420
6994430a
EB
64212013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6422
6423 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6424
e67f39f7
RB
64252013-09-05 Richard Biener <rguenther@suse.de>
6426
6427 PR tree-optimization/58137
6428 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6429 Do not create vectors of pointers.
6430 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6431 types for the components of the vector initializer.
6432 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6433 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6434
568cda29
MJ
64352013-09-05 Martin Jambor <mjambor@suse.cz>
6436
6437 * ipa-prop.c (remove_described_reference): Accept missing references,
6438 return false if that hppens, otherwise return true.
6439 (cgraph_node_for_jfunc): New function.
6440 (try_decrement_rdesc_refcount): Likewise.
6441 (try_make_edge_direct_simple_call): Use them.
6442 (ipa_edge_removal_hook): Remove references from rdescs.
6443 (ipa_edge_duplication_hook): Clone rdescs and their references
6444 when the new edge has the same caller as the old one.
6445 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6446 reference before removing any edges.
6447
5a200acb
RE
64482013-09-05 Richard Earnshaw <rearnsha@arm.com>
6449
6450 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6451 initial store.
6452 * thumb2.md (thumb2_storewb_parisi): New pattern.
6453
5922847b
YZ
64542013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6455
6456 * config/aarch64/aarch64-option-extensions.def: Add
6457 AARCH64_OPT_EXTENSION of 'crc'.
6458 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6459 (AARCH64_ISA_CRC): Ditto.
6460 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6461 description of the CRC extension.
6462
996746aa
AI
64632013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6464
6465 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6466 * config/rs6000/linux.h: Ditto.
6467 * alpha/linux.h: Ditto.
6468 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6469 no_c99_libc_has_function.
6470 * config/c6x/uclinux-elf.h: Ditto.
6471 * config/lm32/uclinux-elf.h: Ditto.
6472 * config/m68k/uclinux.h: Ditto.
6473 * config/moxie/uclinux.h: Ditto.
6474 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6475 (crisv32-*-linux*, cris-*-linux*): Ditto.
6476 * config/bfin/bfin.c: Include "tm_p.h".
6477
c370d99f
RB
64782013-09-05 Richard Biener <rguenther@suse.de>
6479
6480 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6481 check for a definition without a basic-block.
6482
003bb7f3
JG
64832013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6484 Sofiane Naci <sofiane.naci@arm.com>
6485
6486 * config/aarch64/aarch64.md
6487 (*movti_aarch64): Rename r_2_f and f_2_r.
6488 (*movsf_aarch64): Likewise.
6489 (*movdf_aarch64): Likewise.
6490 (*movtf_aarch64): Likewise.
6491 (aarch64_movdi_<mode>low): Likewise.
6492 (aarch64_movdi_<mode>high): Likewise.
6493 (aarch64_mov<mode>high_di): Likewise.
6494 (aarch64_mov<mode>low_di): Likewise.
6495 (aarch64_movtilow_tilow): Likewise.
6496 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6497 values to config/arm/types.md
6498 (attribute "conds"): Update for attribute change.
6499 (anddi3_insn): Likewise.
6500 (iordi3_insn): Likewise.
6501 (xordi3_insn): Likewise.
6502 (one_cmpldi2): Likewise.
6503 * config/arm/types.md (type): Add Neon types.
6504 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6505 use "type" attribute.
6506 (movmisalign<mode>_neon_store): Likewise.
6507 (movmisalign<mode>_neon_load): Likewise.
6508 (vec_set<mode>_internal): Likewise.
6509 (vec_setv2di_internal): Likewise.
6510 (vec_extract<mode>): Likewise.
6511 (vec_extractv2di): Likewise.
6512 (add<mode>3_neon): Likewise.
6513 (adddi3_neon): Likewise.
6514 (sub<mode>3_neon): Likewise.
6515 (subdi3_neon): Likewise.
6516 (mul<mode>3_neon): Likewise.
6517 (mul<mode>3add<mode>_neon): Likewise.
6518 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6519 (fma<VCVTF:mode>4)): Likewise.
6520 (fma<VCVTF:mode>4_intrinsic): Likewise.
6521 (fmsub<VCVTF:mode>4)): Likewise.
6522 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6523 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6524 (ior<mode>3): Likewise.
6525 (and<mode>3): Likewise.
6526 (anddi3_neon): Likewise.
6527 (orn<mode>3_neon): Likewise.
6528 (orndi3_neon): Likewise.
6529 (bic<mode>3_neon): Likewise.
6530 (bicdi3_neon): Likewise.
6531 (xor<mode>3): Likewise.
6532 (one_cmpl<mode>2): Likewise.
6533 (abs<mode>2): Likewise.
6534 (neg<mode>2): Likewise.
6535 (umin<mode>3_neon): Likewise.
6536 (umax<mode>3_neon): Likewise.
6537 (smin<mode>3_neon): Likewise.
6538 (smax<mode>3_neon): Likewise.
6539 (vashl<mode>3): Likewise.
6540 (vashr<mode>3_imm): Likewise.
6541 (vlshr<mode>3_imm): Likewise.
6542 (ashl<mode>3_signed): Likewise.
6543 (ashl<mode>3_unsigned): Likewise.
6544 (neon_load_count): Likewise.
6545 (ashldi3_neon_noclobber): Likewise.
6546 (signed_shift_di3_neon): Likewise.
6547 (unsigned_shift_di3_neon): Likewise.
6548 (ashrdi3_neon_imm_noclobber): Likewise.
6549 (lshrdi3_neon_imm_noclobber): Likewise.
6550 (widen_ssum<mode>3): Likewise.
6551 (widen_usum<mode>3): Likewise.
6552 (quad_halves_<code>v4si): Likewise.
6553 (quad_halves_<code>v4sf): Likewise.
6554 (quad_halves_<code>v8hi): Likewise.
6555 (quad_halves_<code>v16qi): Likewise.
6556 (reduc_splus_v2di): Likewise.
6557 (neon_vpadd_internal<mode>): Likewise.
6558 (neon_vpsmin<mode>): Likewise.
6559 (neon_vpsmax<mode>): Likewise.
6560 (neon_vpumin<mode>): Likewise.
6561 (neon_vpumax<mode>): Likewise.
6562 (ss_add<mode>_neon): Likewise.
6563 (us_add<mode>_neon): Likewise.
6564 (ss_sub<mode>_neon): Likewise.
6565 (us_sub<mode>_neon): Likewise.
6566 (neon_vadd<mode>_unspec): Likewise.
6567 (neon_vaddl<mode>): Likewise.
6568 (neon_vaddw<mode>): Likewise.
6569 (neon_vhadd<mode>): Likewise.
6570 (neon_vqadd<mode>): Likewise.
6571 (neon_vaddhn<mode>): Likewise.
6572 (neon_vmul<mode>): Likewise.
6573 (neon_vmla<mode>): Likewise.
6574 (neon_vmlal<mode>): Likewise.
6575 (neon_vmls<mode>): Likewise.
6576 (neon_vmlsl<mode>): Likewise.
6577 (neon_vqdmulh<mode>): Likewise.
6578 (neon_vqdmlal<mode>): Likewise.
6579 (neon_vqdmlsl<mode>): Likewise.
6580 (neon_vmull<mode>): Likewise.
6581 (neon_vqdmull<mode>): Likewise.
6582 (neon_vsub<mode>_unspec): Likewise.
6583 (neon_vsubl<mode>): Likewise.
6584 (neon_vsubw<mode>): Likewise.
6585 (neon_vqsub<mode>): Likewise.
6586 (neon_vhsub<mode>): Likewise.
6587 (neon_vsubhn<mode>): Likewise.
6588 (neon_vceq<mode>): Likewise.
6589 (neon_vcge<mode>): Likewise.
6590 (neon_vcgeu<mode>): Likewise.
6591 (neon_vcgt<mode>): Likewise.
6592 (neon_vcgtu<mode>): Likewise.
6593 (neon_vcle<mode>): Likewise.
6594 (neon_vclt<mode>): Likewise.
6595 (neon_vcage<mode>): Likewise.
6596 (neon_vcagt<mode>): Likewise.
6597 (neon_vtst<mode>): Likewise.
6598 (neon_vabd<mode>): Likewise.
6599 (neon_vabdl<mode>): Likewise.
6600 (neon_vaba<mode>): Likewise.
6601 (neon_vabal<mode>): Likewise.
6602 (neon_vmax<mode>): Likewise.
6603 (neon_vmin<mode>): Likewise.
6604 (neon_vpaddl<mode>): Likewise.
6605 (neon_vpadal<mode>): Likewise.
6606 (neon_vpmax<mode>): Likewise.
6607 (neon_vpmin<mode>): Likewise.
6608 (neon_vrecps<mode>): Likewise.
6609 (neon_vrsqrts<mode>): Likewise.
6610 (neon_vqabs<mode>): Likewise.
6611 (neon_vqneg<mode>): Likewise.
6612 (neon_vcls<mode>): Likewise.
6613 (clz<mode>2): Likewise.
6614 (popcount<mode>2): Likewise.
6615 (neon_vrecpe): Likewise.
6616 (neon_vrsqrte): Likewise.
6617 (neon_vget_lane<mode>_sext_internal): Likewise.
6618 (neon_vget_lane<mode>_zext_internal): Likewise.
6619 (neon_vdup_n<mode>): Likewise.
6620 (neon_vdup_nv2di): Likewise.
6621 (neon_vdpu_lane<mode>_internal): Likewise.
6622 (neon_vswp<mode>): Likewise.
6623 (float<mode><V_cvtto>2): Likewise.
6624 (floatuns<mode><V_cvtto>2): Likewise.
6625 (fix_trunc<mode><V_cvtto>)2): Likewise
6626 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6627 (neon_vcvt<mode>): Likewise.
6628 (neon_vcvtv4sfv4hf): Likewise.
6629 (neon_vcvtv4hfv4sf): Likewise.
6630 (neon_vcvt_n<mode>): Likewise.
6631 (neon_vmovn<mode>): Likewise.
6632 (neon_vqmovn<mode>): Likewise.
6633 (neon_vqmovun<mode>): Likewise.
6634 (neon_vmovl<mode>): Likewise.
6635 (neon_vmul_lane<mode>): Likewise.
6636 (neon_vmull_lane<mode>): Likewise.
6637 (neon_vqdmull_lane<mode>): Likewise.
6638 (neon_vqdmulh_lane<mode>): Likewise.
6639 (neon_vmla_lane<mode>): Likewise.
6640 (neon_vmlal_lane<mode>): Likewise.
6641 (neon_vqdmlal_lane<mode>): Likewise.
6642 (neon_vmls_lane<mode>): Likewise.
6643 (neon_vmlsl_lane<mode>): Likewise.
6644 (neon_vqdmlsl_lane<mode>): Likewise.
6645 (neon_vext<mode>): Likewise.
6646 (neon_vrev64<mode>): Likewise.
6647 (neon_vrev32<mode>): Likewise.
6648 (neon_vrev16<mode>): Likewise.
6649 (neon_vbsl<mode>_internal): Likewise.
6650 (neon_vshl<mode>): Likewise.
6651 (neon_vqshl<mode>): Likewise.
6652 (neon_vshr_n<mode>): Likewise.
6653 (neon_vshrn_n<mode>): Likewise.
6654 (neon_vqshrn_n<mode>): Likewise.
6655 (neon_vqshrun_n<mode>): Likewise.
6656 (neon_vshl_n<mode>): Likewise.
6657 (neon_vqshl_n<mode>): Likewise.
6658 (neon_vqshlu_n<mode>): Likewise.
6659 (neon_vshll_n<mode>): Likewise.
6660 (neon_vsra_n<mode>): Likewise.
6661 (neon_vsri_n<mode>): Likewise.
6662 (neon_vsli_n<mode>): Likewise.
6663 (neon_vtbl1v8qi): Likewise.
6664 (neon_vtbl2v8qi): Likewise.
6665 (neon_vtbl3v8qi): Likewise.
6666 (neon_vtbl4v8qi): Likewise.
6667 (neon_vtbx1v8qi): Likewise.
6668 (neon_vtbx2v8qi): Likewise.
6669 (neon_vtbx3v8qi): Likewise.
6670 (neon_vtbx4v8qi): Likewise.
6671 (neon_vtrn<mode>_internal): Likewise.
6672 (neon_vzip<mode>_internal): Likewise.
6673 (neon_vuzp<mode>_internal): Likewise.
6674 (neon_vld1<mode>): Likewise.
6675 (neon_vld1_lane<mode>): Likewise.
6676 (neon_vld1_dup<mode>): Likewise.
6677 (neon_vld1_dupv2di): Likewise.
6678 (neon_vst1<mode>): Likewise.
6679 (neon_vst1_lane<mode>): Likewise.
6680 (neon_vld2<mode>): Likewise.
6681 (neon_vld2_lane<mode>): Likewise.
6682 (neon_vld2_dup<mode>): Likewise.
6683 (neon_vst2<mode>): Likewise.
6684 (neon_vst2_lane<mode>): Likewise.
6685 (neon_vld3<mode>): Likewise.
6686 (neon_vld3qa<mode>): Likewise.
6687 (neon_vld3qb<mode>): Likewise.
6688 (neon_vld3_lane<mode>): Likewise.
6689 (neon_vld3_dup<mode>): Likewise.
6690 (neon_vst3<mode>): Likewise.
6691 (neon_vst3qa<mode>): Likewise.
6692 (neon_vst3qb<mode>): Likewise.
6693 (neon_vst3_lane<mode>): Likewise.
6694 (neon_vld4<mode>): Likewise.
6695 (neon_vld4qa<mode>): Likewise.
6696 (neon_vld4qb<mode>): Likewise.
6697 (neon_vld4_lane<mode>): Likewise.
6698 (neon_vld4_dup<mode>): Likewise.
6699 (neon_vst4<mode>): Likewise.
6700 (neon_vst4qa<mode>): Likewise.
6701 (neon_vst4qb<mode>): Likewise.
6702 (neon_vst4_lane<mode>): Likewise.
6703 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6704 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6705 (neon_vec_<US>mult_lo_<mode>): Likewise.
6706 (neon_vec_<US>mult_hi_<mode>): Likewise.
6707 (neon_vec_<US>shiftl_<mode>): Likewise.
6708 (neon_unpack<US>_<mode>): Likewise.
6709 (neon_vec_<US>mult_<mode>): Likewise.
6710 (vec_pack_trunc_<mode>): Likewise.
6711 (neon_vec_pack_trunk_<mode>): Likewise.
6712 (neon_vabd<mode>_2): Likewise.
6713 (neon_vabd<mode>_3): Likewise.
6714 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
6715 (thumb2_movsi_vfp): Likewise.
6716 (movdi_vfp): Likewise.
6717 (movdi_vfp_cortexa8): Likewise.
6718 (movhf_vfp_neon): Likewise.
6719 (movhf_vfp): Likewiwse.
6720 (movsf_vfp): Likewiwse.
6721 (thumb2_movsf_vfp): Likewiwse.
6722 (movdf_vfp): Likewise.
6723 (thumb2_movdf_vfp): Likewise.
6724 (movsfcc_vfp): Likewise.
6725 (thumb2_movsfcc_vfp): Likewise.
6726 (movdfcc_vfp): Likewise.
6727 (thumb2_movdfcc_vfp): Likewise.
6728 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
6729 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
6730 (v10_v2c): Likewise.
6731 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
6732 attribute change.
6733 (cortex_a15_neon_int_2): Likewise.
6734 (cortex_a15_neon_int_3): Likewise.
6735 (cortex_a15_neon_int_4): Likewise.
6736 (cortex_a15_neon_int_5): Likewise.
6737 (cortex_a15_neon_vqneg_vqabs): Likewise.
6738 (cortex_a15_neon_vmov): Likewise.
6739 (cortex_a15_neon_vaba): Likewise.
6740 (cortex_a15_neon_vaba_qqq): Likewise.
6741 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6742 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6743 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
6744 scalar_64_32_long_scalar): Likewise.
6745 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6746 (cortex_a15_neon_mla_qqq_8_16): Likewise.
6747 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6748 lotype_qdd_64_32_long): Likewise.
6749 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6750 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6751 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
6752 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6753 (cortex_a15_neon_shift_1): Likewise.
6754 (cortex_a15_neon_shift_2): Likewise.
6755 (cortex_a15_neon_shift_3): Likewise.
6756 (cortex_a15_neon_vshl_ddd): Likewise.
6757 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6758 (cortex_a15_neon_vsra_vrsra): Likewise.
6759 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
6760 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
6761 (cortex_a15_neon_fp_vmul_ddd): Likewise.
6762 (cortex_a15_neon_fp_vmul_qqd): Likewise.
6763 (cortex_a15_neon_fp_vmla_ddd): Likewise.
6764 (cortex_a15_neon_fp_vmla_qqq): Likewise.
6765 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
6766 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
6767 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6768 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6769 (cortex_a15_neon_bp_simple): Likewise.
6770 (cortex_a15_neon_bp_2cycle): Likewise.
6771 (cortex_a15_neon_bp_3cycle): Likewise.
6772 (cortex_a15_neon_vld1_1_2_regs): Likewise.
6773 (cortex_a15_neon_vld1_3_4_regs): Likewise.
6774 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6775 (cortex_a15_neon_vld2_4_regs): Likewise.
6776 (cortex_a15_neon_vld3_vld4): Likewise.
6777 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6778 (cortex_a15_neon_vst1_3_4_regs): Likewise.
6779 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
6780 (cortex_a15_neon_vst3_vst4): Likewise.
6781 (cortex_a15_neon_vld1_vld2_lane): Likewise.
6782 (cortex_a15_neon_vld3_vld4_lane" 10
6783 (cortex_a15_neon_vst1_vst2_lane): Likewise.
6784 (cortex_a15_neon_vst3_vst4_lane): Likewise.
6785 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
6786 (cortex_a15_neon_ldm_2): Likewise.0
6787 (cortex_a15_neon_stm_2): Likewise.
6788 (cortex_a15_neon_mcr): Likewise.
6789 (cortex_a15_neon_mcr_2_mcrr): Likewise.
6790 (cortex_a15_neon_mrc): Likewise.
6791 (cortex_a15_neon_mrrc): Likewise.
6792 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6793 change.
6794 (cortex_a15_alu_shift): Likewise.
6795 (cortex_a15_alu_shift_reg): Likewise.
6796 (cortex_a15_mult32): Likewise.
6797 (cortex_a15_mult64): Likewise.
6798 (cortex_a15_block): Likewise.
6799 (cortex_a15_branch): Likewise.
6800 (cortex_a15_load1): Likewise.
6801 (cortex_a15_load3): Likewise.
6802 (cortex_a15_store1): Likewise.
6803 (cortex_a15_store3): Likewise.
6804 (cortex_a15_call): Likewise.
f43245d1 6805 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
6806 (cortex_a5_f2r): Likewise.
6807 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
6808 change.
6809 (cortex_a53_f2r): Likewise.
6810 * config/arm/cortex-a7.md
6811 (cortex_a7_branch): Update for attribute change.
6812 (cortex_a7_call): Likewise.
6813 (cortex_a7_alu_imm): Likewise.
6814 (cortex_a7_alu_reg): Likewise.
6815 (cortex_a7_alu_shift): Likewise.
6816 (cortex_a7_mul): Likewise.
6817 (cortex_a7_load1): Likewise.
6818 (cortex_a7_store1): Likewise.
6819 (cortex_a7_load2): Likewise.
6820 (cortex_a7_store2): Likewise.
6821 (cortex_a7_load3): Likewise.
6822 (cortex_a7_store3): Likewise.
6823 (cortex_a7_load4): Likewise.
6824 (cortex_a7_store4): Likewise.
6825 (cortex_a7_fpalu): Likewise.
6826 (cortex_a7_fconst): Likewise.
6827 (cortex_a7_fpmuls): Likewise.
6828 (cortex_a7_neon_mul): Likewise.
6829 (cortex_a7_fpmacs): Likewise.
6830 (cortex_a7_neon_mla: Likewise.
6831 (cortex_a7_fpmuld: Likewise.
6832 (cortex_a7_fpmacd: Likewise.
6833 (cortex_a7_fpfmad: Likewise.
6834 (cortex_a7_fdivs: Likewise.
6835 (cortex_a7_fdivd: Likewise.
6836 (cortex_a7_r2f: Likewise.
6837 (cortex_a7_f2r: Likewise.
6838 (cortex_a7_f_flags: Likewise.
6839 (cortex_a7_f_loads: Likewise.
6840 (cortex_a7_f_loadd: Likewise.
6841 (cortex_a7_f_stores: Likewise.
6842 (cortex_a7_f_stored: Likewise.
6843 (cortex_a7_neon): Likewise.
6844 * config/arm/cortex-a8-neon.md
6845 (cortex_a8_neon_mrc): Update for attribute change.
6846 (cortex_a8_neon_mrrc): Likewise.
6847 (cortex_a8_neon_int_1): Likewise.
6848 (cortex_a8_neon_int_2): Likewise.
6849 (cortex_a8_neon_int_3): Likewise.
6850 (cortex_a8_neon_int_4): Likewise.
6851 (cortex_a8_neon_int_5): Likewise.
6852 (cortex_a8_neon_vqneg_vqabs): Likewise.
6853 (cortex_a8_neon_vmov): Likewise.
6854 (cortex_a8_neon_vaba): Likewise.
6855 (cortex_a8_neon_vaba_qqq): Likewise.
6856 (cortex_a8_neon_vsma): Likewise.
6857 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6858 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6859 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6860 long_scalar): Likewise.
003bb7f3
JG
6861 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6862 (cortex_a8_neon_mla_qqq_8_16): Likewise.
6863 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6864 long_scalar_qdd_64_32_long): Likewise.
6865 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6866 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6867 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
6868 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6869 (cortex_a8_neon_shift_1): Likewise.
6870 (cortex_a8_neon_shift_2): Likewise.
6871 (cortex_a8_neon_shift_3): Likewise.
6872 (cortex_a8_neon_vshl_ddd): Likewise.
6873 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6874 (cortex_a8_neon_vsra_vrsra): Likewise.
6875 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
6876 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
6877 (cortex_a8_neon_fp_vsum): Likewise.
6878 (cortex_a8_neon_fp_vmul_ddd): Likewise.
6879 (cortex_a8_neon_fp_vmul_qqd): Likewise.
6880 (cortex_a8_neon_fp_vmla_ddd): Likewise.
6881 (cortex_a8_neon_fp_vmla_qqq): Likewise.
6882 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
6883 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
6884 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6885 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6886 (cortex_a8_neon_bp_simple): Likewise.
6887 (cortex_a8_neon_bp_2cycle): Likewise.
6888 (cortex_a8_neon_bp_3cycle): Likewise.
6889 (cortex_a8_neon_ldr): Likewise.
6890 (cortex_a8_neon_str): Likewise.
6891 (cortex_a8_neon_vld1_1_2_regs): Likewise.
6892 (cortex_a8_neon_vld1_3_4_regs): Likewise.
6893 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6894 (cortex_a8_neon_vld2_4_regs): Likewise.
6895 (cortex_a8_neon_vld3_vld4): Likewise.
6896 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6897 (cortex_a8_neon_vst1_3_4_regs): Likewise.
6898 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
6899 (cortex_a8_neon_vst3_vst4): Likewise.
6900 (cortex_a8_neon_vld1_vld2_lane): Likewise.
6901 (cortex_a8_neon_vld3_vld4_lane): Likewise.
6902 (cortex_a8_neon_vst1_vst2_lane): Likewise.
6903 (cortex_a8_neon_vst3_vst4_lane): Likewise.
6904 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
6905 (cortex_a8_neon_mcr): Likewise.
6906 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 6907 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
6908 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
6909 change.
6910 (ca9_neon_mrrc): Likewise.
6911 (cortex_a9_neon_int_1): Likewise.
6912 (cortex_a9_neon_int_2): Likewise.
6913 (cortex_a9_neon_int_3): Likewise.
6914 (cortex_a9_neon_int_4): Likewise.
6915 (cortex_a9_neon_int_5): Likewise.
6916 (cortex_a9_neon_vqneg_vqabs): Likewise.
6917 (cortex_a9_neon_vmov): Likewise.
6918 (cortex_a9_neon_vaba): Likewise.
6919 (cortex_a9_neon_vaba_qqq): Likewise.
6920 (cortex_a9_neon_vsma): Likewise.
6921 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6922 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6923 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6924 long_scalar): Likewise.
003bb7f3
JG
6925 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6926 (cortex_a9_neon_mla_qqq_8_16): Likewise.
6927 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6928 long_scalar_qdd_64_32_long): Likewise.
6929 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6930 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6931 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
6932 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6933 (cortex_a9_neon_shift_1): Likewise.
6934 (cortex_a9_neon_shift_2): Likewise.
6935 (cortex_a9_neon_shift_3): Likewise.
6936 (cortex_a9_neon_vshl_ddd): Likewise.
6937 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6938 (cortex_a9_neon_vsra_vrsra): Likewise.
6939 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
6940 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
6941 (cortex_a9_neon_fp_vsum): Likewise.
6942 (cortex_a9_neon_fp_vmul_ddd): Likewise.
6943 (cortex_a9_neon_fp_vmul_qqd): Likewise.
6944 (cortex_a9_neon_fp_vmla_ddd): Likewise.
6945 (cortex_a9_neon_fp_vmla_qqq): Likewise.
6946 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
6947 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
6948 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6949 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6950 (cortex_a9_neon_bp_simple): Likewise.
6951 (cortex_a9_neon_bp_2cycle): Likewise.
6952 (cortex_a9_neon_bp_3cycle): Likewise.
6953 (cortex_a9_neon_ldr): Likewise.
6954 (cortex_a9_neon_str): Likewise.
6955 (cortex_a9_neon_vld1_1_2_regs): Likewise.
6956 (cortex_a9_neon_vld1_3_4_regs): Likewise.
6957 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6958 (cortex_a9_neon_vld2_4_regs): Likewise.
6959 (cortex_a9_neon_vld3_vld4): Likewise.
6960 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6961 (cortex_a9_neon_vst1_3_4_regs): Likewise.
6962 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
6963 (cortex_a9_neon_vst3_vst4): Likewise.
6964 (cortex_a9_neon_vld1_vld2_lane): Likewise.
6965 (cortex_a9_neon_vld3_vld4_lane): Likewise.
6966 (cortex_a9_neon_vst1_vst2_lane): Likewise.
6967 (cortex_a9_neon_vst3_vst4_lane): Likewise.
6968 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
6969 (cortex_a9_neon_mcr): Likewise.
6970 (cortex_a9_neon_mcr_2_mcrr): Likewise.
6971 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
6972 (cortex_a9_fps): Likewise.
6973 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
6974 change.
6975 (cortex_m4_fmuls): Likewise.
6976 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
6977 change.
6978 (cortex_r4_mrc): Likewise.
6979 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 6980 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 6981 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
6982 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
6983 attribute change.
003bb7f3
JG
6984 (pj4_core_to_vfp): Likewise.
6985 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
6986 attribute change.
6987 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
6988 (vfp_fstore): Likewise.
6989 * doc/md.texi: Change references to neon_type to refer to type.
6990
fbe0dc78
DS
69912013-09-04 Dodji Seketeli <dodji@redhat.com>
6992
6993 * tree.h (DECL_BUILT_IN): Fix typo in comment.
6994
c167bc5b
DE
69952013-09-04 David Edelsohn <dje.gcc@gmail.com>
6996
6997 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
6998 lglobl if not weak.
6999
035cb59f
ER
70002013-09-04 Easwaran Raman <eraman@google.com>
7001
7002 PR middle-end/57370
7003 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7004 (build_and_add_sum): Use it.
7005 (appears_later_in_bb): Simplify code.
7006
71191083
TJ
70072013-09-04 Teresa Johnson <tejohnson@google.com>
7008
7009 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7010
0c488213
JG
70112013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7012
7013 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7014
61a74079
JH
70152013-09-04 Jan Hubicka <jh@suse.cz>
7016
7017 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7018 * ipa-devirt.c: Include diganostic.h
7019 (odr_type_d): Add types and types_set.
7020 (hash_type_name): Work for types with vtables during LTO.
7021 (odr_hasher::remove): Fix comment; destroy types_set.
7022 (add_type_duplicate): New function,
7023 (get_odr_type): Use it.
7024 (dump_type_inheritance_graph): Dump type duplicates.
7025 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7026 graph.
7027 * tree.c (types_same_for_odr): Give exact answers on types with
7028 virtual tables.
7029
24ba8195
DS
70302013-09-04 Dodji Seketeli <dodji@redhat.com>
7031
7032 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7033 explaining their differences.
24ba8195 7034
0a04869e
SKS
70352013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7036
7037 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7038
3b18bc42
JL
70392013-09-03 Jeff Law <law@redhat.com>
7040
7041 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7042 when not threading through a joiner block. Pass joiner/no joiner
7043 state to register_jump_thread.
7044 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7045 state from argument rather than implying on path length.
7046 Dump the entire jump thread path into debugging dump.
7047 * tree-flow.h (register_jump_thread): Update prototype.
7048
ae84e151
XDL
70492013-08-29 Xinliang David Li <davidxl@google.com>
7050
7051 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7052 Remove a trivial gcc_assert.
7053
c716e67f
XDL
70542013-08-29 Xinliang David Li <davidxl@google.com>
7055
7056 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7057 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7058 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7059 Delay base decl alignment adjustment.
7060 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7061 * tree-vectorizer.h: New data structure.
7062 (set_dr_misalignment): New function.
7063 (dr_misalignment): Ditto.
7064 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7065 (vectorizable_load): Ditto.
7066 (ensure_base_align): New function.
7067 (vectorize_loops): Add dbg_cnt support.
7068 (execute_vect_slp): Ditto.
7069 * dbgcnt.def: New debug counter.
7070 * Makefile: New dependency.
7071
db8800bc
MI
70722013-09-03 Meador Inge <meadori@codesourcery.com>
7073
7074 Revert:
7075
7076 2013-08-30 Meador Inge <meadori@codesourcery.com>
7077
7078 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7079
0d9b4f5c
DE
70802013-09-03 David Edelsohn <dje.gcc@gmail.com>
7081
7082 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7083 function descriptor.
7084
29e810b9
RB
70852013-09-03 Richard Biener <rguenther@suse.de>
7086
7087 * tree-affine.c (add_elt_to_tree): Fix association issue,
7088 avoid useless converts and make sure to always return a
7089 properly typed result.
7090
dbfc2894
RB
70912013-09-03 Richard Biener <rguenther@suse.de>
7092
7093 PR middle-end/57656
7094 * fold-const.c (negate_expr_p): Fix division case.
7095 (negate_expr): Likewise.
7096
fa3bf4ce
RB
70972013-09-03 Richard Biener <rguenther@suse.de>
7098
7099 PR lto/58285
7100 * tree-streamer-out.c: Include tm.h.
7101 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7102
a64bbb3f
JH
71032013-09-03 Jan Hubicka <jh@suse.cz>
7104
7105 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7106
93ed07e2
AM
71072013-09-03 Alan Modra <amodra@gmail.com>
7108
7109 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7110 multilibs to big-endian target and vice versa.
7111 * config/rs6000/t-linux64: Use := assignment on all vars.
7112 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7113 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7114 * config/rs6000/t-linux64le: New file.
7115 * config/rs6000/t-linux64bele: New file.
7116 * config/rs6000/t-linux64lebe: New file.
7117
07d6cd64
JH
71182013-09-02 Jan Hubicka <jh@suse.cz>
7119
7120 * ipa-inline-transform.c (inline_transform): Do not
7121 optimize_inline_calls when not optimizing.
7122
8e4c9a10
JH
71232013-09-02 Jan Hubicka <jh@suse.cz>
7124
7125 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7126 duplicated nodes for assembler names.
7127 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7128 hard registers from assembler name hash.
7129
c91061e6
JH
71302013-09-02 Jan Hubicka <jh@suse.cz>
7131
7132 * ipa-split.c (execute_split_functions): Split externally visible
7133 functions called once.
7134
2fd0985c
MJ
71352013-09-02 Martin Jambor <mjambor@suse.cz>
7136
7137 PR ipa/58106
7138 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7139 linked list. When finding the correct duplicate, also consider also
7140 the caller in additon to its inlined_to node.
7141
91bd4114
JG
71422013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7143
7144 * config/aarch64/aarch64-simd-builtins.def
7145 (dup_lane_scalar): Remove.
7146 * config/aarch64/aarch64-simd.md
7147 (aarch64_simd_dup): Add 'w->w' alternative.
7148 (aarch64_dup_lane<mode>): Allow for VALL.
7149 (aarch64_dup_lane_scalar<mode>): Remove.
7150 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7151 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7152 (aarch64_get_lane_unsigned<mode>): Likewise.
7153 (aarch64_get_lane<mode>): Likewise.
7154 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7155 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7156 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7157 (VCON): Change container of V2SF.
7158 (vswap_width_name): Likewise.
7159 * config/aarch64/arm_neon.h
7160 (__aarch64_vdup_lane_any): New.
7161 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7162 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7163 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7164
d617d2d8
EB
71652013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7166
7167 PR middle-end/56382
7168 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7169 the source or the destination is a single hard register.
7170
63fdb7be
RB
71712013-09-02 Richard Biener <rguenther@suse.de>
7172
7173 PR middle-end/57511
7174 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7175 non-linear SCEVs.
7176
78de2333
RB
71772013-09-02 Richard Biener <rguenther@suse.de>
7178
7179 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7180 arithmetic to sizetype.
7181
85ff4ec6
BC
71822013-09-02 Bin Cheng <bin.cheng@arm.com>
7183
7184 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7185 Find auto-increment use both before and after candidate.
7186
576016fe
MP
71872013-09-02 Marek Polacek <polacek@redhat.com>
7188
7189 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7190
08f835dc
JH
71912013-09-01 Jan Hubicka <jh@suse.cz>
7192
7193 * Makefile.in: Add ipa-profile.o
7194 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7195 * cgraph.c (struct cgraph_propagate_frequency_data,
7196 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7197 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7198 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7199 * ipa-inline-analysis.c: Include ipa-utils.h;
7200 drop duplicated cfgloop.h.
08f835dc
JH
7201 (inline_update_callee_summaries): Update.
7202 * ipa-profile.c: New file.
7203 * ipa-utils.h (ipa_propagate_frequency): Declare.
7204 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7205 data-streamer.h, value-prof.h.
08f835dc
JH
7206 (symtab_remove_unreachable_nodes): Update profile.
7207 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7208 account_time_size, cmp_counts, dump_histogram,
7209 ipa_profile_generate_summary, ipa_profile_write_summary,
7210 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7211 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7212 Move to ipa-profile.c.
08f835dc 7213
cec8583c
JDA
72142013-09-01 John David Anglin <danglin@gcc.gnu.org>
7215
7216 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7217
bbc9396b
JH
72182013-09-01 Jan Hubicka <jh@suse.cz>
7219
7220 * common.opt (fdevirtualize-speculatively): New function.
7221 * invoke.texi (fdevirtualize-speculatively): Document.
7222 * ipa-devirt.c: Include ipa-inline.h
7223 (likely_target_p): New function.
7224 (ipa_devirt): New function.
7225 (gate_ipa_devirt): New function.
7226 (pass_data_ipa_devirt): New static var.
7227 (pass_ipa_devirt): Likewise.
7228 (make_pass_ipa_devirt): New function.
7229 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7230 (common_handle_option): Disable devirtualization when
7231 value range profiling is available.
7232 * passes.def (pass_ipa_devirt): Add.
7233 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7234 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7235
0cea211e
IS
72362013-09-01 Iain Sandoe <iain@codesourcery.com>
7237
7238 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7239 include sanitize(undefined).
7240
5e351e96
DN
72412013-08-31 Diego Novillo <dnovillo@google.com>
7242
7243 * Makefile.in (TREE_CORE_H): Define.
7244 (TREE_H): Use.
7245 (GTFILES): Add tree-core.h.
7246 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7247 size the array.
7248 * tree-core.h: New file.
7249 Move all data structures, enum, typedefs, global
7250 declarations and constants from ...
7251 * tree.h: ... here.
7252
63bf9a90
JH
72532013-08-31 Jan Hubicka <jh@suse.cz>
7254
7255 * bulitins.c (expand_builtin): Do not early exit for gcov
7256 instrumented functions.
7257
5c0abd6a
MP
72582013-08-31 Marek Polacek <polacek@redhat.com>
7259
7260 * ubsan.c: Include tm_p.h.
7261
4843f032
JH
72622013-08-31 Jan Hubicka <jh@suse.cz>
7263
8356c89c
JH
7264 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7265 warning.
7266
4843f032
JH
7267 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7268 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7269 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7270 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7271 (ipa_merge_profiles): New function.
7272 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7273 (lto_input_function_body): Likewise.
5e581212
JH
7274 * ipa-utils.h (ipa_merge_profiles): Declare.
7275 * lto-streamer.h (lto_input_function_body): Update prototype.
7276 (emit_label_in_global_context_p): Remove.
7277 * lto-symtab.c: Include ipa-utils.h
7278 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7279
57292ce9
JH
72802013-08-31 Jan Hubicka <jh@suse.cz>
7281
7282 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7283
b9cbfeeb
JH
72842013-08-31 Jan Hubicka <jh@suse.cz>
7285
7286 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7287
41dedebd
UB
72882013-08-31 Uros Bizjak <ubizjak@gmail.com>
7289
7290 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7291 "cmp" RTX before signed_comparison_operator check to account
7292 for "code" changes.
7293
06d65050
JH
72942013-08-30 Jan Hubicka <jh@suse.cz>
7295
41dedebd 7296 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7297 (detect_type_change_1): Rename to ...
7298 (detect_type_change): ... this one; early return on non-polymorphic
7299 types.
41dedebd 7300 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7301 use of detect_type_change.
7302 (compute_complex_assign_jump_func): Add param_type parameter;
7303 update use of detect_type_change_ssa.
7304 (compute_complex_ancestor_jump_func): Likewise.
7305 (ipa_get_callee_param_type): New function.
7306 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7307 update calls to the jump function computation functions.
7308
600b5b1d
TJ
73092013-08-30 Teresa Johnson <tejohnson@google.com>
7310 Steven Bosscher <steven@gcc.gnu.org>
7311
7312 * cfgrtl.c (fixup_new_cold_bb): New routine.
7313 (commit_edge_insertions): Invoke fixup_partitions.
7314 (find_partition_fixes): New routine.
7315 (fixup_partitions): Ditto.
7316 (verify_hot_cold_block_grouping): Update comments.
7317 (rtl_verify_edges): Invoke find_partition_fixes.
7318 (rtl_verify_bb_pointers): Update comments.
7319 (rtl_verify_bb_layout): Ditto.
7320 * basic-block.h (probably_never_executed_edge_p): Declare.
7321 (fixup_partitions): Ditto.
7322 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7323 * bb-reorder.c (sanitize_hot_paths): New function.
7324 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7325 sanitize_hot_paths.
7326 * predict.c (probably_never_executed_edge_p): New routine.
7327 * cfg.c (check_bb_profile): Add partition insanity warnings.
7328
0a6ea5c9
MI
73292013-08-30 Meador Inge <meadori@codesourcery.com>
7330
7331 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7332
de5a5fa1
MP
73332013-08-30 Marek Polacek <polacek@redhat.com>
7334
7335 * Makefile.in (ubsan.o): Add.
7336 (c-family/c-ubsan.o): Add.
7337 (builtins.o): Add ubsan.h dependency.
7338 * ubsan.h: New file.
7339 * ubsan.c: New file.
7340 * common.opt: Add -fsanitize=undefined option.
7341 (flag_sanitize): Add variable.
7342 (fsanitize=): Add option. Add Driver.
7343 (fsanitize=thread): Remove option.
7344 (fsanitize=address): Likewise.
7345 (static-libubsan): New option.
7346 * doc/invoke.texi: Document the new flag and -static-libubsan.
7347 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7348 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7349 * builtin-attrs.def (ATTR_COLD): Define.
7350 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7351 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7352 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7353 * flag-types.h (sanitize_code): New enum.
7354 * opts.c (common_handle_option): Parse command line arguments
7355 of -fsanitize=. Add -fsanitize=unreachable option.
7356 * varasm.c (get_variable_section): Adjust.
7357 (assemble_noswitch_variable): Likewise.
7358 (assemble_variable): Likewise.
7359 (output_constant_def_contents): Likewise.
7360 (categorize_decl_for_section): Likewise.
7361 (place_block_symbol): Likewise.
7362 (output_object_block): Likewise.
7363 * builtins.def: Likewise.
7364 * toplev.c (compile_file): Likewise.
7365 (process_options): Likewise.
7366 * cppbuiltin.c: Likewise.
7367 * tsan.c (tsan_pass): Likewise.
7368 (tsan_gate): Likewise.
7369 (tsan_gate_O0): Likewise.
7370 * cfgexpand.c (partition_stack_vars): Likewise.
7371 (expand_stack_vars): Likewise.
7372 (defer_stack_allocation): Likewise.
7373 (expand_used_vars): Likewise.
7374 * cfgcleanup.c (old_insns_match_p): Likewise.
7375 * asan.c (asan_finish_file): Likewise.
7376 (asan_instrument): Likewise.
7377 (gate_asan): Likewise.
7378 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7379 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7380 (asan_global_struct): Use pointer_sized_int_node instead
7381 calling build_nonstandard_integer_type.
7382 (initialize_sanitizer_builtins): Likewise.
7383 (asan_finish_file): Likewise.
7384 * gcc.c: Document %{%:function(args):X}.
7385 (static_spec_functions): Add sanitize.
7386 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7387 store funcval != NULL there.
7388 (do_spec_1): Adjust handle_spec_function caller.
7389 (handle_braces): Allow %:function(args) as condition.
7390 (sanitize_spec_function): New function.
7391 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7392 (LIBUBSAN_SPEC): Likewise.
7393 (LIBUBSAN_EARLY_SPEC): Likewise.
7394 (SANITIZER_SPEC): Handle libubsan.
7395 (SANITIZER_EARLY_SPEC): Likewise.
7396 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7397 instead of fsanitize=address.
7398 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7399 instead of fsanitize=address*.
7400 * builtins.c: Include ubsan.h.
7401 (fold_builtin_0): Instrument __builtin_unreachable.
7402 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7403 instead of flag_asan.
7404 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7405 (pointer_sized_int_node): Define.
41dedebd 7406 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7407
f07f30cf
MS
74082013-08-30 Mike Stump <mikestump@comcast.net>
7409
7410 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7411 with RE patterns.
7412
8a41354f
JH
74132013-08-29 Jan Hubicka <jh@suse.cz>
7414
7415 * cgraph.c (cgraph_function_body_availability): Handle weakref
7416 correctly.
7417 * passes.def: Remove pass_fixup_cfg.
7418 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7419 track when we need to remove functions.
7420 (gate_ipa_inline): Execute inlining always; add comment why.
7421 (pass_data_ipa_inline): Remove TODO_remove_functions.
7422 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7423 do not produce summaries.
7424 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7425 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7426 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7427 constant pool and vtable.
7428
dc8d7a0f
TB
74292013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7430
41dedebd
UB
7431 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7432 New arm_neon.h's internal macros to specify 64-bit constants.
7433 Avoid using stdint.h's macros.
dc8d7a0f 7434
ac7eacd2
JR
74352013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7436
7437 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7438 before applying REG_P.
7439
8b29fd4e
JJ
74402013-08-30 Jakub Jelinek <jakub@redhat.com>
7441
7442 PR tree-optimization/58277
7443 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7444 after seeing too many stmts with vdef in between dombb and current
7445 bb, invalidate everything.
7446
26d75703
RB
74472013-08-30 Richard Biener <rguenther@suse.de>
7448
7449 * fold-const.c (fold_single_bit_test): Fix overflow test.
7450
f7e088e7
EB
74512013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7452
7453 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7454 and which can live in a register, always retrieve the value on entry.
7455 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7456 passed by invisible reference specially.
7457 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7458 (vt_add_function_parameter): Correctly deal with a parameter passed by
7459 invisible reference.
7460
74612013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7462
7463 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7464
6e8dad05
RB
74652013-08-30 Richard Biener <rguenther@suse.de>
7466
7467 PR tree-optimization/58228
7468 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7469 allow invariant loads in nested loop vectorization.
7470
062ef2c8
RB
74712013-08-30 Richard Biener <rguenther@suse.de>
7472
7473 PR tree-optimization/58223
7474 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7475 (has_anti_or_output_dependence): ... this and adjust to also
7476 look for output dependences.
7477 (mark_nodes_having_upstream_mem_writes): Adjust.
7478 (rdg_flag_uses): Likewise.
7479
7a764c60
RB
74802013-08-30 Richard Biener <rguenther@suse.de>
7481
7482 PR tree-optimization/58010
7483 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7484 assert that we have a loop-closed PHI.
7485
82e9d642
JH
74862013-08-29 Jan Hubicka <jh@suse.cz>
7487
7488 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7489 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7490 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7491 (lto_free_function_in_decl_state_for_node): New function.
7492
9cc1fb4b
XDL
74932013-08-29 Xinliang David Li <davidxl@google.com>
7494
41dedebd 7495 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7496 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7497 Emit alignment peeling message with default -fopt-info.
7498 (vect_loop_versioning): Emit loop version info message.
41dedebd 7499 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7500 (execute_vect_slp): Ditto.
7501
440a5082
EB
75022013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7503
7504 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7505 of the clone from the DECL_NAME of the original function.
7506
3fa3690d
OE
75072013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7508
7509 * passes.c (register_pass): Add overload.
7510 * tree-pass.h (register_pass): Forward declare it. Add comment.
7511
0170f33c
JH
75122013-08-29 Jan Hubicka <jh@suse.cz>
7513
41dedebd
UB
7514 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7515 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7516 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7517 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7518 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7519 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7520 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7521 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7522
103ff0d6
TJ
75232013-08-29 Teresa Johnson <tejohnson@google.com>
7524
7525 * dumpfile.c (dump_loc): Output column number.
7526 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7527 * doc/invoke.texi: Document optall -fopt-info flag.
7528 * profile.c (read_profile_edge_counts): Use new dump framework.
7529 (compute_branch_probabilities): Ditto.
7530 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7531 when pass not in any opt group.
7532 * pass_manager.h (pass_manager::get_pass_profile): New method.
7533 * value-prof.c (check_counter): Use new dump framework.
7534 (check_ic_target): Ditto.
7535 * coverage.c (get_coverage_counts): Ditto.
7536 (coverage_init): Setup new dump framework.
7537
301bbc16
RB
75382013-08-29 Richard Biener <rguenther@suse.de>
7539
7540 PR tree-optimization/58246
7541 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7542 handle the dominance check inside a basic-block.
7543
1b275000
RB
75442013-08-29 Richard Biener <rguenther@suse.de>
7545
7546 PR middle-end/57287
7547 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7548 of default defs that appear in abnormal PHI nodes.
7549
6b1184ba
RB
75502013-08-29 Richard Biener <rguenther@suse.de>
7551
7552 PR tree-optimization/57685
7553 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7554 single-use operands to avoid exponential complexity.
7555
1b08b734
DC
75562013-08-28 Dehao Chen <dehao@google.com>
7557
7558 * ipa-inline.c (edge_badness): Fix integer underflow.
7559
48a3fa69
UB
75602013-08-28 Uros Bizjak <ubizjak@gmail.com>
7561
7562 * gtm-builtins.def (_ITM_free): Declare leaf.
7563
215f73e6
JJ
75642013-08-28 Jakub Jelinek <jakub@redhat.com>
7565
7566 PR target/58067
7567 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7568 (*tls_local_dynamic_base_64_largepic): Likewise.
7569 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7570 Remove predicate from call operand.
7571 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7572 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7573
34554d1a
JL
75742013-08-28 Jeff Law <law@redhat.com>
7575
7576 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7577 checks for the number of predecessors and successors allowed.
7578 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7579 which require copying a joiner block if there is a request which
7580 is a subpath that requires no joiner block copying.
7581
c01c111b
JH
75822013-08-28 Jan Hubicka <jh@suse.cz>
7583
7584 * lto-streamer-out.c (DFS_write_tree_body): Drop
7585 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7586 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7587 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7588 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7589 Do not read DECL_ERROR_ISSUED.
7590 (unpack_ts_decl_with_vis_value_fields): Do not read
7591 DECL_DEFER_OUTPUT.
48a3fa69
UB
7592 (lto_input_ts_binfo_tree_pointers): Do not read
7593 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7594 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7595 write DECL_ERROR_ISSUED..
7596 (pack_ts_decl_with_vis_value_fields): Do not write
7597 DECL_DEFER_OUTPUT.
7598 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7599 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7600 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7601 * tree.h (tree_decl_common): Update comment.
7602 (DECL_ERROR_ISSUED): Remove.
7603
4b128ece
JJ
76042013-08-28 Jakub Jelinek <jakub@redhat.com>
7605
7606 PR middle-end/58257
7607 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7608
12211b99 76092013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7610
7611 * builtins.def (free): Declare leaf.
7612
8dce4dbc
DM
76132013-08-27 David Malcolm <dmalcolm@redhat.com>
7614
7615 * gdbhooks.py: New.
7616 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7617 * configure: Regenerate.
7618
b8f6e610
MJ
76192013-08-27 Martin Jambor <mjambor@suse.cz>
7620
7621 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7622 (ipa_ancestor_jf_data): Likewise.
7623 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7624 (ipa_get_jf_pass_through_type_preserved): New function.
7625 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7626 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7627 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
7628 (ipa_get_jf_ancestor_result): Likewise.
7629 (propagate_vals_accross_pass_through): Use
7630 ipa_get_jf_pass_through_result to do all the value mappings.
7631 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7632 type_preserved flag.
7633 (ipa_set_jf_cst_copy): New function.
7634 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7635 (ipa_set_jf_arith_pass_through): Likewise.
7636 (ipa_set_ancestor_jf): Likewise.
7637 (compute_complex_assign_jump_func): Set type_preserved instead of
7638 punting.
7639 (ipa_compute_jump_functions_for_edge): Likewise.
7640 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7641 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 7642 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
7643 (ipa_write_jump_function): Stream the type_preserved flags.
7644 (ipa_read_jump_function): Likewise.
7645
74bf76ed
JJ
76462013-08-27 Jakub Jelinek <jakub@redhat.com>
7647 Aldy Hernandez <aldyh@redhat.com>
7648
7649 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7650 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7651 * function.h (struct function): Add has_force_vect_loops and
7652 has_simduid_loops.
12211b99 7653 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
7654 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7655 handle it.
7656 * gimple.def: Update CLAUSES comments.
7657 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7658 (gimple_build_omp_for): Add argument to prototype.
7659 (gimple_omp_for_kind): New.
7660 (gimple_omp_for_set_kind): New.
7661 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7662 GOVD_DATA_SHARE_CLASS.
7663 (enum omp_region_type): Add ORT_SIMD.
7664 (gimple_add_tmp_var): Handle ORT_SIMD.
7665 (gimplify_var_or_parm_decl): Same.
7666 (is_gimple_stmt): Same.
7667 (omp_firstprivatize_variable): Same.
7668 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7669 (omp_notice_variable): Handle ORT_SIMD.
12211b99 7670 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
7671 (omp_check_private): Handle ORT_SIMD.
7672 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7673 OMP_CLAUSE_SAFELEN.
7674 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7675 Handle OMP_CLAUSE_LASTPRIVATE.
7676 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7677 OMP_CLAUSE_SAFELEN.
7678 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7679 (gimplify_expr): Handle OMP_SIMD.
7680 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7681 (expand_GOMP_SIMD_VF): New.
7682 (expand_GOMP_SIMD_LAST_LANE): New.
7683 * internal-fn.def (GOMP_SIMD_LANE): New.
7684 (GOMP_SIMD_VF): New.
7685 (GOMP_SIMD_LAST_LANE): New.
7686 * omp-low.c: Include target.h.
7687 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7688 OMP_CLAUSE_SAFELEN.
7689 (check_omp_nesting_restrictions): Same.
7690 (omp_max_vf): New.
7691 (lower_rec_simd_input_clauses): New.
7692 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7693 OMP_CLAUSE_LINEAR.
7694 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7695 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7696 (expand_omp_build_assign): New.
7697 (expand_omp_for_init_counts): New.
7698 (expand_omp_for_init_vars): New.
7699 (extract_omp_for_update_vars): New.
7700 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7701 and rewrite accordingly.
7702 (expand_omp_simd): New.
7703 (expand_omp_for): Use expand_omp_simd.
7704 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7705 (lower_omp_for): Do not lower the body.
7706 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
7707 in their own loops.
7708 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
7709 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
7710 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
7711 (gate_tree_if_conversion): Similarly.
7712 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
7713 gimple_build_omp_for.
7714 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
7715 * tree-parloops (create_parallel_loop): Pass kind argument to
7716 gimple_build_omp_for.
7717 * tree-pretty-print.c (dump_omp_clause): Add cases for
7718 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
7719 OMP_CLAUSE__SIMDUID_.
7720 (dump_generic_node): Handle OMP_SIMD.
7721 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
7722 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
7723 unroll OMP_SIMD loops here.
12211b99 7724 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 7725 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 7726 loop->safelen.
74bf76ed
JJ
7727 (vect_analyze_data_refs): Handle simd loops.
7728 * tree-vect-loop.c (vectorizable_live_operation): Handle
7729 IFN_GOMP_SIMD*.
12211b99 7730 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
7731 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
7732 (vectorizable_load): Same.
12211b99 7733 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
7734 (struct simduid_to_vf): New.
7735 (simduid_to_vf::hash): New.
7736 (simduid_to-vf::equal): New.
7737 (struct simd_array_to_simduid): New.
7738 (simd_array_to_simduid::hash): New.
7739 (simd_array_to_simduid::equal): New.
7740 (adjust_simduid_builtins): New.
7741 (struct note_simd_array_uses_struct): New.
7742 (note_simd_array_uses_cb): New.
7743 (note_simd_array_uses): New.
7744 (vectorize_loops): Handle simd hints and adjust simd builtins
7745 accordingly.
7746 * tree-vectorizer.h (struct _stmt_vec_info): Add
7747 simd_lane_access_p field.
7748 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
7749 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
7750 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
7751 (omp_clause_code_name): Same.
7752 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
7753 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
7754 * tree.def (OMP_SIMD): New entry.
12211b99
UB
7755 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
7756 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
7757 (OMP_CLAUSE_DECL): Adjust range for new clauses.
7758 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
7759 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
7760 (OMP_CLAUSE_LINEAR_STEP): New.
7761 (OMP_CLAUSE_SAFELEN_EXPR): New.
7762 (OMP_CLAUSE__SIMDUID__DECL): New.
7763 (find_omp_clause): New prototype.
7764
d0cf4e84
L
77652013-08-27 H.J. Lu <hongjiu.lu@intel.com>
7766
7767 * config/i386/driver-i386.c (host_detect_local_cpu): Update
7768 Haswell processor detection.
7769
992592ec
CW
77702013-08-27 Christian Widmer <shadow@umbrox.de>
7771
7772 PR target/57927
7773 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7774 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
7775 AVX2 capable processors.
7776
9116eb22
TB
77772013-08-27 Tejas Belagod <tejas.belagod@arm.com>
7778
7779 * config/aarch64/arm_neon.h: Replace all inline asm implementations
7780 of vget_low_* with implementations in terms of other intrinsics.
7781
1c5abb53
MG
77822013-08-27 Marc Glisse <marc.glisse@inria.fr>
7783
7784 PR middle-end/57219
7785 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
7786 values to -1, 0 and 1.
7787
2e100703
VP
77882013-08-27 Vidya Praveen <vidyapraveen@arm.com>
7789
7790 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
7791 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
7792 (<optab><mode>3_insn): Remove.
7793 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
7794 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7795 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7796 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
7797 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
7798 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
7799 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
7800 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
7801 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
7802 (ror<mode>3_insn): Likewise.
7803 * config/aarch64/predicates.md (aarch64_simd_register): New.
7804
4ded8276
RB
78052013-08-27 Richard Biener <rguenther@suse.de>
7806
7807 PR tree-optimization/57521
7808 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7809 one edge is non-critical.
7810 (find_phi_replacement_condition): Make sure to use a non-critical
7811 edge. Cleanup and remove old bug workarounds.
7812 (bb_postdominates_preds): Remove.
7813 (if_convertible_loop_p_1): Do not compute post-dominators.
7814 (combine_blocks): Do not free post-dominators.
7815 (main_tree_if_conversion): Likewise.
7816 (pass_data_if_conversion): Add TODO_verify_ssa.
7817
5aa11061
DD
78182013-08-27 DJ Delorie <dj@redhat.com>
7819
7820 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
7821
fd91cfe3
YZ
78222013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
7823
7824 * function.c (assign_parm_find_data_types): Set passed_mode and
7825 nominal_mode to the TYPE_MODE of nominal_type for the built
7826 pointer type in case of the struct-pass-by-reference.
7827
907555ce
JR
78282013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7829
7830 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
7831 (UINT16_TYPE): Change default to "unsigned int".
7832
67518c93
JR
7833 * config/avr/avr.opt (mfract-convert-truncate): New option.
7834 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
7835 is set, round negative fractional integers according to n1169
7836 when converting to integer types.
7837
d6d989fc
JH
78382013-08-26 Jan Hubicka <jh@suse.cz>
7839
7840 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
7841 methods can not be called indirectly when their address is not taken.
7842
2aa3da06
JH
78432013-08-26 Jan Hubicka <jh@suse.cz>
7844
12211b99
UB
7845 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
7846 ctor_for_folding.
2aa3da06 7847
0987ffe7
JH
78482013-08-26 Jan Hubicka <jh@suse.cz>
7849
7850 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
7851 can be unshared.
7852
befe8647
JR
78532013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7854
7855 * reload.c (find_valid_class): Allow classes that do not include
7856 FIRST_PSEUDO_REGISTER - 1.
7857
a21e735e
JH
78582013-08-26 Jan Hubicka <jh@suse.cz>
7859
7860 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
7861 fix edge count/frequency when speculation failed; fix type check
7862 for the direct call.
7863
e067bd43
JH
78642013-08-26 Jan Hubicka <jh@suse.cz>
7865
7866 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
7867
e8aec975
JH
78682013-08-26 Jan Hubicka <jh@suse.cz>
7869
7870 * ipa-inline-transform.c (inline_transform): Be ready for basic block
7871 to be changed by edge redirection.
7872
d0b66480
JH
78732013-08-26 Jan Hubicka <jh@suse.cz>
7874
12211b99
UB
7875 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
7876 formating; add sanity check.
d0b66480
JH
7877 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
7878 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
7879 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
7880 (resolve_noninline_speculation): Update callee keys, too.
7881
0f9aaac7
JH
78822013-08-26 Jan Hubicka <jh@suse.cz>
7883
7884 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
7885 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
7886
4b37444e
JR
78872013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7888
7889 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
7890 into proper place.
7891
5339fc0c
UB
78922013-08-26 Uros Bizjak <ubizjak@gmail.com>
7893
7894 * config/i386/i386.c (ix86_debug_options): Remove prototype.
7895 (x86_64_elf_select_section): Ditto.
7896 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
7897 arguments.
7898 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
7899 (output_set_got): Ditto.
7900 (ix86_unary_operator_ok): Ditto.
7901 (ix86_expand_builtin): Ditto.
7902
d5c3d3ef
JH
79032013-08-23 Jan Hubicka <jh@suse.cz>
7904
5339fc0c 7905 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 7906
5b1e7435
JH
79072013-08-23 Jan Hubicka <jh@suse.cz>
7908
7909 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
7910 (tree_decl_with_vis): Add FINAL field.
7911
ead69dac
JL
79122013-08-23 Jeff Law <law@redhat.com>
7913
7914 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
7915 the debugging dump when the expression is fully redundant.
7916
025311c4
GDR
79172013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7918
7919 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
7920 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
7921 * pretty-print.c (pp_formatted_text_data): Likewise.
7922 (pp_write_text_to_stream): Likewise.
7923 (pp_write_text_as_dot_label_to_stream): Likewise.
7924 (pp_append_r): Likewise.
7925 (pp_format): Likewise.
7926 (pp_flush): Likewise.
7927 (pp_clear_output_area): Likewise.
7928 (pp_append_text): Likewise.
7929 (pp_formatted_text): Likewise.
7930 (pp_remaining_character_count_for_line): Likewise.
7931 (pp_newline): Likewise.
7932 (pp_character): Likewise.
7933 (output_buffer::~output_buffer): Define.
7934 (pretty_printer::~pretty_printer): Destruct output buffer.
7935 * pretty-print.h (output_buffer::~output_buffer): Declare.
7936 (pretty_printer::~pretty_printer): Declare virtual.
7937
0cadbfaa
MG
79382013-08-24 Marc Glisse <marc.glisse@inria.fr>
7939
7940 PR other/57324
7941 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
7942 HOST_WIDE_INT_M1U): New macros.
7943 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
7944 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
7945 unsigned -1 for lshift.
7946 * cse.c (cse_insn): Likewise.
7947 * double-int.c (rshift_double, lshift_double): Likewise.
7948 * builtins.c (fold_builtin_bitop): Likewise.
7949 * combine.c (force_to_mode): Likewise.
7950 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
7951 * simplify-rtx.c (simplify_const_unary_operation,
7952 simplify_const_binary_operation): Likewise.
7953 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
7954 check_va_list_escapes): Likewise.
7955 * rtlanal.c (nonzero_bits1): Likewise.
7956 * expmed.c (expand_smod_pow2): Likewise.
7957 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
7958
009e5353
JH
79592013-08-23 Jan Hubicka <jh@suse.cz>
7960
7961 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
7962 as having address taken.
7963
c4be6568
JH
79642013-08-23 Jan Hubicka <jh@suse.cz>
7965
64cbf23d
JH
7966 * ipa-utils.h (method_class_type): Declare.
7967 * ipa-devirt.c (method_class_type): Export.
7968
c4be6568
JH
7969 * cgraphunit.c (analyze_functions): Do basic devirtualization;
7970 do not walk base classes of anonymous types.
7971
97aba8e9
KK
79722013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
7973
7974 PR rtl-optimization/58220
7975 PR regression/58221
7976 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
7977 handle SEQUENCE insns properly.
7978
0fc80001
GDR
79792013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7980
7981 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
7982 definition.
7983 (pp_newline_and_indent): Likewise.
7984 (pp_separate_with): Likewise.
7985 * pretty-print.c (pp_newline_and_flush): Define.
7986 (pp_newline_and_indent): Likewise.
7987 (pp_separate_with): Likewise.
7988
520a5868
JJ
79892013-08-23 Jakub Jelinek <jakub@redhat.com>
7990
7991 PR target/58218
7992 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
7993 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
7994
e500c62a
KY
79952013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
7996
f43245d1
UB
7997 * config/i386/predicates.md (ext_sse_reg_operand): New.
7998 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
7999 predicate to determine if EVEX is needed.
8000 (*movsi_internal): Ditto.
8001 (*movdf_internal): Ditto.
8002 (*movsf_internal): Ditto.
f43245d1 8003 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8004
6b00d7dd
JJ
80052013-08-23 Jakub Jelinek <jakub@redhat.com>
8006
8007 PR tree-optimization/58209
8008 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8009 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8010 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8011 emit POINTER_PLUS_EXPR.
8012 (create_tailcall_accumulator): For pointer result type accumulate in
8013 sizetype type.
8014
4f2a9f90
PC
80152013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8016
8017 * configure.ac: Add backslashes missing from the last change.
8018 * configure: Regenerate.
8019
7bf4274e
JH
80202013-08-22 Jan Hubicka <jh@susue.cz>
8021
4f2a9f90
PC
8022 * ipa.c (function_and_variable_visibility): First remember function
8023 was global and then make it local.
7bf4274e 8024
1bea243d
JB
80252013-08-22 Julian Brown <julian@codesourcery.com>
8026
8027 * configure.ac: Add aarch64 to list of arches which use "nop" in
8028 debug_line test.
8029 * configure: Regenerate.
8030
bcba7ecc
AK
80312013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8032
8033 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8034 gnu_libc_has_function.
8035 * config/s390/tpf.h: Likewise.
8036
4c495b0d
JH
80372013-08-22 Jan Hubicka <jh@susue.cz>
8038
8039 * timevar.c (validate_phases): Add cast.
8040
5e302bca
JH
80412013-08-22 Jan Hubicka <jh@susue.cz>
8042
8043 * timevar.c (validate_phases): Use size_t for memory.
8044 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8045
da6ca2b5
GDR
80462013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8047
8048 * pretty-print.h (output_buffer::output_buffer): Declare.
8049 (pretty_printer::pretty_printer): Likewise.
8050 (pp_construct): Remove.
8051 * pretty-print.c (output_buffer::output_buffer): Define.
8052 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8053 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8054 (print_gimple_expr): Likewise.
8055 (print_gimple_seq): Likewise.
8056 (gimple_dump_bb): Likewise.
8057 * sched-vis.c (dump_value_slim): Likewise.
8058 (dump_insn_slim): Likewise.
8059 (dump_rtl_slim): Likewise.
8060 (str_pattern_slim): Likewise.
8061 * tree-mudflap.c (mf_varname_tree): Likewise.
8062 * graph.c (print_graph_cfg): Likewise.
8063 (start_graph_dump): Likewise.
8064 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8065 placement-new.
8066 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8067 pretty printer initialization.
8068 * coretypes.h (diagnostic_context): Remove superflous type alias
8069 declaration.
8070 (pretty_printer): Likewise. Declare directly as a class.
8071 (pretty_print_info): Remove declaration as class.
8072 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8073 and pp_clear_output_area.
8074 (asan_add_global): Likewise.
8075
0e1474e5
JH
80762013-08-22 Jan Hubicka <jh@suse.cz>
8077
8078 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8079 * ipa-utils.h (update_type_inheritance_graph): Declare.
8080 (possible_polymorphic_call_target_p): Declare.
8081 (possible_polymorphic_call_target_p): New.
8082 * ipa-devirt.c: Update toplevel comments.
8083 (cached_polymorphic_call_targets): Move up.
8084 (odr_type_d): Move ID down.
8085 (polymorphic_type_binfo_p): Update comment.
8086 (odr_hasher::remove): Likewise;
8087 (get_odr_type): Set anonymous_namespace.
8088 (dump_odr_type): Dump it.
8089 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8090 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8091 (record_binfo): Add comment.
5339fc0c
UB
8092 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8093 built.
0e1474e5
JH
8094 (devirt_node_removal_hook): Do not iCE when cache is freed.
8095 (possible_polymorphic_call_target_p): New predicate.
8096 (update_type_inheritance_graph): New function.
8097
3f97cb0b
AI
80982013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8099 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8100 Sergey Lega <sergey.s.lega@intel.com>
8101 Anna Tikhonova <anna.tikhonova@intel.com>
8102 Ilya Tocar <ilya.tocar@intel.com>
8103 Andrey Turetskiy <andrey.turetskiy@intel.com>
8104 Ilya Verbin <ilya.verbin@intel.com>
8105 Kirill Yukhin <kirill.yukhin@intel.com>
8106 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8107
8108 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8109 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8110 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8111 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8112 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8113 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8114 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8115 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8116 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8117 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8118 OPT_mavx512pf, OPT_mavx512er cases.
8119 * config/i386/constraints.md (v): New constraint.
8120 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8121 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8122 (bit_AVX512CD): New.
8123 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8124 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8125 * config/i386/i386-c.c (ix86_target_macros_internal):
8126 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8127 __AVX512PF__.
8128 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8129 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8130 * config/i386/i386.c (regclass_map, dbx_register_map)
8131 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8132 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8133 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8134 -mavx512pf options.
8135 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8136 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8137 -mavx512pf options. Fix formatting.
8138 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8139 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8140 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8141 -mavx512cd, -mavx512pf options.
8142 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8143 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8144 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8145 ALL_SSE_REGS.
8146 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8147 (ix86_set_reg_reg_cost): Ditto.
8148 (x86_order_regs_for_local_alloc): Ditto.
8149 (MAX_VECT_LEN): Extend to 64-byte.
8150 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8151 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8152 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8153 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8154 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8155 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8156 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8157 (SSE_REG_MODE_P): Support new modes.
8158 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8159 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8160 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8161 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8162 (REG_CLASS_CONTENTS): Add new registers.
8163 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8164 (EXT_REX_SSE_REGNO_P): New.
8165 (HI_REGISTER_NAMES): Add new registers.
8166 * config/i386/i386.md: Define constants for new registers.
8167 (mode): Add new 512-bit modes.
8168 (prefix): Support evex prefix.
8169 (isa): Support avx512f, noavx512f, fma_avx512f.
8170 (ssemodesuffix): Add new 512-bit modes.
8171 (movxi): New.
8172 (*movxi_internal_avx512f): Ditto.
8173 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8174 Support MODE_XI.
8175 (*movsi_internal): Likewise.
8176 (*movdf_internal): Likewise.
8177 (*movsf_internal): Likewise.
8178 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8179 (<code><mode>3): Likewise.
5339fc0c
UB
8180 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8181 New.
3f97cb0b
AI
8182 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8183 with the new constraint "v".
8184 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8185 modes.
8186 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8187 with the new constraint "v".
8188 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8189 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8190 (*<plusminus_insn><mode>3): Likewise.
8191 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8192 (*mul<mode>3): Likewise.
8193 (<sse>_vmmul<mode>3): Likewise.
8194 (<sse>_div<mode>3): Likewise.
8195 (<sse>_vmdiv<mode>3): Likewise.
8196 (<sse>_sqrt<mode>2): Likewise.
8197 (<sse>_vmsqrt<mode>2): Likewise.
8198 (*<code><mode>3_finite): Likewise.
8199 (*<code><mode>3) <smaxmin>: Likewise.
8200 (<sse>_vm<code><mode>3): Likewise.
8201 (*<code><mode>3) <any_logic>: Likewise.
8202 (*fma_fmadd_<mode>): Likewise.
8203 (*fma_fmsub_<mode>): Likewise.
8204 (*fma_fnmadd_<mode>): Likewise.
8205 (*fma_fnmsub_<mode>): Likewise.
8206 (*fma_fmaddsub_<mode>): Likewise.
8207 (*fma_fmsubadd_<mode>): Likewise.
8208 (*fmai_fmadd_<mode>): Likewise.
8209 (*fmai_fmsub_<mode>): Likewise.
8210 (*fmai_fnmadd_<mode>): Likewise.
8211 (*fmai_fnmsub_<mode>): Likewise.
8212 (sse_cvtsi2ss): Likewise.
8213 (sse_cvtsi2ssq): Likewise.
8214 (sse_cvtss2si): Likewise.
8215 (sse_cvtss2si_2): Likewise.
8216 (sse_cvtss2siq): Likewise.
8217 (sse_cvtss2siq_2): Likewise.
8218 (sse_cvttss2si): Likewise.
8219 (sse_cvtss2siq_2): Likewise.
8220 (float<sseintvecmodelower><mode>2): Likewise.
8221 (sse2_cvtsd2si_2): Likewise.
8222 (sse2_cvtsd2siq_2): Likewise.
8223 (*<plusminus_insn><mode>3): Likewise.
8224 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8225 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8226 (ashr<mode>3): Likewise.
8227 (<shift_insn><mode>3): Likewise.
8228 (avx2_<code><mode>3): Likewise.
8229 (*avx2_<code><mode>3): Likewise.
8230 (*andnot<mode>3): Likewise.
8231 (*<code><mode>3) <any_logic>: Likewise.
8232 (abs<mode>2): Likewise.
8233 (avx2_permvar<mode>): Likewise.
8234 (avx2_perm<mode>_1): Likewise.
8235 (*avx_vpermilp<mode>): Likewise.
8236 (avx_vpermilvar<mode>3): Likewise.
8237 (avx2_ashrv<mode>): Likewise.
8238 (avx2_<shift_insn>v<mode>): Likewise.
8239 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8240 -mavx512cd.
8241 * doc/rtl.texi: Document XImode.
8242
dd5e8423
JL
82432013-08-21 Jeff Law <law@redhat.com>
8244
b9ebee5d
JL
8245 * tree-flow.h (register_jump_thread): Pass vector of edges
8246 instead of each important edge.
8247 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8248 thread path into a vector and pass that to register_jump_thread.
8249 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8250 passed in edge vector to the current 3-edge form.
8251
dd5e8423
JL
8252 Revert:
8253 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8254
9bb6628e 8255 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8256 delete_unmarked_insns removed anything.
8257
445dc8df
JR
82582013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8259
8260 * reload.h (struct reg_equivs): Rename to ..
8261 (struct reg_equivs_s): .. this.
8262
e0df53dd
ML
82632013-08-20 Martin Liska <marxin.liska@gmail.com>
8264
8265 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8266
e7d1d3eb
RO
82672013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8268
5339fc0c 8269 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8270
5562e26e
JL
82712013-08-21 Jeff Law <law@redhat.com>
8272
8273 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8274 simplify assignments too. If the RHS collapses to a singleton
8275 range, then return the value for the range.
8276
c7ecdec6
KY
82772013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8278
7a5911d3
UB
8279 * config/i386/sse.md (V16): Rename to...
8280 (VMOVE): this.
8281 (mov<mode>): Update iterator name.
8282 (*mov<mode>_internal): Ditto.
8283 (push<mode>1): Ditto.
8284 (movmisalign<mode>): Ditto.
c7ecdec6 8285
bfa3b50a
JH
82862013-08-20 Jan Hubicka <jh@suse.cz>
8287
8288 PR bootstrap/58186
8289 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8290 entry for direct edges.
8291 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8292
6cd4d135
DM
82932013-08-20 David Malcolm <dmalcolm@redhat.com>
8294
8295 Revert my last two changes, r201865 and r201864:
8296
8297 Revert r201865:
8298 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8299
8300 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8301 instances can own GC refs.
8302
8303 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8304 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8305 (gcc::context::gt_pch_nx): Likewise.
8306 (gcc::context::gt_pch_nx): Likewise.
8307 * ggc.h (gt_ggc_mx <T>): New.
8308 (gt_pch_nx_with_op <T>): New.
8309 (gt_pch_nx <T>): New.
8310 * passes.c (opt_pass::gt_ggc_mx): New.
8311 (opt_pass::gt_pch_nx): New.
8312 (opt_pass::gt_pch_nx_with_op): New.
8313 (pass_manager::gt_ggc_mx): New.
8314 (pass_manager::gt_pch_nx): New.
8315 (pass_manager::gt_pch_nx_with_op): New.
8316 (pass_manager::operator new): Use
8317 ggc_internal_cleared_alloc_stat rather than xcalloc.
8318 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8319 (pass_manager::gt_ggc_mx): New.
8320 (pass_manager::gt_pch_nx): New.
8321 (pass_manager::gt_pch_nx_with_op): New.
8322 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8323 (opt_pass::operator new): New.
8324 (opt_pass::gt_ggc_mx): New.
8325 (opt_pass::gt_pch_nx): New.
8326 (opt_pass::gt_pch_nx_with_op): New.
8327
8328 Revert r201864:
8329 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8330
8331 * Makefile.in (GTFILES): Add context.h.
8332 * context.c (gcc::context::operator new): New.
8333 (gcc::context::gt_ggc_mx): New.
8334 (gcc::context::gt_pch_nx): New.
8335 (gcc::context::gt_pch_nx): New.
8336 * context.h (gcc::context): Add GTY((user)) marking.
8337 (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 (g): Add GTY marking.
8342 (gt_ggc_mx (gcc::context *)): New.
8343 (gt_pch_nx (gcc::context *)): New.
8344 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8345 void *cookie)): New.
8346 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8347
a046136a
AM
83482013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8349
8350 * dce.c (fini_dce): Call df_analyze again just in case
8351 delete_unmarked_insns removed anything.
8352
67598720
TJ
83532013-08-20 Teresa Johnson <tejohnson@google.com>
8354
8355 PR rtl-optimizations/57451
8356 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8357 from crossing split section boundaries.
8358
f8693faf
MGD
83592013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8360
8361 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8362 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8363 with MULTLIB_DEFAULTS.
8364
7d0b9a9c
NC
83652013-08-20 Nick Clifton <nickc@redhat.com>
8366
8367 * target.def (narrow_volatile_bitfield): Note that the default
8368 value is false, not !TARGET_STRICT_ALIGN.
8369 * doc/tm.texi: Regenerate.
8370
8edb8dc8
PC
83712013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8372
8373 Fix LIB_SPEC for systems without libpthread.
8374
8375 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8376 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8377 for Android.
8378 * config/i386/linux-common.h: Likewise.
8379 * config/mips/linux-common.h: Likewise.
8380
12211b99 83812013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8382
8383 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8384 checks.
8385
e42c64cb
DM
83862013-08-20 David Malcolm <dmalcolm@redhat.com>
8387
8388 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8389 instances can own GC refs.
8390
8391 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8392 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8393 (gcc::context::gt_pch_nx): Likewise.
8394 (gcc::context::gt_pch_nx): Likewise.
8395 * ggc.h (gt_ggc_mx <T>): New.
8396 (gt_pch_nx_with_op <T>): New.
8397 (gt_pch_nx <T>): New.
8398 * passes.c (opt_pass::gt_ggc_mx): New.
8399 (opt_pass::gt_pch_nx): New.
8400 (opt_pass::gt_pch_nx_with_op): New.
8401 (pass_manager::gt_ggc_mx): New.
8402 (pass_manager::gt_pch_nx): New.
8403 (pass_manager::gt_pch_nx_with_op): New.
8404 (pass_manager::operator new): Use
8405 ggc_internal_cleared_alloc_stat rather than xcalloc.
8406 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8407 (pass_manager::gt_ggc_mx): New.
8408 (pass_manager::gt_pch_nx): New.
8409 (pass_manager::gt_pch_nx_with_op): New.
8410 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8411 (opt_pass::operator new): New.
8412 (opt_pass::gt_ggc_mx): New.
8413 (opt_pass::gt_pch_nx): New.
8414 (opt_pass::gt_pch_nx_with_op): New.
8415
910c02a0
DM
84162013-08-20 David Malcolm <dmalcolm@redhat.com>
8417
8418 * Makefile.in (GTFILES): Add context.h.
8419 * context.c (gcc::context::operator new): New.
8420 (gcc::context::gt_ggc_mx): New.
8421 (gcc::context::gt_pch_nx): New.
8422 (gcc::context::gt_pch_nx): New.
8423 * context.h (gcc::context): Add GTY((user)) marking.
8424 (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 (g): Add GTY marking.
8429 (gt_ggc_mx (gcc::context *)): New.
8430 (gt_pch_nx (gcc::context *)): New.
8431 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8432 void *cookie)): New.
8433 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8434
af4b4236
AM
84352013-08-20 Alan Modra <amodra@gmail.com>
8436
8437 PR target/57865
8438 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8439 (rs6000_emit_epilogue): Likewise.
8440
12211b99 84412013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8442
8443 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8444
e2323f5b
PB
84452013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8446 Jakub Jelinek <jakub@redhat.com>
8447
8448 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8449 (BUILT_IN_FABSD64): Likewise.
8450 (BUILT_IN_FABSD128): Likewise.
8451 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8452 (fold_builtin_1): Likewise.
5339fc0c
UB
8453 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8454 destination and source operands.
e2323f5b
PB
8455 (*abstd2_fpr): Likewise.
8456 (*nabstd2_fpr): Likewise.
8457
cfbf3ee8
RS
84582013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8459
8460 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8461 JUMP_P and INSN_P.
8462
d3136aeb
AH
84632013-08-19 Aldy Hernandez <aldyh@redhat.com>
8464
8465 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8466 incomplete.
8467
d33d9e47
AI
84682013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8469
8470 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8471 * builtins.c (default_libc_has_function): New.
8472 (gnu_libc_has_function): Ditto.
8473 (no_c99_libc_has_function): Ditto.
8474 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8475 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8476 (fold_builtin_sincos): Likewise.
8477 (fold_builtin_cexp): Likewise.
8478 * builtins.def (DEF_C94_BUILTIN): Likewise.
8479 (DEF_C99_BUILTIN): Likewise.
8480 (DEF_C99_C90RES_BUILTIN): Likewise.
8481 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8482 definitions to using this define.
8483 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8484 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8485 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8486 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8487 * config/darwin.h: Ditto.
8488 * config/elfos.h: Ditto.
8489 * config/freebsd.h: Ditto.
8490 * config/i386/cygming.h: Ditto.
8491 * config/i386/djgpp.h: Ditto.
8492 * config/i386/i386-interix.h: Ditto.
8493 * config/microblaze/microblaze.h: Ditto.
8494 * config/mmix/mmix.h: Ditto.
8495 * config/gnu-user.h: Ditto.
8496 * config/ia64/hpux.h: Ditto.
8497 * config/pa/pa-hpux.h: Ditto.
8498 * config/pdp11/pdp11.h: Ditto.
8499 * config/picochip/picochip.h: Ditto.
8500 * config/linux.h: Ditto.
8501 * config/netbsd.h: Ditto.
8502 * config/openbsd.h: Ditto.
8503 * config/rs6000/aix43.h: Ditto.
8504 * config/rs6000/aix51.h: Ditto.
8505 * config/rs6000/aix52.h: Ditto.
8506 * config/rs6000/aix53.h: Ditto.
8507 * config/rs6000/aix61.h: Ditto.
8508 * config/rs6000/darwin.h: Ditto.
8509 * config/rs6000/linux.h: Ditto.
8510 * config/rs6000/linux64.h: Ditto.
8511 * config/s390/tpf.h: Ditto.
8512 * config/sol2-10.h: Ditto.
8513 * config/sol2.h: Ditto.
8514 * config/vms/vms.h: Ditto.
8515 * config/vxworks.h: Ditto.
8516 * config/linux-android.c (linux_android_libc_has_function):
8517 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8518 * config/linux-protos.h (linux_android_libc_has_function):
8519 New declaration.
8520 * config/i386/i386.c (ix86_libc_has_function): New.
8521 * config/i386/i386-protos.h
8522 (ix86_libc_has_function): New declaration.
8523 * config/i386/i386.md
8524 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8525 ("isinf<mode>2): Likewise.
8526 * convert.c (convert_to_integer): Using new target hook
8527 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8528 TARGET_C99_FUNCTIONS.
8529 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8530 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8531 * coretypes.h (function_class): New enum for different
8532 classes of functions.
8533 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8534 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8535 (TARGET_HAS_SINCOS): Likewise.
8536 (TARGET_LIBC_HAS_FUNCTION): New.
8537 * doc/tm.texi: Regenerated.
8538 * targhooks.h (default_libc_has_function): New declaration.
8539 (no_c99_libc_has_function): Ditto.
8540 (gnu_libc_has_function): Ditto.
8541 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8542 and TARGET_HAS_SINCOS.
8543
eefe9a99
JH
85442013-08-18 Jan Hubicka <jh@suse.cz>
8545
8546 * Makeifle-in (ipa-devirt.o): New.
8547 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8548 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8549 (analyze_functions): Look into possible targets of polymorphic call.
8550 * dumpfile.c (dump_files): Add type-inheritance dump.
8551 * dumpfile.h (TDI_inheritance): New.
8552 * ipa-devirt.c: New file.
8553 * ipa-utils.h (odr_type_d): Forward declare.
8554 (odr_type): New type.
8555 (build_type_inheritance_graph): Declare.
8556 (possible_polymorphic_call_targets): Declare and introduce inline
8557 variant when only edge is pased.
8558 (dump_possible_polymorphic_call_targets): Likewise.
8559 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8560 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8561 (types_same_for_odr): ... here.
8562 * tree.h (type_in_anonymous_namespace_p): Declare.
8563
29b89442
JJ
85642013-08-18 Jakub Jelinek <jakub@redhat.com>
8565
8566 PR tree-optimization/58006
8567 * tree-parloops.c (take_address_of): Don't ICE if get_name
8568 returns NULL.
8569 (eliminate_local_variables_stmt): Remove clobber stmts.
8570
4f219961
EB
85712013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8572
8573 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8574 error message is issued for an alias to undefined symbol.
8575
1d5755ef
JH
85762013-08-18 Jan Hubicka <jh@suse.cz>
8577
8578 * cgraph.c (cgraph_create_indirect_edge): Discover
8579 polymorphic calls and record basic info into indirect_info.
8580 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8581 devirtualization, ignore objc function calls.
8582 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8583 call with no parm index info.
8584 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8585 * tree.c (virtual_method_call_p): New function.
8586 * tree.h (virtual_method_call_p): Declare.
8587
5945bebf
JH
85882013-08-16 Jan Hubicka <jh@suse.cz>
8589
8590 PR middle-end/58179
8591 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8592
47fa5d23
DE
85932013-08-16 David Edelsohn <dje.gcc@gmail.com>
8594
8595 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8596 attribute.
8597
c74f54a0
DM
85982013-08-16 David Malcolm <dmalcolm@redhat.com>
8599
8600 * gengtype.c (type_for_name): Add special-case support for
8601 locating types within the "gcc::" namespace.
8602 (open_base_files): Emit a "using namespace gcc" directive.
8603
f758f299
MM
86042013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8605
8606 PR target/58160
8607 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8608 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8609
8610 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8611 array instead of each individual operand as a separate argument.
8612 (emit_fusion_gpr_load): Likewise.
8613 (expand_fusion_gpr_load): Add new function declaration.
8614
8615 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8616 signature to have the operands passed as an array, instead of as
8617 separate arguments. Allow ZERO_EXTEND to be in the memory
8618 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8619 depend on the register live/dead flags when peepholes are run.
8620 (expand_fusion_gpr_load): New function to be called from the
8621 peephole2 pass, to change the register that addis sets to be the
8622 target register.
8623 (emit_fusion_gpr_load): Change the calling signature to have the
8624 operands passed as an array, instead of as separate arguments.
8625 Allow ZERO_EXTEND to be in the memory address, and also
8626 SIGN_EXTEND if -mpower8-fusion-sign.
8627
8628 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8629 unspec enumeration.
8630 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8631 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 8632 depend on the register live/dead state when the peephole pass is done.
f758f299 8633
158f4e4f
DM
86342013-08-16 David Malcolm <dmalcolm@redhat.com>
8635
8636 * gengtype.c (create_user_defined_type): Ensure that the kind
8637 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8638 declaration is seen before the GTY((user)) marking.
8639
22f8cea5
BE
86402013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8641
8642 PR target/58105
8643 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8644
c49bdb2e
JH
86452013-08-16 Jan Hubicka <jh@suse.cz>
8646
8647 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8648 arugment expected_type.
8649 (gimple_fold_call): Use it.
8650 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8651 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 8652 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
8653 (try_make_edge_direct_virtual_call): Likewise.
8654 * tree.c (obj_type_ref_class): New.
8655 * tree.h (obj_type_ref_class): Use it.
8656
4042dca9
GDR
86572013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8658
8659 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8660 (rtl_slim_pp): Likewise.
8661 (init_rtl_slim_pretty_print): Likewise.
8662 (dump_value_slim): Don't call it. Use local pretty printer.
8663 (dump_insn_slim): Likewise.
8664 (dump_rtl_slim): Likewise.
8665 (str_pattern_slim): Likewise.
8666 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8667 Simplify.
8668
7a460594
JJ
86692013-08-16 Jakub Jelinek <jakub@redhat.com>
8670
639dc669
JJ
8671 PR tree-optimization/58164
8672 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8673 walk gimple_goto_dest of GIMPLE_GOTO.
8674
7a460594
JJ
8675 PR tree-optimization/58165
8676 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8677 bi_call must be the last stmt in a bb, don't split_block, instead
8678 use fallthru edge from it and give up if there is none.
8679 Release conds vector when returning early.
8680
e3c02cc7
XDL
86812013-08-14 Xinliang David Li <davidxl@google.com>
8682
8683 * config/i386/i386.c (ix86_option_override_internal):
8684 Remove unused variable and field.
8685
6469da2c
BS
86862013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8687
8688 PR target/57949
22f8cea5 8689 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
8690 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8691 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8692 and Linux, correct BLKmode alignment when 128-bit alignment is
8693 required and compatibility flag is not set.
22f8cea5
BE
8694 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8695 for zero-size arguments when compatibility flag is not set.
6469da2c 8696
4ca890e2
JJ
86972013-08-14 Jakub Jelinek <jakub@redhat.com>
8698
8699 PR tree-optimization/58145
8700 * tree-sra.c (build_ref_for_offset): If prev_base has
8701 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8702
daec1759 87032013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 8704
daec1759 8705 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 8706 Fix uninitialized variable error.
daec1759 8707
3ad20bd4
XDL
87082013-08-14 Xinliang David Li <davidxl@google.com>
8709
8710 * config/i386/i386.opt: Define two new options.
8711 * config/i386/x86-tune.def: Add arch selector field in macros.
8712 * config/i386/i386.h: Adjust macro definition.
8713 * config/i386/i386.c (ix86_option_override_internal):
8714 Refactor the code.
8715 (parse_mtune_ctrl_str): New function.
8716 (set_ix86_tune_features): New function.
8717 (ix86_function_specific_restore): Call the new helper function.
8718
e839e2a9
AB
87192013-08-14 Andrey Belevantsev <abel@ispras.ru>
8720
8721 PR rtl-optimization/57662
8722 * sel-sched.c (code_motion_process_successors): When the current insn
8723 is removed after the recursive traversal, break from the loop.
8724 Add comments and debug printouts.
8725
27ed665f
JJ
87262013-08-14 Jakub Jelinek <jakub@redhat.com>
8727 Alexandre Oliva <aoliva@redhat.com>
8728
8729 PR target/58067
8730 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
8731 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
8732 there also UNSPEC_PLTOFF.
8733
61c1a609
MP
87342013-08-14 Marek Polacek <polacek@redhat.com>
8735
8736 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
8737 NUM_CONDITIONS bit positions.
8738
0e901c67
CC
87392013-08-13 Cary Coutant <ccoutant@google.com>
8740
8741 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
8742 (attr_checksum): Hash vector contents instead of pointer.
8743 (attr_checksum_ordered): Likewise.
8744
061eff6d
UB
87452013-08-13 Uros Bizjak <ubizjak@gmail.com>
8746
8747 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
8748 when Pmode != word_mode. Add length_address attribute.
8749 (sse3_monitor_<mode>): Merge from sse3_monitor and
8750 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
8751 Pmode != word_mode. Update insn length attribute.
8752 * config/i386/i386.c (ix86_option_override_internal): Update
8753 ix86_gen_monitor selection for merged sse3_monitor insn.
8754
8ec9249b
JB
87552013-08-13 Julian Brown <julian@codesourcery.com>
8756
8757 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8758 perform invalid legitimization on greater-than-word-size modes for
8759 TARGET_E500_DOUBLE.
8760
761a8eb7
VM
87612013-08-13 Vladimir Makarov <vmakarov@redhat.com>
8762
8763 * ira.c (setup_class_translate_array): Use aclass instead of cl
8764 for classes not fully covered by allocno classes.
8765
99c2bd54
JJ
87662013-08-13 Jakub Jelinek <jakub@redhat.com>
8767
4029a5e0
JJ
8768 PR tree-optimization/57661
8769 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
8770 * tree-inline.c (tree_function_versioning): Initialize it.
8771 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
8772 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
8773 that is not being copied.
8774
99c2bd54
JJ
8775 PR sanitizer/56417
8776 * asan.c (instrument_strlen_call): Fix typo in comment.
8777 Use char * type even for the lhs of POINTER_PLUS_EXPR.
8778
b5f8f063
SE
87792013-08-13 Steve Ellcey <sellcey@mips.com>
8780
8781 * config/mips/mips.md (prefetch): Use lw instead of ld on
8782 loongson in 32bit mode.
8783
4de80584
NC
87842013-08-13 Nick Clifton <nickc@redhat.com>
8785
8786 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
8787
09ce3660
JH
87882013-08-13 Jan Hubicka <jh@suse.cz>
8789
8790 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
8791 introduced edge; fix typo in sanity check.
8792 (cgraph_resolve_speculation): Export; improve diagnostic.
8793 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
8794 speculation at type mismatch.
8795 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
8796 (cgraph_resolve_speculation): Declare.
8797 (symtab_can_be_discarded): New function.
8798 * value-prof.c (gimple_ic_transform): Remove actual transform code.
8799 * ipa-inline-transform.c (speculation_removed): New global var.
8800 (clone_inlined_nodes): See if speculation can be removed.
8801 (inline_call): If speculations was removed, we growths may not match.
8802 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
8803 (speculation_useful_p): New function.
8804 (resolve_noninline_speculation): New function.
8805 (inline_small_functions): Resolve useless speculations.
8806 * ipa-inline.h (speculation_useful_p): Declare
8807 * ipa.c (can_replace_by_local_alias): Simplify.
8808 (ipa_profile): Produce speculative calls in non-lto, too;
8809 add simple cost model; produce local aliases.
8810
f971dc24
DM
88112013-08-13 David Malcolm <dmalcolm@redhat.com>
8812
8813 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 8814 PASS_MANAGER_H.
f971dc24 8815
2e507b9a
PC
88162013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
8817
8818 * config/i386/i386.c (ix86_function_versions): Use error + inform.
8819
c97fd4b8
UB
88202013-08-12 Uros Bizjak <ubizjak@gmail.com>
8821
8822 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
8823 iterator instead of X87MODEF.
8824
88252013-08-12 Perez Read <netfirewall@gmail.com>
8826
8827 PR target/58132
8828 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
8829 operand 0 for intel asm alternative.
8830 (*movabs<mode>_2): Ditto for operand 1.
8831
f4f4204c
JG
88322013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
8833
8834 * config/aarch64/arm_none.h
8835 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
8836
133b1a8e
NC
88372013-08-12 Nick Clifton <nickc@redhat.com>
8838
8839 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
8840
15dd8b3a
YR
88412013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
8842
8843 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
8844 expand for QI/HImode operand to produce more effictive code for
8845 unsigned char(short) --> float(double) conversion.
8846
94109a6a
AM
88472013-08-12 Alexander Monakov <amonakov@ispras.ru>
8848
8849 * doc/invoke.texi: Mention that -ftls-model does not force the final
8850 model.
8851
4e115102
MP
88522013-08-12 Marek Polacek <polacek@redhat.com>
8853 Marc Glisse <marc.glisse@inria.fr>
8854
8855 PR tree-optimization/57980
8856 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
8857 when creating -1 constant.
8858
748d71f3
JH
88592013-08-10 Jan Hubicka <jh@suse.cz>
8860
1f97e193 8861 Workaround binutils PR14342.
748d71f3
JH
8862 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
8863 (gimple_init_edge_profiler): Likewise.
8864 (gimple_gen_ic_func_profiler): Likewise.
8865
5979aa54
JH
88662013-08-09 Jan Hubicka <jh@suse.cz>
8867
8868 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
8869
ad83025e
XDL
88702013-08-09 Xinliang David Li <davidxl@google.com>
8871
8872 * config/i386/stringop.def: New file.
8873 * config/i386/stringop.opt: New file.
8874 * config/i386/i386-opts.h: Include stringopt.def.
8875 * config/i386/i386.opt: Include stringopt.opt.
8876 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 8877 Override default size based stringop inline strategies with options.
ad83025e
XDL
8878 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
8879 New function.
8880
e59df5fd
JH
88812013-08-09 Jan Hubicka <jh@suse.cz>
8882
c97fd4b8 8883 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 8884
634ab819
JH
88852013-08-09 Jan Hubicka <jh@suse.cz>
8886
8887 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
8888 CGRAPH_FREQ_MAX.
8889 (dump_cgraph_node): Dump profile-id.
8890 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
8891 and common_target_probability.
8892 * lto-cgraph.c (lto_output_edge): Stream common targets.
8893 (lto_output_node): Stream profile ids.
8894 (input_node): Stream profile ids.
8895 (input_edge): Stream common targets.
8896 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
8897 * ipa.c: Include value-prof.h
8898 (ipa_profile_generate_summary): Turn indirect call statement histograms
8899 into common targets.
8900 (ipa_profile): Turn common targets into speculative edges.
8901
2fa3d31b
JH
89022013-08-09 Jan Hubicka <jh@suse.cz>
8903
8904 * cgraph.h (cgraph_node): Add profile_id.
8905 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 8906 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
8907 (del_node_map): Update.
8908 (find_func_by_funcdef_no): Replace by ...
8909 (find_func_by_profile_id): ... this one.
8910 (gimple_ic_transform): Do not remove useful histograms when
8911 speculation is not done; dump info when indirect call removal
8912 can happen at LTO.
8913 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
8914 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
8915 (__gcov_indirect_call_profiler_v2): .. this one.
8916 * profile.h (init_node_map): Update.
8917 * coverage.c (coverage_compute_profile_id): New function.
8918 * coverage.h (coverage_compute_profile_id): Declare.
8919 * tree-profile.c (init_ic_make_global_vars): Make
8920 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
8921 (gimple_init_edge_profiler): Update prototype of
8922 __gcov_indirect_call_profiler.
8923 (gimple_gen_ic_func_profiler): Simplify.
8924 (tree_profiling): Use init_node_map
8925
042ae7d2
JH
89262013-08-09 Jan Hubicka <jh@suse.cz>
8927
c97fd4b8
UB
8928 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
8929 non-speculative refs.
042ae7d2
JH
8930 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
8931 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
8932 (cgraph_set_call_stmt): Likewise.
8933 (cgraph_create_edge_1): Fix release checking compilatoin;
8934 clear lto_stmt_uid.
8935 (cgraph_free_edge): Free indirect info.
8936 (cgraph_turn_edge_to_speculative): New function.
8937 (cgraph_speculative_call_info): New function.
8938 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 8939 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
8940 (dump_cgraph_node): Dump speculation.
8941 (verify_edge_count_and_frequency): Accept speculative edges.
8942 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
8943 (verify_cgraph_node): Handle speculation.
8944 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
8945 (cgraph_set_call_stmt): Update prototype.
8946 (cgraph_make_edge_direct): Update prototype.
8947 (cgraph_speculative_call_info): Declare.
8948 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
8949 to change; update call of ipa_find_references.
8950 * ipa-ref.c (ipa_record_reference): Fix return value; clear
8951 lto_stmt_uid and speculative flags.
8952 (ipa_dump_references): Dump speculation.
8953 (ipa_clone_references): Clone speculative flag.
8954 (ipa_clone_referring): Likewise.
8955 (ipa_clone_ref): New function.
8956 (ipa_find_reference): Look into lto_stmt_uids
8957 (ipa_clear_stmts_in_references): Do not clear speculative calls.
8958 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
8959 (ipa_find_reference): Update declaration.
8960 (ipa_clone_ref): Declare.
8961 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
8962 stream speculative flag.
8963 (lto_output_ref): Stream statements uids and speculation.
8964 (input_ref): Likewise.
8965 (input_edge): Stream speuclation.
8966 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
8967 (cgraph_set_call_stmt_including_clones): Handle speculation.
8968 * ipa-inline.c (heap_edge_removal_hook): New function.
8969 (inline_small_functions): Register it.
8970 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
8971 also initialize refs.
8972 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
8973 edge to change.
8974 (try_make_edge_direct_simple_call): Likewise.
8975 (try_make_edge_direct_simple_call): Likewise.
8976 (update_indirect_edges_after_inlining): Likewise.
8977 (remove_described_reference): Look proper lto_stmt_uid.
8978 (propagate_controlled_uses): Likewise.
8979 (propagate_controlled_uses): Liekwise.
8980 * tree-inline.c (copy_bb): Copy speculative edges.
8981 (redirect_all_calls): New function.
c97fd4b8
UB
8982 (copy_cfg_body): Do redirection after loop info is updated.
8983 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 8984
aa1e10cc
JH
89852013-08-09 Jan Hubicka <jh@suse.cz>
8986
8987 * lto-streamer-out.c (output_function): Renumber PHIs.
8988 * lto-streamer-in.c (input_function): Likewise.
8989
66adb8eb
JG
89902013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
8991
8992 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
8993 (get_lane_unsigned): Likewise.
8994 (dup_lane_scalar): Likewise.
8995 (get_lane): enable for VALL.
8996 * config/aarch64/aarch64-simd.md
8997 (aarch64_dup_lane_scalar<mode>): Remove.
8998 (aarch64_get_lane_signed<mode>): Likewise.
8999 (aarch64_get_lane_unsigned<mode>): Likewise.
9000 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9001 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9002 (aarch64_get_lane<mode>): Enable for all vector modes.
9003 (aarch64_get_lanedi): Remove misleading constraints.
9004 * config/aarch64/arm_neon.h
9005 (__aarch64_vget_lane_any): Define.
9006 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9007 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9008 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9009 * config/aarch64/iterators.md (VDQQH): New.
9010 (VDQQHS): Likewise.
9011 (vwcore): Likewise.
9012
1f65ae7a
EB
90132013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9014
9015 * configure.ac: Add GAS check for LEON instructions on SPARC.
9016 * configure: Regenerate.
9017 * config.in: Likewise.
9018 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9019 sparc*-*-* block.
9020 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9021 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9022 for LEON or LEON3.
9023 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9024 (AS_LEON_FLAG): New macro.
9025 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9026 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9027 Deal with LEON and LEON3 for the memory model.
23a6cb78 9028 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9029 (atomic_compare_and_swap<mode>_1): Likewise.
9030 (*atomic_compare_and_swap<mode>_1): Likewise.
9031
ff522f7f
ZC
90322013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9033
9034 * config/arm/neon.md (vcond): Fix floating-point vector
9035 comparisons against 0.
9036
cb1cca12
VM
90372013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9038
9039 * lra-constraints.c (emit_spill_move): Remove assert.
9040 (process_alt_operands): Add more debugging
9041 output. Increase reject for spilling into memory. Decrease
9042 reject for reloading scratch.
9043 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9044
a3719e31
SE
90452013-08-08 Steve Ellcey <sellcey@mips.com>
9046
9047 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9048 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9049 micromips incompatible. Add nan2008.
9050 (MULTILIB_DIRNAMES): Add nan2008.
9051 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9052 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9053 and micromips incompatible. Add nan2008.
9054 (MULTILIB_DIRNAMES): Add nan2008.
9055 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9056
f40423e2
RS
90572013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9058
9059 PR rtl-optimization/58079
9060 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9061 simplify_comparison has widened a comparison with an integer.
9062
869b9125
KT
90632013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9064
9065 * config/arm/neon.md (movmisalign<mode>): Disable when we
9066 don't allow unaligned accesses.
9067 (*movmisalign<mode>_neon_store): Likewise.
9068 (*movmisalign<mode>_neon_load): Likewise.
9069 (*movmisalign<mode>_neon_store): Likewise.
9070 (*movmisalign<mode>_neon_load): Likewise.
9071
71cafea9
JH
90722013-08-08 Jan Hubicka <jh@suse.cz>
9073
9074 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9075 (make_pass_rebuild_cgraph_edges): Also clear references.
9076 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9077 * ipa-inline-transform.c (inline_transform): Remove all references
9078 after inlining.
c97fd4b8
UB
9079 * cgraphunit.c (expand_function): Remove all references after
9080 expansion.
71cafea9
JH
9081 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9082 (ipa_find_reference): Rewrite to iterator.
9083 (remove_stmt_references): Likewise.
9084 (ipa_clear_stmts_in_references): New function.
9085 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9086 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9087 clear references.
71cafea9
JH
9088 * ipa-split.c (split_function): Remove references in split function.
9089
27d2e612
RE
90902013-08-08 Richard Earnshaw <rearnsha@arm.com>
9091
9092 PR target/57431
1f65ae7a 9093 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9094 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9095
5efc661c
RE
90962013-08-08 Richard Earnshaw <rearnsha@arm.com>
9097
9098 PR target/56979
1f65ae7a 9099 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9100 suggested mode for the assignment isn't compatible with the
9101 registers required.
9102
f276d31d
BE
91032013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9104
9105 PR target/58065
9106 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9107
4b8bc035
XDL
91082013-08-07 Xinliang David Li <davidxl@google.com>
9109
9110 * config/i386/i386.opt: New option -mtune-ctrl=.
9111 * config/i386/x86-tune.def: New file.
9112 * config/i386/i386.h: include x86-tune.def.
9113 * config/i386/i386.c (ix86_option_override_internal):
9114 Parsing -mtune-ctrl= option and set tune features.
9115
12211b99 91162013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9117
9118 PR other/12081
03b0ee0a 9119 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9120 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9121 to gen_2arg_fn_t.
9122
5cf6635b
EB
91232013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9124
9125 * rtl.h (update_alignments): Declare.
9126 * final.c (grow_label_align): New function extracted from...
9127 (shorten_branches): ...here. Call it.
9128 (update_alignments): New function.
9129 * reorg.c (sibling_labels): New variable.
9130 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9131 the new label along with it onto the sibling_labels vector.
9132 (fill_simple_delay_slots): Adjust call to get_label_before.
9133 (fill_slots_from_thread): Likewise.
9134 (relax_delay_slots): Likewise.
9135 (make_return_insns): Likewise.
9136 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9137
3c8ca1ab
EB
91382013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9139
9140 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9141 document its semantics.
9142 (diagnostic_report_diagnostic): Adjust accordingly.
9143
5ee5b32c
DM
91442013-08-07 David Malcolm <dmalcolm@redhat.com>
9145
03b0ee0a 9146 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9147 (sparc_option_override): ...and port to new C++ pass API.
9148 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9149
abd566fa
PB
91502013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9151
9152 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9153
2077db1b
CT
91542013-08-06 Caroline Tice <cmtice@google.com>
9155
9156 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9157 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9158 * tree-pass.h: Add pass_vtable_verify.
9159 * varasm.c (assemble_variable): Add code to properly set the comdat
9160 section and name for the .vtable_map_vars section.
9161 (assemble_vtyv_preinit_initializer): New function.
9162 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9163 LINK_ONCE flag.
9164 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9165 * vtable-verify.c: New file.
9166 * vtable-verify.h: New file.
9167 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9168 initialiation levels.
9169 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9170 * passes.def: Insert pass_vtable_verify.
9171 * aclocal.m4: Reorder includes.
9172 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9173 -fvtv-counts options.
9174 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9175 as appropriate, if -fvtable-verify=... is used.
9176 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9177 -fvtable-verify=... is used.
9178 * Makefile.in (OBJS): Add vtable-verify.o to list.
9179 (vtable-verify.o): Add new build rule.
9180 (GTFILES): Add vtable-verify.c to list.
9181 * common.opt (fvtable-verify=): New flag.
9182 (vtv_priority): Values for fvtable-verify= flag.
9183 (fvtv-counts): New flag.
9184 (fvtv-debug): New flag.
9185 * tree.h (save_vtable_map_decl): New extern function decl.
9186
03085d1c
DM
91872013-08-07 David Malcolm <dmalcolm@redhat.com>
9188
9189 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9190 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9191 (pass_data_rl78_devirt): ...new pass_data instance and...
9192 (make_pass_rl78_devirt): ...new function.
9193 (rl78_asm_file_start): Port pass registration to new C++ API.
9194
05555c4a
DM
91952013-08-07 David Malcolm <dmalcolm@redhat.com>
9196
9197 * coretypes.h (rtl_opt_pass): Add.
9198 (gcc::context): Add.
9199 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9200 (epiphany_init): Port to new C++ pass API.
9201 (epiphany_optimize_mode_switching): Likewise.
9202 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9203 (pass_manager::get_pass_mode_switching): New.
9204 (pass_manager::get_pass_peephole2): New.
9205 * mode-switching.c (pass_mode_switching): Add clone method.
9206 * recog.c (pass_peephole2): Add clone method.
9207 (pass_split_all_insns): Add clone method.
9208
c5a12e26
DM
92092013-08-06 David Malcolm <dmalcolm@redhat.com>
9210
03b0ee0a
UB
9211 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9212 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9213
a2e2a668
JH
92142013-08-06 Jan Hubicka <jh@suse.cz>
9215
9216 * cgraph.c (cgraph_get_body): New function based on lto.c
9217 implementation.
9218 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9219 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9220 LTO paths.
a2e2a668
JH
9221 * cgraphunit.c (expand_function): Get body prior expanding.
9222 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9223 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9224 really need.
a2e2a668
JH
9225 * passes.c (do_per_function_toporder): Get body.
9226 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9227 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9228
15682f24
MJ
92292013-08-06 Martin Jambor <mjambor@suse.cz>
9230
9231 PR fortran/57987
9232 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9233 is not re-finalized. Rename second parameter to no_collect.
9234
78f6dd68
MJ
92352013-08-06 Martin Jambor <mjambor@suse.cz>
9236
9237 PR middle-end/58041
9238 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9239 MEM_REF has proper alignment information.
9240
12211b99 92412013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9242
9243 PR other/12081
9244 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9245 class insn_gen_fn.
9246 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9247 rtx (*) (rtx, ...) with insn_gen_fn.
9248 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9249 insn_gen_fn::stored_funcptr. Add initializer braces.
9250
8ac69a6c
DM
92512013-08-05 David Malcolm <dmalcolm@redhat.com>
9252
9253 Rewrite how instances of passes are cloned to remove assumptions
9254 about their sizes (thus allowing pass subclasses to have
9255 additional data fields, albeit non-GC-managed ones at this point).
9256
9257 * passes.c (make_pass_instance): Now that passes have clone
9258 methods, rewrite this function to eliminate XNEW and memcpy
9259 calls that used hardcoded sizes. Since this function no longer
9260 creates pass instances, rename it to...
03b0ee0a
UB
9261 (add_pass_instance): ...this. Document the old way that passes were
9262 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9263 (next_pass_1): Add an initial_pass argument for use by
9264 add_pass_instance.
9265 (position_pass): When adding multiple instances of a pass, use
9266 the pass's clone method, rather than relying on the XNEW/memcpy
9267 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9268 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9269 the initial instance of the current pass within the pass manager.
8ac69a6c 9270
27a4cd48
DM
92712013-08-05 David Malcolm <dmalcolm@redhat.com>
9272
9273 This is the automated part of the conversion of passes from C
9274 structs to C++ classes.
9275
9276 Patch autogenerated by refactor_passes.py from
9277 https://github.com/davidmalcolm/gcc-refactoring-scripts
9278 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9279
9280 * asan.c (pass_asan): Convert from a global struct to a subclass of
9281 gimple_opt_pass along with...
9282 (pass_data_asan): ...new pass_data instance and...
9283 (make_pass_asan): ...new function.
9284 (pass_asan_O0): Convert from a global struct to a subclass of
9285 gimple_opt_pass along with...
9286 (pass_data_asan_O0): ...new pass_data instance and...
9287 (make_pass_asan_O0): ...new function.
9288 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9289 subclass of rtl_opt_pass along with...
9290 (pass_data_inc_dec): ...new pass_data instance and...
9291 (make_pass_inc_dec): ...new function.
9292 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9293 a subclass of rtl_opt_pass along with...
9294 (pass_data_reorder_blocks): ...new pass_data instance and...
9295 (make_pass_reorder_blocks): ...new function.
9296 (pass_duplicate_computed_gotos): Convert from a global struct to a
9297 subclass of rtl_opt_pass along with...
9298 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9299 (make_pass_duplicate_computed_gotos): ...new function.
9300 (pass_partition_blocks): Convert from a global struct to a subclass of
9301 rtl_opt_pass along with...
9302 (pass_data_partition_blocks): ...new pass_data instance and...
9303 (make_pass_partition_blocks): ...new function.
9304 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9305 struct to a subclass of rtl_opt_pass along with...
9306 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9307 and...
9308 (make_pass_branch_target_load_optimize1): ...new function.
9309 (pass_branch_target_load_optimize2): Convert from a global struct to a
9310 subclass of rtl_opt_pass along with...
9311 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9312 and...
9313 (make_pass_branch_target_load_optimize2): ...new function.
9314 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9315 of rtl_opt_pass along with...
9316 (pass_data_jump): ...new pass_data instance and...
9317 (make_pass_jump): ...new function.
9318 (pass_jump2): Convert from a global struct to a subclass of
9319 rtl_opt_pass along with...
9320 (pass_data_jump2): ...new pass_data instance and...
9321 (make_pass_jump2): ...new function.
9322 * cfgexpand.c (pass_expand): Convert from a global struct to a
9323 subclass of rtl_opt_pass along with...
9324 (pass_data_expand): ...new pass_data instance and...
9325 (make_pass_expand): ...new function.
9326 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9327 of rtl_opt_pass along with...
9328 (pass_data_free_cfg): ...new pass_data instance and...
9329 (make_pass_free_cfg): ...new function.
9330 (pass_into_cfg_layout_mode): Convert from a global struct to a
9331 subclass of rtl_opt_pass along with...
9332 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9333 (make_pass_into_cfg_layout_mode): ...new function.
9334 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9335 subclass of rtl_opt_pass along with...
9336 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9337 (make_pass_outof_cfg_layout_mode): ...new function.
9338 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9339 struct to a subclass of gimple_opt_pass along with...
9340 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9341 (make_pass_build_cgraph_edges): ...new function.
9342 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9343 subclass of gimple_opt_pass along with...
9344 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9345 (make_pass_rebuild_cgraph_edges): ...new function.
9346 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9347 subclass of gimple_opt_pass along with...
9348 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9349 and...
9350 (make_pass_remove_cgraph_callee_edges): ...new function.
9351 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9352 struct to a subclass of rtl_opt_pass along with...
9353 (pass_data_stack_adjustments): ...new pass_data instance and...
9354 (make_pass_stack_adjustments): ...new function.
9355 * combine.c (pass_combine): Convert from a global struct to a subclass
9356 of rtl_opt_pass along with...
9357 (pass_data_combine): ...new pass_data instance and...
9358 (make_pass_combine): ...new function.
9359 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9360 global struct to a subclass of rtl_opt_pass along with...
9361 (pass_data_compare_elim_after_reload): ...new pass_data instance
9362 and...
9363 (make_pass_compare_elim_after_reload): ...new function.
9364 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9365 of rtl_opt_pass along with...
9366 (pass_data_rtl_cprop): ...new pass_data instance and...
9367 (make_pass_rtl_cprop): ...new function.
9368 * cse.c (pass_cse): Convert from a global struct to a subclass of
9369 rtl_opt_pass along with...
9370 (pass_data_cse): ...new pass_data instance and...
9371 (make_pass_cse): ...new function.
9372 (pass_cse2): Convert from a global struct to a subclass of
9373 rtl_opt_pass along with...
9374 (pass_data_cse2): ...new pass_data instance and...
9375 (make_pass_cse2): ...new function.
9376 (pass_cse_after_global_opts): Convert from a global struct to a
9377 subclass of rtl_opt_pass along with...
9378 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9379 (make_pass_cse_after_global_opts): ...new function.
9380 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9381 of rtl_opt_pass along with...
9382 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9383 (make_pass_ud_rtl_dce): ...new function.
9384 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9385 rtl_opt_pass along with...
9386 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9387 (make_pass_fast_rtl_dce): ...new function.
9388 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9389 a subclass of rtl_opt_pass along with...
9390 (pass_data_df_initialize_opt): ...new pass_data instance and...
9391 (make_pass_df_initialize_opt): ...new function.
9392 (pass_df_initialize_no_opt): Convert from a global struct to a
9393 subclass of rtl_opt_pass along with...
9394 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9395 (make_pass_df_initialize_no_opt): ...new function.
9396 (pass_df_finish): Convert from a global struct to a subclass of
9397 rtl_opt_pass along with...
9398 (pass_data_df_finish): ...new pass_data instance and...
9399 (make_pass_df_finish): ...new function.
9400 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9401 rtl_opt_pass along with...
9402 (pass_data_rtl_dse1): ...new pass_data instance and...
9403 (make_pass_rtl_dse1): ...new function.
9404 (pass_rtl_dse2): Convert from a global struct to a subclass of
9405 rtl_opt_pass along with...
9406 (pass_data_rtl_dse2): ...new pass_data instance and...
9407 (make_pass_rtl_dse2): ...new function.
9408 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9409 subclass of rtl_opt_pass along with...
9410 (pass_data_dwarf2_frame): ...new pass_data instance and...
9411 (make_pass_dwarf2_frame): ...new function.
9412 * except.c (pass_set_nothrow_function_flags): Convert from a global
9413 struct to a subclass of rtl_opt_pass along with...
9414 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9415 and...
9416 (make_pass_set_nothrow_function_flags): ...new function.
9417 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9418 subclass of rtl_opt_pass along with...
9419 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9420 and...
9421 (make_pass_convert_to_eh_region_ranges): ...new function.
9422 * final.c (pass_compute_alignments): Convert from a global struct to a
9423 subclass of rtl_opt_pass along with...
9424 (pass_data_compute_alignments): ...new pass_data instance and...
9425 (make_pass_compute_alignments): ...new function.
9426 (pass_final): Convert from a global struct to a subclass of
9427 rtl_opt_pass along with...
9428 (pass_data_final): ...new pass_data instance and...
9429 (make_pass_final): ...new function.
9430 (pass_shorten_branches): Convert from a global struct to a subclass of
9431 rtl_opt_pass along with...
9432 (pass_data_shorten_branches): ...new pass_data instance and...
9433 (make_pass_shorten_branches): ...new function.
9434 (pass_clean_state): Convert from a global struct to a subclass of
9435 rtl_opt_pass along with...
9436 (pass_data_clean_state): ...new pass_data instance and...
9437 (make_pass_clean_state): ...new function.
9438 * function.c (pass_instantiate_virtual_regs): Convert from a global
9439 struct to a subclass of rtl_opt_pass along with...
9440 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9441 (make_pass_instantiate_virtual_regs): ...new function.
9442 (pass_leaf_regs): Convert from a global struct to a subclass of
9443 rtl_opt_pass along with...
9444 (pass_data_leaf_regs): ...new pass_data instance and...
9445 (make_pass_leaf_regs): ...new function.
9446 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9447 subclass of rtl_opt_pass along with...
9448 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9449 and...
9450 (make_pass_thread_prologue_and_epilogue): ...new function.
9451 (pass_match_asm_constraints): Convert from a global struct to a
9452 subclass of rtl_opt_pass along with...
9453 (pass_data_match_asm_constraints): ...new pass_data instance and...
9454 (make_pass_match_asm_constraints): ...new function.
9455 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9456 subclass of rtl_opt_pass along with...
9457 (pass_data_rtl_fwprop): ...new pass_data instance and...
9458 (make_pass_rtl_fwprop): ...new function.
9459 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9460 rtl_opt_pass along with...
9461 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9462 (make_pass_rtl_fwprop_addr): ...new function.
9463 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9464 rtl_opt_pass along with...
9465 (pass_data_rtl_pre): ...new pass_data instance and...
9466 (make_pass_rtl_pre): ...new function.
9467 (pass_rtl_hoist): Convert from a global struct to a subclass of
9468 rtl_opt_pass along with...
9469 (pass_data_rtl_hoist): ...new pass_data instance and...
9470 (make_pass_rtl_hoist): ...new function.
9471 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9472 subclass of gimple_opt_pass along with...
9473 (pass_data_lower_cf): ...new pass_data instance and...
9474 (make_pass_lower_cf): ...new function.
9475 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9476 from a global struct to a subclass of gimple_opt_pass along with...
9477 (pass_data_strength_reduction): ...new pass_data instance and...
9478 (make_pass_strength_reduction): ...new function.
9479 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9480 of rtl_opt_pass along with...
9481 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9482 (make_pass_rtl_ifcvt): ...new function.
9483 (pass_if_after_combine): Convert from a global struct to a subclass of
9484 rtl_opt_pass along with...
9485 (pass_data_if_after_combine): ...new pass_data instance and...
9486 (make_pass_if_after_combine): ...new function.
9487 (pass_if_after_reload): Convert from a global struct to a subclass of
9488 rtl_opt_pass along with...
9489 (pass_data_if_after_reload): ...new pass_data instance and...
9490 (make_pass_if_after_reload): ...new function.
9491 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9492 a subclass of rtl_opt_pass along with...
9493 (pass_data_initialize_regs): ...new pass_data instance and...
9494 (make_pass_initialize_regs): ...new function.
9495 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9496 of ipa_opt_pass_d along with...
9497 (pass_data_ipa_cp): ...new pass_data instance and...
9498 (make_pass_ipa_cp): ...new function.
9499 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9500 global struct to a subclass of gimple_opt_pass along with...
9501 (pass_data_inline_parameters): ...new pass_data instance and...
9502 (make_pass_inline_parameters): ...new function.
9503 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9504 subclass of gimple_opt_pass along with...
9505 (pass_data_early_inline): ...new pass_data instance and...
9506 (make_pass_early_inline): ...new function.
9507 (pass_ipa_inline): Convert from a global struct to a subclass of
9508 ipa_opt_pass_d along with...
9509 (pass_data_ipa_inline): ...new pass_data instance and...
9510 (make_pass_ipa_inline): ...new function.
9511 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9512 struct to a subclass of gimple_opt_pass along with...
9513 (pass_data_local_pure_const): ...new pass_data instance and...
9514 (make_pass_local_pure_const): ...new function.
9515 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9516 ipa_opt_pass_d along with...
9517 (pass_data_ipa_pure_const): ...new pass_data instance and...
9518 (make_pass_ipa_pure_const): ...new function.
9519 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9520 to a subclass of ipa_opt_pass_d along with...
9521 (pass_data_ipa_reference): ...new pass_data instance and...
9522 (make_pass_ipa_reference): ...new function.
9523 * ipa-split.c (pass_split_functions): Convert from a global struct to
9524 a subclass of gimple_opt_pass along with...
9525 (pass_data_split_functions): ...new pass_data instance and...
9526 (make_pass_split_functions): ...new function.
9527 (pass_feedback_split_functions): Convert from a global struct to a
9528 subclass of gimple_opt_pass along with...
9529 (pass_data_feedback_split_functions): ...new pass_data instance and...
9530 (make_pass_feedback_split_functions): ...new function.
9531 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9532 global struct to a subclass of simple_ipa_opt_pass along with...
9533 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9534 instance and...
9535 (make_pass_ipa_function_and_variable_visibility): ...new function.
9536 (pass_ipa_free_inline_summary): Convert from a global struct to a
9537 subclass of simple_ipa_opt_pass along with...
9538 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9539 (make_pass_ipa_free_inline_summary): ...new function.
9540 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9541 subclass of ipa_opt_pass_d along with...
9542 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9543 and...
9544 (make_pass_ipa_whole_program_visibility): ...new function.
9545 (pass_ipa_profile): Convert from a global struct to a subclass of
9546 ipa_opt_pass_d along with...
9547 (pass_data_ipa_profile): ...new pass_data instance and...
9548 (make_pass_ipa_profile): ...new function.
9549 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9550 ipa_opt_pass_d along with...
9551 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9552 (make_pass_ipa_cdtor_merge): ...new function.
9553 * ira.c (pass_ira): Convert from a global struct to a subclass of
9554 rtl_opt_pass along with...
9555 (pass_data_ira): ...new pass_data instance and...
9556 (make_pass_ira): ...new function.
9557 (pass_reload): Convert from a global struct to a subclass of
9558 rtl_opt_pass along with...
9559 (pass_data_reload): ...new pass_data instance and...
9560 (make_pass_reload): ...new function.
9561 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9562 subclass of rtl_opt_pass along with...
9563 (pass_data_cleanup_barriers): ...new pass_data instance and...
9564 (make_pass_cleanup_barriers): ...new function.
9565 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9566 of rtl_opt_pass along with...
9567 (pass_data_loop2): ...new pass_data instance and...
9568 (make_pass_loop2): ...new function.
9569 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9570 rtl_opt_pass along with...
9571 (pass_data_rtl_loop_init): ...new pass_data instance and...
9572 (make_pass_rtl_loop_init): ...new function.
9573 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9574 rtl_opt_pass along with...
9575 (pass_data_rtl_loop_done): ...new pass_data instance and...
9576 (make_pass_rtl_loop_done): ...new function.
9577 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9578 subclass of rtl_opt_pass along with...
9579 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9580 (make_pass_rtl_move_loop_invariants): ...new function.
9581 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9582 rtl_opt_pass along with...
9583 (pass_data_rtl_unswitch): ...new pass_data instance and...
9584 (make_pass_rtl_unswitch): ...new function.
9585 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9586 subclass of rtl_opt_pass along with...
9587 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9588 and...
9589 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9590 (pass_rtl_doloop): Convert from a global struct to a subclass of
9591 rtl_opt_pass along with...
9592 (pass_data_rtl_doloop): ...new pass_data instance and...
9593 (make_pass_rtl_doloop): ...new function.
9594 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9595 a subclass of rtl_opt_pass along with...
9596 (pass_data_lower_subreg): ...new pass_data instance and...
9597 (make_pass_lower_subreg): ...new function.
9598 (pass_lower_subreg2): Convert from a global struct to a subclass of
9599 rtl_opt_pass along with...
9600 (pass_data_lower_subreg2): ...new pass_data instance and...
9601 (make_pass_lower_subreg2): ...new function.
9602 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9603 struct to a subclass of ipa_opt_pass_d along with...
9604 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9605 (make_pass_ipa_lto_gimple_out): ...new function.
9606 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9607 of ipa_opt_pass_d along with...
9608 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9609 (make_pass_ipa_lto_finish_out): ...new function.
9610 * mode-switching.c (pass_mode_switching): Convert from a global struct
9611 to a subclass of rtl_opt_pass along with...
9612 (pass_data_mode_switching): ...new pass_data instance and...
9613 (make_pass_mode_switching): ...new function.
9614 * modulo-sched.c (pass_sms): Convert from a global struct to a
9615 subclass of rtl_opt_pass along with...
9616 (pass_data_sms): ...new pass_data instance and...
9617 (make_pass_sms): ...new function.
9618 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9619 subclass of gimple_opt_pass along with...
9620 (pass_data_expand_omp): ...new pass_data instance and...
9621 (make_pass_expand_omp): ...new function.
9622 (pass_lower_omp): Convert from a global struct to a subclass of
9623 gimple_opt_pass along with...
9624 (pass_data_lower_omp): ...new pass_data instance and...
9625 (make_pass_lower_omp): ...new function.
9626 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9627 of gimple_opt_pass along with...
9628 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9629 (make_pass_diagnose_omp_blocks): ...new function.
9630 * passes.c (pass_early_local_passes): Convert from a global struct to
9631 a subclass of simple_ipa_opt_pass along with...
9632 (pass_data_early_local_passes): ...new pass_data instance and...
9633 (make_pass_early_local_passes): ...new function.
9634 (pass_all_early_optimizations): Convert from a global struct to a
9635 subclass of gimple_opt_pass along with...
9636 (pass_data_all_early_optimizations): ...new pass_data instance and...
9637 (make_pass_all_early_optimizations): ...new function.
9638 (pass_all_optimizations): Convert from a global struct to a subclass
9639 of gimple_opt_pass along with...
9640 (pass_data_all_optimizations): ...new pass_data instance and...
9641 (make_pass_all_optimizations): ...new function.
9642 (pass_all_optimizations_g): Convert from a global struct to a subclass
9643 of gimple_opt_pass along with...
9644 (pass_data_all_optimizations_g): ...new pass_data instance and...
9645 (make_pass_all_optimizations_g): ...new function.
9646 (pass_rest_of_compilation): Convert from a global struct to a subclass
9647 of rtl_opt_pass along with...
9648 (pass_data_rest_of_compilation): ...new pass_data instance and...
9649 (make_pass_rest_of_compilation): ...new function.
9650 (pass_postreload): Convert from a global struct to a subclass of
9651 rtl_opt_pass along with...
9652 (pass_data_postreload): ...new pass_data instance and...
9653 (make_pass_postreload): ...new function.
9654 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9655 subclass of rtl_opt_pass along with...
9656 (pass_data_gcse2): ...new pass_data instance and...
9657 (make_pass_gcse2): ...new function.
9658 * postreload.c (pass_postreload_cse): Convert from a global struct to
9659 a subclass of rtl_opt_pass along with...
9660 (pass_data_postreload_cse): ...new pass_data instance and...
9661 (make_pass_postreload_cse): ...new function.
9662 * predict.c (pass_profile): Convert from a global struct to a subclass
9663 of gimple_opt_pass along with...
9664 (pass_data_profile): ...new pass_data instance and...
9665 (make_pass_profile): ...new function.
9666 (pass_strip_predict_hints): Convert from a global struct to a subclass
9667 of gimple_opt_pass along with...
9668 (pass_data_strip_predict_hints): ...new pass_data instance and...
9669 (make_pass_strip_predict_hints): ...new function.
9670 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9671 of rtl_opt_pass along with...
9672 (pass_data_peephole2): ...new pass_data instance and...
9673 (make_pass_peephole2): ...new function.
9674 (pass_split_all_insns): Convert from a global struct to a subclass of
9675 rtl_opt_pass along with...
9676 (pass_data_split_all_insns): ...new pass_data instance and...
9677 (make_pass_split_all_insns): ...new function.
9678 (pass_split_after_reload): Convert from a global struct to a subclass
9679 of rtl_opt_pass along with...
9680 (pass_data_split_after_reload): ...new pass_data instance and...
9681 (make_pass_split_after_reload): ...new function.
9682 (pass_split_before_regstack): Convert from a global struct to a
9683 subclass of rtl_opt_pass along with...
9684 (pass_data_split_before_regstack): ...new pass_data instance and...
9685 (make_pass_split_before_regstack): ...new function.
9686 (pass_split_before_sched2): Convert from a global struct to a subclass
9687 of rtl_opt_pass along with...
9688 (pass_data_split_before_sched2): ...new pass_data instance and...
9689 (make_pass_split_before_sched2): ...new function.
9690 (pass_split_for_shorten_branches): Convert from a global struct to a
9691 subclass of rtl_opt_pass along with...
9692 (pass_data_split_for_shorten_branches): ...new pass_data instance
9693 and...
9694 (make_pass_split_for_shorten_branches): ...new function.
9695 * ree.c (pass_ree): Convert from a global struct to a subclass of
9696 rtl_opt_pass along with...
9697 (pass_data_ree): ...new pass_data instance and...
9698 (make_pass_ree): ...new function.
9699 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9700 subclass of rtl_opt_pass along with...
9701 (pass_data_stack_regs): ...new pass_data instance and...
9702 (make_pass_stack_regs): ...new function.
9703 (pass_stack_regs_run): Convert from a global struct to a subclass of
9704 rtl_opt_pass along with...
9705 (pass_data_stack_regs_run): ...new pass_data instance and...
9706 (make_pass_stack_regs_run): ...new function.
9707 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
9708 subclass of rtl_opt_pass along with...
9709 (pass_data_cprop_hardreg): ...new pass_data instance and...
9710 (make_pass_cprop_hardreg): ...new function.
9711 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
9712 subclass of rtl_opt_pass along with...
9713 (pass_data_reginfo_init): ...new pass_data instance and...
9714 (make_pass_reginfo_init): ...new function.
9715 * regmove.c (pass_regmove): Convert from a global struct to a subclass
9716 of rtl_opt_pass along with...
9717 (pass_data_regmove): ...new pass_data instance and...
9718 (make_pass_regmove): ...new function.
9719 * regrename.c (pass_regrename): Convert from a global struct to a
9720 subclass of rtl_opt_pass along with...
9721 (pass_data_regrename): ...new pass_data instance and...
9722 (make_pass_regrename): ...new function.
9723 * reorg.c (pass_delay_slots): Convert from a global struct to a
9724 subclass of rtl_opt_pass along with...
9725 (pass_data_delay_slots): ...new pass_data instance and...
9726 (make_pass_delay_slots): ...new function.
9727 (pass_machine_reorg): Convert from a global struct to a subclass of
9728 rtl_opt_pass along with...
9729 (pass_data_machine_reorg): ...new pass_data instance and...
9730 (make_pass_machine_reorg): ...new function.
9731 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
9732 of rtl_opt_pass along with...
9733 (pass_data_sched): ...new pass_data instance and...
9734 (make_pass_sched): ...new function.
9735 (pass_sched2): Convert from a global struct to a subclass of
9736 rtl_opt_pass along with...
9737 (pass_data_sched2): ...new pass_data instance and...
9738 (make_pass_sched2): ...new function.
9739 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
9740 to a subclass of rtl_opt_pass along with...
9741 (pass_data_stack_ptr_mod): ...new pass_data instance and...
9742 (make_pass_stack_ptr_mod): ...new function.
9743 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
9744 to a subclass of rtl_opt_pass along with...
9745 (pass_data_rtl_store_motion): ...new pass_data instance and...
9746 (make_pass_rtl_store_motion): ...new function.
9747 * tracer.c (pass_tracer): Convert from a global struct to a subclass
9748 of gimple_opt_pass along with...
9749 (pass_data_tracer): ...new pass_data instance and...
9750 (make_pass_tracer): ...new function.
9751 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
9752 to a subclass of gimple_opt_pass along with...
9753 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
9754 (make_pass_diagnose_tm_blocks): ...new function.
9755 (pass_lower_tm): Convert from a global struct to a subclass of
9756 gimple_opt_pass along with...
9757 (pass_data_lower_tm): ...new pass_data instance and...
9758 (make_pass_lower_tm): ...new function.
9759 (pass_tm_init): Convert from a global struct to a subclass of
9760 gimple_opt_pass along with...
9761 (pass_data_tm_init): ...new pass_data instance and...
9762 (make_pass_tm_init): ...new function.
9763 (pass_tm_mark): Convert from a global struct to a subclass of
9764 gimple_opt_pass along with...
9765 (pass_data_tm_mark): ...new pass_data instance and...
9766 (make_pass_tm_mark): ...new function.
9767 (pass_tm_edges): Convert from a global struct to a subclass of
9768 gimple_opt_pass along with...
9769 (pass_data_tm_edges): ...new pass_data instance and...
9770 (make_pass_tm_edges): ...new function.
9771 (pass_tm_memopt): Convert from a global struct to a subclass of
9772 gimple_opt_pass along with...
9773 (pass_data_tm_memopt): ...new pass_data instance and...
9774 (make_pass_tm_memopt): ...new function.
9775 (pass_ipa_tm): Convert from a global struct to a subclass of
9776 simple_ipa_opt_pass along with...
9777 (pass_data_ipa_tm): ...new pass_data instance and...
9778 (make_pass_ipa_tm): ...new function.
9779 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
9780 subclass of gimple_opt_pass along with...
9781 (pass_data_call_cdce): ...new pass_data instance and...
9782 (make_pass_call_cdce): ...new function.
9783 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
9784 subclass of gimple_opt_pass along with...
9785 (pass_data_build_cfg): ...new pass_data instance and...
9786 (make_pass_build_cfg): ...new function.
9787 (pass_split_crit_edges): Convert from a global struct to a subclass of
9788 gimple_opt_pass along with...
9789 (pass_data_split_crit_edges): ...new pass_data instance and...
9790 (make_pass_split_crit_edges): ...new function.
9791 (pass_warn_function_return): Convert from a global struct to a
9792 subclass of gimple_opt_pass along with...
9793 (pass_data_warn_function_return): ...new pass_data instance and...
9794 (make_pass_warn_function_return): ...new function.
9795 (pass_warn_function_noreturn): Convert from a global struct to a
9796 subclass of gimple_opt_pass along with...
9797 (pass_data_warn_function_noreturn): ...new pass_data instance and...
9798 (make_pass_warn_function_noreturn): ...new function.
9799 (pass_warn_unused_result): Convert from a global struct to a subclass
9800 of gimple_opt_pass along with...
9801 (pass_data_warn_unused_result): ...new pass_data instance and...
9802 (make_pass_warn_unused_result): ...new function.
9803 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
9804 a subclass of gimple_opt_pass along with...
9805 (pass_data_merge_phi): ...new pass_data instance and...
9806 (make_pass_merge_phi): ...new function.
9807 * tree-complex.c (pass_lower_complex): Convert from a global struct to
9808 a subclass of gimple_opt_pass along with...
9809 (pass_data_lower_complex): ...new pass_data instance and...
9810 (make_pass_lower_complex): ...new function.
9811 (pass_lower_complex_O0): Convert from a global struct to a subclass of
9812 gimple_opt_pass along with...
9813 (pass_data_lower_complex_O0): ...new pass_data instance and...
9814 (make_pass_lower_complex_O0): ...new function.
9815 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
9816 subclass of gimple_opt_pass along with...
9817 (pass_data_lower_eh): ...new pass_data instance and...
9818 (make_pass_lower_eh): ...new function.
9819 (pass_refactor_eh): Convert from a global struct to a subclass of
9820 gimple_opt_pass along with...
9821 (pass_data_refactor_eh): ...new pass_data instance and...
9822 (make_pass_refactor_eh): ...new function.
9823 (pass_lower_resx): Convert from a global struct to a subclass of
9824 gimple_opt_pass along with...
9825 (pass_data_lower_resx): ...new pass_data instance and...
9826 (make_pass_lower_resx): ...new function.
9827 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
9828 of gimple_opt_pass along with...
9829 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
9830 (make_pass_lower_eh_dispatch): ...new function.
9831 (pass_cleanup_eh): Convert from a global struct to a subclass of
9832 gimple_opt_pass along with...
9833 (pass_data_cleanup_eh): ...new pass_data instance and...
9834 (make_pass_cleanup_eh): ...new function.
9835 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
9836 to a subclass of simple_ipa_opt_pass along with...
9837 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
9838 (make_pass_ipa_lower_emutls): ...new function.
9839 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
9840 a subclass of gimple_opt_pass along with...
9841 (pass_data_if_conversion): ...new pass_data instance and...
9842 (make_pass_if_conversion): ...new function.
9843 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
9844 subclass of gimple_opt_pass along with...
9845 (pass_data_build_ssa): ...new pass_data instance and...
9846 (make_pass_build_ssa): ...new function.
9847 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
9848 global struct to a subclass of gimple_opt_pass along with...
9849 (pass_data_loop_distribution): ...new pass_data instance and...
9850 (make_pass_loop_distribution): ...new function.
9851 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
9852 subclass of gimple_opt_pass along with...
9853 (pass_data_mudflap_1): ...new pass_data instance and...
9854 (make_pass_mudflap_1): ...new function.
9855 (pass_mudflap_2): Convert from a global struct to a subclass of
9856 gimple_opt_pass along with...
9857 (pass_data_mudflap_2): ...new pass_data instance and...
9858 (make_pass_mudflap_2): ...new function.
9859 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
9860 subclass of gimple_opt_pass along with...
9861 (pass_data_mudflap_1): ...new pass_data instance and...
9862 (make_pass_mudflap_1): ...new function.
9863 (pass_mudflap_2): Convert from a global struct to a subclass of
9864 gimple_opt_pass along with...
9865 (pass_data_mudflap_2): ...new pass_data instance and...
9866 (make_pass_mudflap_2): ...new function.
9867 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
9868 gimple_opt_pass along with...
9869 (pass_data_nrv): ...new pass_data instance and...
9870 (make_pass_nrv): ...new function.
9871 (pass_return_slot): Convert from a global struct to a subclass of
9872 gimple_opt_pass along with...
9873 (pass_data_return_slot): ...new pass_data instance and...
9874 (make_pass_return_slot): ...new function.
9875 * tree-object-size.c (pass_object_sizes): Convert from a global struct
9876 to a subclass of gimple_opt_pass along with...
9877 (pass_data_object_sizes): ...new pass_data instance and...
9878 (make_pass_object_sizes): ...new function.
9879 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
9880 global struct to a subclass of gimple_opt_pass along with...
9881 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
9882 and...
9883 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9884 (pass_fixup_cfg): Convert from a global struct to a subclass of
9885 gimple_opt_pass along with...
9886 (pass_data_fixup_cfg): ...new pass_data instance and...
9887 (make_pass_fixup_cfg): ...new function.
9888 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
9889 (make_pass_mudflap_1): ...new function.
9890 (pass_mudflap_2): Replace declaration with that of...
9891 (make_pass_mudflap_2): ...new function.
9892 (pass_asan): Replace declaration with that of...
9893 (make_pass_asan): ...new function.
9894 (pass_asan_O0): Replace declaration with that of...
9895 (make_pass_asan_O0): ...new function.
9896 (pass_tsan): Replace declaration with that of...
9897 (make_pass_tsan): ...new function.
9898 (pass_tsan_O0): Replace declaration with that of...
9899 (make_pass_tsan_O0): ...new function.
9900 (pass_lower_cf): Replace declaration with that of...
9901 (make_pass_lower_cf): ...new function.
9902 (pass_refactor_eh): Replace declaration with that of...
9903 (make_pass_refactor_eh): ...new function.
9904 (pass_lower_eh): Replace declaration with that of...
9905 (make_pass_lower_eh): ...new function.
9906 (pass_lower_eh_dispatch): Replace declaration with that of...
9907 (make_pass_lower_eh_dispatch): ...new function.
9908 (pass_lower_resx): Replace declaration with that of...
9909 (make_pass_lower_resx): ...new function.
9910 (pass_build_cfg): Replace declaration with that of...
9911 (make_pass_build_cfg): ...new function.
9912 (pass_early_tree_profile): Replace declaration with that of...
9913 (make_pass_early_tree_profile): ...new function.
9914 (pass_cleanup_eh): Replace declaration with that of...
9915 (make_pass_cleanup_eh): ...new function.
9916 (pass_sra): Replace declaration with that of...
9917 (make_pass_sra): ...new function.
9918 (pass_sra_early): Replace declaration with that of...
9919 (make_pass_sra_early): ...new function.
9920 (pass_early_ipa_sra): Replace declaration with that of...
9921 (make_pass_early_ipa_sra): ...new function.
9922 (pass_tail_recursion): Replace declaration with that of...
9923 (make_pass_tail_recursion): ...new function.
9924 (pass_tail_calls): Replace declaration with that of...
9925 (make_pass_tail_calls): ...new function.
9926 (pass_tree_loop): Replace declaration with that of...
9927 (make_pass_tree_loop): ...new function.
9928 (pass_tree_loop_init): Replace declaration with that of...
9929 (make_pass_tree_loop_init): ...new function.
9930 (pass_lim): Replace declaration with that of...
9931 (make_pass_lim): ...new function.
9932 (pass_tree_unswitch): Replace declaration with that of...
9933 (make_pass_tree_unswitch): ...new function.
9934 (pass_predcom): Replace declaration with that of...
9935 (make_pass_predcom): ...new function.
9936 (pass_iv_canon): Replace declaration with that of...
9937 (make_pass_iv_canon): ...new function.
9938 (pass_scev_cprop): Replace declaration with that of...
9939 (make_pass_scev_cprop): ...new function.
9940 (pass_empty_loop): Replace declaration with that of...
9941 (make_pass_empty_loop): ...new function.
9942 (pass_record_bounds): Replace declaration with that of...
9943 (make_pass_record_bounds): ...new function.
9944 (pass_graphite): Replace declaration with that of...
9945 (make_pass_graphite): ...new function.
9946 (pass_graphite_transforms): Replace declaration with that of...
9947 (make_pass_graphite_transforms): ...new function.
9948 (pass_if_conversion): Replace declaration with that of...
9949 (make_pass_if_conversion): ...new function.
9950 (pass_loop_distribution): Replace declaration with that of...
9951 (make_pass_loop_distribution): ...new function.
9952 (pass_vectorize): Replace declaration with that of...
9953 (make_pass_vectorize): ...new function.
9954 (pass_slp_vectorize): Replace declaration with that of...
9955 (make_pass_slp_vectorize): ...new function.
9956 (pass_complete_unroll): Replace declaration with that of...
9957 (make_pass_complete_unroll): ...new function.
9958 (pass_complete_unrolli): Replace declaration with that of...
9959 (make_pass_complete_unrolli): ...new function.
9960 (pass_parallelize_loops): Replace declaration with that of...
9961 (make_pass_parallelize_loops): ...new function.
9962 (pass_loop_prefetch): Replace declaration with that of...
9963 (make_pass_loop_prefetch): ...new function.
9964 (pass_iv_optimize): Replace declaration with that of...
9965 (make_pass_iv_optimize): ...new function.
9966 (pass_tree_loop_done): Replace declaration with that of...
9967 (make_pass_tree_loop_done): ...new function.
9968 (pass_ch): Replace declaration with that of...
9969 (make_pass_ch): ...new function.
9970 (pass_ccp): Replace declaration with that of...
9971 (make_pass_ccp): ...new function.
9972 (pass_phi_only_cprop): Replace declaration with that of...
9973 (make_pass_phi_only_cprop): ...new function.
9974 (pass_build_ssa): Replace declaration with that of...
9975 (make_pass_build_ssa): ...new function.
9976 (pass_build_alias): Replace declaration with that of...
9977 (make_pass_build_alias): ...new function.
9978 (pass_build_ealias): Replace declaration with that of...
9979 (make_pass_build_ealias): ...new function.
9980 (pass_dominator): Replace declaration with that of...
9981 (make_pass_dominator): ...new function.
9982 (pass_dce): Replace declaration with that of...
9983 (make_pass_dce): ...new function.
9984 (pass_dce_loop): Replace declaration with that of...
9985 (make_pass_dce_loop): ...new function.
9986 (pass_cd_dce): Replace declaration with that of...
9987 (make_pass_cd_dce): ...new function.
9988 (pass_call_cdce): Replace declaration with that of...
9989 (make_pass_call_cdce): ...new function.
9990 (pass_merge_phi): Replace declaration with that of...
9991 (make_pass_merge_phi): ...new function.
9992 (pass_split_crit_edges): Replace declaration with that of...
9993 (make_pass_split_crit_edges): ...new function.
9994 (pass_pre): Replace declaration with that of...
9995 (make_pass_pre): ...new function.
9996 (pass_profile): Replace declaration with that of...
9997 (make_pass_profile): ...new function.
9998 (pass_strip_predict_hints): Replace declaration with that of...
9999 (make_pass_strip_predict_hints): ...new function.
10000 (pass_lower_complex_O0): Replace declaration with that of...
10001 (make_pass_lower_complex_O0): ...new function.
10002 (pass_lower_complex): Replace declaration with that of...
10003 (make_pass_lower_complex): ...new function.
10004 (pass_lower_vector): Replace declaration with that of...
10005 (make_pass_lower_vector): ...new function.
10006 (pass_lower_vector_ssa): Replace declaration with that of...
10007 (make_pass_lower_vector_ssa): ...new function.
10008 (pass_lower_omp): Replace declaration with that of...
10009 (make_pass_lower_omp): ...new function.
10010 (pass_diagnose_omp_blocks): Replace declaration with that of...
10011 (make_pass_diagnose_omp_blocks): ...new function.
10012 (pass_expand_omp): Replace declaration with that of...
10013 (make_pass_expand_omp): ...new function.
10014 (pass_expand_omp_ssa): Replace declaration with that of...
10015 (make_pass_expand_omp_ssa): ...new function.
10016 (pass_object_sizes): Replace declaration with that of...
10017 (make_pass_object_sizes): ...new function.
10018 (pass_strlen): Replace declaration with that of...
10019 (make_pass_strlen): ...new function.
10020 (pass_fold_builtins): Replace declaration with that of...
10021 (make_pass_fold_builtins): ...new function.
10022 (pass_stdarg): Replace declaration with that of...
10023 (make_pass_stdarg): ...new function.
10024 (pass_early_warn_uninitialized): Replace declaration with that of...
10025 (make_pass_early_warn_uninitialized): ...new function.
10026 (pass_late_warn_uninitialized): Replace declaration with that of...
10027 (make_pass_late_warn_uninitialized): ...new function.
10028 (pass_cse_reciprocals): Replace declaration with that of...
10029 (make_pass_cse_reciprocals): ...new function.
10030 (pass_cse_sincos): Replace declaration with that of...
10031 (make_pass_cse_sincos): ...new function.
10032 (pass_optimize_bswap): Replace declaration with that of...
10033 (make_pass_optimize_bswap): ...new function.
10034 (pass_optimize_widening_mul): Replace declaration with that of...
10035 (make_pass_optimize_widening_mul): ...new function.
10036 (pass_warn_function_return): Replace declaration with that of...
10037 (make_pass_warn_function_return): ...new function.
10038 (pass_warn_function_noreturn): Replace declaration with that of...
10039 (make_pass_warn_function_noreturn): ...new function.
10040 (pass_cselim): Replace declaration with that of...
10041 (make_pass_cselim): ...new function.
10042 (pass_phiopt): Replace declaration with that of...
10043 (make_pass_phiopt): ...new function.
10044 (pass_forwprop): Replace declaration with that of...
10045 (make_pass_forwprop): ...new function.
10046 (pass_phiprop): Replace declaration with that of...
10047 (make_pass_phiprop): ...new function.
10048 (pass_tree_ifcombine): Replace declaration with that of...
10049 (make_pass_tree_ifcombine): ...new function.
10050 (pass_dse): Replace declaration with that of...
10051 (make_pass_dse): ...new function.
10052 (pass_nrv): Replace declaration with that of...
10053 (make_pass_nrv): ...new function.
10054 (pass_rename_ssa_copies): Replace declaration with that of...
10055 (make_pass_rename_ssa_copies): ...new function.
10056 (pass_sink_code): Replace declaration with that of...
10057 (make_pass_sink_code): ...new function.
10058 (pass_fre): Replace declaration with that of...
10059 (make_pass_fre): ...new function.
10060 (pass_check_data_deps): Replace declaration with that of...
10061 (make_pass_check_data_deps): ...new function.
10062 (pass_copy_prop): Replace declaration with that of...
10063 (make_pass_copy_prop): ...new function.
10064 (pass_vrp): Replace declaration with that of...
10065 (make_pass_vrp): ...new function.
10066 (pass_uncprop): Replace declaration with that of...
10067 (make_pass_uncprop): ...new function.
10068 (pass_return_slot): Replace declaration with that of...
10069 (make_pass_return_slot): ...new function.
10070 (pass_reassoc): Replace declaration with that of...
10071 (make_pass_reassoc): ...new function.
10072 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10073 (make_pass_rebuild_cgraph_edges): ...new function.
10074 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10075 (make_pass_remove_cgraph_callee_edges): ...new function.
10076 (pass_build_cgraph_edges): Replace declaration with that of...
10077 (make_pass_build_cgraph_edges): ...new function.
10078 (pass_local_pure_const): Replace declaration with that of...
10079 (make_pass_local_pure_const): ...new function.
10080 (pass_tracer): Replace declaration with that of...
10081 (make_pass_tracer): ...new function.
10082 (pass_warn_unused_result): Replace declaration with that of...
10083 (make_pass_warn_unused_result): ...new function.
10084 (pass_diagnose_tm_blocks): Replace declaration with that of...
10085 (make_pass_diagnose_tm_blocks): ...new function.
10086 (pass_lower_tm): Replace declaration with that of...
10087 (make_pass_lower_tm): ...new function.
10088 (pass_tm_init): Replace declaration with that of...
10089 (make_pass_tm_init): ...new function.
10090 (pass_tm_mark): Replace declaration with that of...
10091 (make_pass_tm_mark): ...new function.
10092 (pass_tm_memopt): Replace declaration with that of...
10093 (make_pass_tm_memopt): ...new function.
10094 (pass_tm_edges): Replace declaration with that of...
10095 (make_pass_tm_edges): ...new function.
10096 (pass_split_functions): Replace declaration with that of...
10097 (make_pass_split_functions): ...new function.
10098 (pass_feedback_split_functions): Replace declaration with that of...
10099 (make_pass_feedback_split_functions): ...new function.
10100 (pass_strength_reduction): Replace declaration with that of...
10101 (make_pass_strength_reduction): ...new function.
10102 (pass_ipa_lower_emutls): Replace declaration with that of...
10103 (make_pass_ipa_lower_emutls): ...new function.
10104 (pass_ipa_function_and_variable_visibility): Replace declaration with
10105 that of...
10106 (make_pass_ipa_function_and_variable_visibility): ...new function.
10107 (pass_ipa_tree_profile): Replace declaration with that of...
10108 (make_pass_ipa_tree_profile): ...new function.
10109 (pass_early_local_passes): Replace declaration with that of...
10110 (make_pass_early_local_passes): ...new function.
10111 (pass_ipa_whole_program_visibility): Replace declaration with that
10112 of...
10113 (make_pass_ipa_whole_program_visibility): ...new function.
10114 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10115 (make_pass_ipa_lto_gimple_out): ...new function.
10116 (pass_ipa_increase_alignment): Replace declaration with that of...
10117 (make_pass_ipa_increase_alignment): ...new function.
10118 (pass_ipa_inline): Replace declaration with that of...
10119 (make_pass_ipa_inline): ...new function.
10120 (pass_ipa_free_lang_data): Replace declaration with that of...
10121 (make_pass_ipa_free_lang_data): ...new function.
10122 (pass_ipa_free_inline_summary): Replace declaration with that of...
10123 (make_pass_ipa_free_inline_summary): ...new function.
10124 (pass_ipa_cp): Replace declaration with that of...
10125 (make_pass_ipa_cp): ...new function.
10126 (pass_ipa_reference): Replace declaration with that of...
10127 (make_pass_ipa_reference): ...new function.
10128 (pass_ipa_pure_const): Replace declaration with that of...
10129 (make_pass_ipa_pure_const): ...new function.
10130 (pass_ipa_pta): Replace declaration with that of...
10131 (make_pass_ipa_pta): ...new function.
10132 (pass_ipa_lto_finish_out): Replace declaration with that of...
10133 (make_pass_ipa_lto_finish_out): ...new function.
10134 (pass_ipa_tm): Replace declaration with that of...
10135 (make_pass_ipa_tm): ...new function.
10136 (pass_ipa_profile): Replace declaration with that of...
10137 (make_pass_ipa_profile): ...new function.
10138 (pass_ipa_cdtor_merge): Replace declaration with that of...
10139 (make_pass_ipa_cdtor_merge): ...new function.
10140 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10141 of...
10142 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10143 (pass_init_datastructures): Replace declaration with that of...
10144 (make_pass_init_datastructures): ...new function.
10145 (pass_fixup_cfg): Replace declaration with that of...
10146 (make_pass_fixup_cfg): ...new function.
10147 (pass_expand): Replace declaration with that of...
10148 (make_pass_expand): ...new function.
10149 (pass_instantiate_virtual_regs): Replace declaration with that of...
10150 (make_pass_instantiate_virtual_regs): ...new function.
10151 (pass_rtl_fwprop): Replace declaration with that of...
10152 (make_pass_rtl_fwprop): ...new function.
10153 (pass_rtl_fwprop_addr): Replace declaration with that of...
10154 (make_pass_rtl_fwprop_addr): ...new function.
10155 (pass_jump): Replace declaration with that of...
10156 (make_pass_jump): ...new function.
10157 (pass_jump2): Replace declaration with that of...
10158 (make_pass_jump2): ...new function.
10159 (pass_lower_subreg): Replace declaration with that of...
10160 (make_pass_lower_subreg): ...new function.
10161 (pass_cse): Replace declaration with that of...
10162 (make_pass_cse): ...new function.
10163 (pass_fast_rtl_dce): Replace declaration with that of...
10164 (make_pass_fast_rtl_dce): ...new function.
10165 (pass_ud_rtl_dce): Replace declaration with that of...
10166 (make_pass_ud_rtl_dce): ...new function.
10167 (pass_rtl_dce): Replace declaration with that of...
10168 (make_pass_rtl_dce): ...new function.
10169 (pass_rtl_dse1): Replace declaration with that of...
10170 (make_pass_rtl_dse1): ...new function.
10171 (pass_rtl_dse2): Replace declaration with that of...
10172 (make_pass_rtl_dse2): ...new function.
10173 (pass_rtl_dse3): Replace declaration with that of...
10174 (make_pass_rtl_dse3): ...new function.
10175 (pass_rtl_cprop): Replace declaration with that of...
10176 (make_pass_rtl_cprop): ...new function.
10177 (pass_rtl_pre): Replace declaration with that of...
10178 (make_pass_rtl_pre): ...new function.
10179 (pass_rtl_hoist): Replace declaration with that of...
10180 (make_pass_rtl_hoist): ...new function.
10181 (pass_rtl_store_motion): Replace declaration with that of...
10182 (make_pass_rtl_store_motion): ...new function.
10183 (pass_cse_after_global_opts): Replace declaration with that of...
10184 (make_pass_cse_after_global_opts): ...new function.
10185 (pass_rtl_ifcvt): Replace declaration with that of...
10186 (make_pass_rtl_ifcvt): ...new function.
10187 (pass_into_cfg_layout_mode): Replace declaration with that of...
10188 (make_pass_into_cfg_layout_mode): ...new function.
10189 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10190 (make_pass_outof_cfg_layout_mode): ...new function.
10191 (pass_loop2): Replace declaration with that of...
10192 (make_pass_loop2): ...new function.
10193 (pass_rtl_loop_init): Replace declaration with that of...
10194 (make_pass_rtl_loop_init): ...new function.
10195 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10196 (make_pass_rtl_move_loop_invariants): ...new function.
10197 (pass_rtl_unswitch): Replace declaration with that of...
10198 (make_pass_rtl_unswitch): ...new function.
10199 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10200 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10201 (pass_rtl_doloop): Replace declaration with that of...
10202 (make_pass_rtl_doloop): ...new function.
10203 (pass_rtl_loop_done): Replace declaration with that of...
10204 (make_pass_rtl_loop_done): ...new function.
10205 (pass_web): Replace declaration with that of...
10206 (make_pass_web): ...new function.
10207 (pass_cse2): Replace declaration with that of...
10208 (make_pass_cse2): ...new function.
10209 (pass_df_initialize_opt): Replace declaration with that of...
10210 (make_pass_df_initialize_opt): ...new function.
10211 (pass_df_initialize_no_opt): Replace declaration with that of...
10212 (make_pass_df_initialize_no_opt): ...new function.
10213 (pass_reginfo_init): Replace declaration with that of...
10214 (make_pass_reginfo_init): ...new function.
10215 (pass_inc_dec): Replace declaration with that of...
10216 (make_pass_inc_dec): ...new function.
10217 (pass_stack_ptr_mod): Replace declaration with that of...
10218 (make_pass_stack_ptr_mod): ...new function.
10219 (pass_initialize_regs): Replace declaration with that of...
10220 (make_pass_initialize_regs): ...new function.
10221 (pass_combine): Replace declaration with that of...
10222 (make_pass_combine): ...new function.
10223 (pass_if_after_combine): Replace declaration with that of...
10224 (make_pass_if_after_combine): ...new function.
10225 (pass_ree): Replace declaration with that of...
10226 (make_pass_ree): ...new function.
10227 (pass_partition_blocks): Replace declaration with that of...
10228 (make_pass_partition_blocks): ...new function.
10229 (pass_match_asm_constraints): Replace declaration with that of...
10230 (make_pass_match_asm_constraints): ...new function.
10231 (pass_regmove): Replace declaration with that of...
10232 (make_pass_regmove): ...new function.
10233 (pass_split_all_insns): Replace declaration with that of...
10234 (make_pass_split_all_insns): ...new function.
10235 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10236 (make_pass_fast_rtl_byte_dce): ...new function.
10237 (pass_lower_subreg2): Replace declaration with that of...
10238 (make_pass_lower_subreg2): ...new function.
10239 (pass_mode_switching): Replace declaration with that of...
10240 (make_pass_mode_switching): ...new function.
10241 (pass_sms): Replace declaration with that of...
10242 (make_pass_sms): ...new function.
10243 (pass_sched): Replace declaration with that of...
10244 (make_pass_sched): ...new function.
10245 (pass_ira): Replace declaration with that of...
10246 (make_pass_ira): ...new function.
10247 (pass_reload): Replace declaration with that of...
10248 (make_pass_reload): ...new function.
10249 (pass_clean_state): Replace declaration with that of...
10250 (make_pass_clean_state): ...new function.
10251 (pass_branch_prob): Replace declaration with that of...
10252 (make_pass_branch_prob): ...new function.
10253 (pass_value_profile_transformations): Replace declaration with that
10254 of...
10255 (make_pass_value_profile_transformations): ...new function.
10256 (pass_postreload_cse): Replace declaration with that of...
10257 (make_pass_postreload_cse): ...new function.
10258 (pass_gcse2): Replace declaration with that of...
10259 (make_pass_gcse2): ...new function.
10260 (pass_split_after_reload): Replace declaration with that of...
10261 (make_pass_split_after_reload): ...new function.
10262 (pass_branch_target_load_optimize1): Replace declaration with that
10263 of...
10264 (make_pass_branch_target_load_optimize1): ...new function.
10265 (pass_thread_prologue_and_epilogue): Replace declaration with that
10266 of...
10267 (make_pass_thread_prologue_and_epilogue): ...new function.
10268 (pass_stack_adjustments): Replace declaration with that of...
10269 (make_pass_stack_adjustments): ...new function.
10270 (pass_peephole2): Replace declaration with that of...
10271 (make_pass_peephole2): ...new function.
10272 (pass_if_after_reload): Replace declaration with that of...
10273 (make_pass_if_after_reload): ...new function.
10274 (pass_regrename): Replace declaration with that of...
10275 (make_pass_regrename): ...new function.
10276 (pass_cprop_hardreg): Replace declaration with that of...
10277 (make_pass_cprop_hardreg): ...new function.
10278 (pass_reorder_blocks): Replace declaration with that of...
10279 (make_pass_reorder_blocks): ...new function.
10280 (pass_branch_target_load_optimize2): Replace declaration with that
10281 of...
10282 (make_pass_branch_target_load_optimize2): ...new function.
10283 (pass_leaf_regs): Replace declaration with that of...
10284 (make_pass_leaf_regs): ...new function.
10285 (pass_split_before_sched2): Replace declaration with that of...
10286 (make_pass_split_before_sched2): ...new function.
10287 (pass_compare_elim_after_reload): Replace declaration with that of...
10288 (make_pass_compare_elim_after_reload): ...new function.
10289 (pass_sched2): Replace declaration with that of...
10290 (make_pass_sched2): ...new function.
10291 (pass_stack_regs): Replace declaration with that of...
10292 (make_pass_stack_regs): ...new function.
10293 (pass_stack_regs_run): Replace declaration with that of...
10294 (make_pass_stack_regs_run): ...new function.
10295 (pass_df_finish): Replace declaration with that of...
10296 (make_pass_df_finish): ...new function.
10297 (pass_compute_alignments): Replace declaration with that of...
10298 (make_pass_compute_alignments): ...new function.
10299 (pass_duplicate_computed_gotos): Replace declaration with that of...
10300 (make_pass_duplicate_computed_gotos): ...new function.
10301 (pass_variable_tracking): Replace declaration with that of...
10302 (make_pass_variable_tracking): ...new function.
10303 (pass_free_cfg): Replace declaration with that of...
10304 (make_pass_free_cfg): ...new function.
10305 (pass_machine_reorg): Replace declaration with that of...
10306 (make_pass_machine_reorg): ...new function.
10307 (pass_cleanup_barriers): Replace declaration with that of...
10308 (make_pass_cleanup_barriers): ...new function.
10309 (pass_delay_slots): Replace declaration with that of...
10310 (make_pass_delay_slots): ...new function.
10311 (pass_split_for_shorten_branches): Replace declaration with that of...
10312 (make_pass_split_for_shorten_branches): ...new function.
10313 (pass_split_before_regstack): Replace declaration with that of...
10314 (make_pass_split_before_regstack): ...new function.
10315 (pass_convert_to_eh_region_ranges): Replace declaration with that
10316 of...
10317 (make_pass_convert_to_eh_region_ranges): ...new function.
10318 (pass_shorten_branches): Replace declaration with that of...
10319 (make_pass_shorten_branches): ...new function.
10320 (pass_set_nothrow_function_flags): Replace declaration with that of...
10321 (make_pass_set_nothrow_function_flags): ...new function.
10322 (pass_dwarf2_frame): Replace declaration with that of...
10323 (make_pass_dwarf2_frame): ...new function.
10324 (pass_final): Replace declaration with that of...
10325 (make_pass_final): ...new function.
10326 (pass_rtl_seqabstr): Replace declaration with that of...
10327 (make_pass_rtl_seqabstr): ...new function.
10328 (pass_release_ssa_names): Replace declaration with that of...
10329 (make_pass_release_ssa_names): ...new function.
10330 (pass_early_inline): Replace declaration with that of...
10331 (make_pass_early_inline): ...new function.
10332 (pass_inline_parameters): Replace declaration with that of...
10333 (make_pass_inline_parameters): ...new function.
10334 (pass_update_address_taken): Replace declaration with that of...
10335 (make_pass_update_address_taken): ...new function.
10336 (pass_convert_switch): Replace declaration with that of...
10337 (make_pass_convert_switch): ...new function.
10338 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10339 to a subclass of simple_ipa_opt_pass along with...
10340 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10341 (make_pass_ipa_tree_profile): ...new function.
10342 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10343 subclass of gimple_opt_pass along with...
10344 (pass_data_sra_early): ...new pass_data instance and...
10345 (make_pass_sra_early): ...new function.
10346 (pass_sra): Convert from a global struct to a subclass of
10347 gimple_opt_pass along with...
10348 (pass_data_sra): ...new pass_data instance and...
10349 (make_pass_sra): ...new function.
10350 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10351 gimple_opt_pass along with...
10352 (pass_data_early_ipa_sra): ...new pass_data instance and...
10353 (make_pass_early_ipa_sra): ...new function.
10354 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10355 subclass of gimple_opt_pass along with...
10356 (pass_data_ccp): ...new pass_data instance and...
10357 (make_pass_ccp): ...new function.
10358 (pass_fold_builtins): Convert from a global struct to a subclass of
10359 gimple_opt_pass along with...
10360 (pass_data_fold_builtins): ...new pass_data instance and...
10361 (make_pass_fold_builtins): ...new function.
10362 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10363 subclass of gimple_opt_pass along with...
10364 (pass_data_copy_prop): ...new pass_data instance and...
10365 (make_pass_copy_prop): ...new function.
10366 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10367 global struct to a subclass of gimple_opt_pass along with...
10368 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10369 (make_pass_rename_ssa_copies): ...new function.
10370 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10371 subclass of gimple_opt_pass along with...
10372 (pass_data_dce): ...new pass_data instance and...
10373 (make_pass_dce): ...new function.
10374 (pass_dce_loop): Convert from a global struct to a subclass of
10375 gimple_opt_pass along with...
10376 (pass_data_dce_loop): ...new pass_data instance and...
10377 (make_pass_dce_loop): ...new function.
10378 (pass_cd_dce): Convert from a global struct to a subclass of
10379 gimple_opt_pass along with...
10380 (pass_data_cd_dce): ...new pass_data instance and...
10381 (make_pass_cd_dce): ...new function.
10382 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10383 subclass of gimple_opt_pass along with...
10384 (pass_data_dominator): ...new pass_data instance and...
10385 (make_pass_dominator): ...new function.
10386 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10387 gimple_opt_pass along with...
10388 (pass_data_phi_only_cprop): ...new pass_data instance and...
10389 (make_pass_phi_only_cprop): ...new function.
10390 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10391 subclass of gimple_opt_pass along with...
10392 (pass_data_dse): ...new pass_data instance and...
10393 (make_pass_dse): ...new function.
10394 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10395 a subclass of gimple_opt_pass along with...
10396 (pass_data_forwprop): ...new pass_data instance and...
10397 (make_pass_forwprop): ...new function.
10398 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10399 struct to a subclass of gimple_opt_pass along with...
10400 (pass_data_tree_ifcombine): ...new pass_data instance and...
10401 (make_pass_tree_ifcombine): ...new function.
10402 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10403 subclass of gimple_opt_pass along with...
10404 (pass_data_ch): ...new pass_data instance and...
10405 (make_pass_ch): ...new function.
10406 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10407 subclass of gimple_opt_pass along with...
10408 (pass_data_tree_loop): ...new pass_data instance and...
10409 (make_pass_tree_loop): ...new function.
10410 (pass_tree_loop_init): Convert from a global struct to a subclass of
10411 gimple_opt_pass along with...
10412 (pass_data_tree_loop_init): ...new pass_data instance and...
10413 (make_pass_tree_loop_init): ...new function.
10414 (pass_lim): Convert from a global struct to a subclass of
10415 gimple_opt_pass along with...
10416 (pass_data_lim): ...new pass_data instance and...
10417 (make_pass_lim): ...new function.
10418 (pass_tree_unswitch): Convert from a global struct to a subclass of
10419 gimple_opt_pass along with...
10420 (pass_data_tree_unswitch): ...new pass_data instance and...
10421 (make_pass_tree_unswitch): ...new function.
10422 (pass_predcom): Convert from a global struct to a subclass of
10423 gimple_opt_pass along with...
10424 (pass_data_predcom): ...new pass_data instance and...
10425 (make_pass_predcom): ...new function.
10426 (pass_vectorize): Convert from a global struct to a subclass of
10427 gimple_opt_pass along with...
10428 (pass_data_vectorize): ...new pass_data instance and...
10429 (make_pass_vectorize): ...new function.
10430 (pass_graphite): Convert from a global struct to a subclass of
10431 gimple_opt_pass along with...
10432 (pass_data_graphite): ...new pass_data instance and...
10433 (make_pass_graphite): ...new function.
10434 (pass_graphite_transforms): Convert from a global struct to a subclass
10435 of gimple_opt_pass along with...
10436 (pass_data_graphite_transforms): ...new pass_data instance and...
10437 (make_pass_graphite_transforms): ...new function.
10438 (pass_check_data_deps): Convert from a global struct to a subclass of
10439 gimple_opt_pass along with...
10440 (pass_data_check_data_deps): ...new pass_data instance and...
10441 (make_pass_check_data_deps): ...new function.
10442 (pass_iv_canon): Convert from a global struct to a subclass of
10443 gimple_opt_pass along with...
10444 (pass_data_iv_canon): ...new pass_data instance and...
10445 (make_pass_iv_canon): ...new function.
10446 (pass_scev_cprop): Convert from a global struct to a subclass of
10447 gimple_opt_pass along with...
10448 (pass_data_scev_cprop): ...new pass_data instance and...
10449 (make_pass_scev_cprop): ...new function.
10450 (pass_record_bounds): Convert from a global struct to a subclass of
10451 gimple_opt_pass along with...
10452 (pass_data_record_bounds): ...new pass_data instance and...
10453 (make_pass_record_bounds): ...new function.
10454 (pass_complete_unroll): Convert from a global struct to a subclass of
10455 gimple_opt_pass along with...
10456 (pass_data_complete_unroll): ...new pass_data instance and...
10457 (make_pass_complete_unroll): ...new function.
10458 (pass_complete_unrolli): Convert from a global struct to a subclass of
10459 gimple_opt_pass along with...
10460 (pass_data_complete_unrolli): ...new pass_data instance and...
10461 (make_pass_complete_unrolli): ...new function.
10462 (pass_parallelize_loops): Convert from a global struct to a subclass
10463 of gimple_opt_pass along with...
10464 (pass_data_parallelize_loops): ...new pass_data instance and...
10465 (make_pass_parallelize_loops): ...new function.
10466 (pass_loop_prefetch): Convert from a global struct to a subclass of
10467 gimple_opt_pass along with...
10468 (pass_data_loop_prefetch): ...new pass_data instance and...
10469 (make_pass_loop_prefetch): ...new function.
10470 (pass_iv_optimize): Convert from a global struct to a subclass of
10471 gimple_opt_pass along with...
10472 (pass_data_iv_optimize): ...new pass_data instance and...
10473 (make_pass_iv_optimize): ...new function.
10474 (pass_tree_loop_done): Convert from a global struct to a subclass of
10475 gimple_opt_pass along with...
10476 (pass_data_tree_loop_done): ...new pass_data instance and...
10477 (make_pass_tree_loop_done): ...new function.
10478 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10479 struct to a subclass of gimple_opt_pass along with...
10480 (pass_data_cse_reciprocals): ...new pass_data instance and...
10481 (make_pass_cse_reciprocals): ...new function.
10482 (pass_cse_sincos): Convert from a global struct to a subclass of
10483 gimple_opt_pass along with...
10484 (pass_data_cse_sincos): ...new pass_data instance and...
10485 (make_pass_cse_sincos): ...new function.
10486 (pass_optimize_bswap): Convert from a global struct to a subclass of
10487 gimple_opt_pass along with...
10488 (pass_data_optimize_bswap): ...new pass_data instance and...
10489 (make_pass_optimize_bswap): ...new function.
10490 (pass_optimize_widening_mul): Convert from a global struct to a
10491 subclass of gimple_opt_pass along with...
10492 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10493 (make_pass_optimize_widening_mul): ...new function.
10494 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10495 subclass of gimple_opt_pass along with...
10496 (pass_data_phiopt): ...new pass_data instance and...
10497 (make_pass_phiopt): ...new function.
10498 (pass_cselim): Convert from a global struct to a subclass of
10499 gimple_opt_pass along with...
10500 (pass_data_cselim): ...new pass_data instance and...
10501 (make_pass_cselim): ...new function.
10502 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10503 subclass of gimple_opt_pass along with...
10504 (pass_data_phiprop): ...new pass_data instance and...
10505 (make_pass_phiprop): ...new function.
10506 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10507 subclass of gimple_opt_pass along with...
10508 (pass_data_pre): ...new pass_data instance and...
10509 (make_pass_pre): ...new function.
10510 (pass_fre): Convert from a global struct to a subclass of
10511 gimple_opt_pass along with...
10512 (pass_data_fre): ...new pass_data instance and...
10513 (make_pass_fre): ...new function.
10514 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10515 subclass of gimple_opt_pass along with...
10516 (pass_data_reassoc): ...new pass_data instance and...
10517 (make_pass_reassoc): ...new function.
10518 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10519 subclass of gimple_opt_pass along with...
10520 (pass_data_sink_code): ...new pass_data instance and...
10521 (make_pass_sink_code): ...new function.
10522 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10523 subclass of gimple_opt_pass along with...
10524 (pass_data_strlen): ...new pass_data instance and...
10525 (make_pass_strlen): ...new function.
10526 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10527 struct to a subclass of gimple_opt_pass along with...
10528 (pass_data_build_alias): ...new pass_data instance and...
10529 (make_pass_build_alias): ...new function.
10530 (pass_build_ealias): Convert from a global struct to a subclass of
10531 gimple_opt_pass along with...
10532 (pass_data_build_ealias): ...new pass_data instance and...
10533 (make_pass_build_ealias): ...new function.
10534 (pass_ipa_pta): Convert from a global struct to a subclass of
10535 simple_ipa_opt_pass along with...
10536 (pass_data_ipa_pta): ...new pass_data instance and...
10537 (make_pass_ipa_pta): ...new function.
10538 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10539 subclass of gimple_opt_pass along with...
10540 (pass_data_uncprop): ...new pass_data instance and...
10541 (make_pass_uncprop): ...new function.
10542 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10543 global struct to a subclass of gimple_opt_pass along with...
10544 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10545 (make_pass_late_warn_uninitialized): ...new function.
10546 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10547 to a subclass of gimple_opt_pass along with...
10548 (pass_data_init_datastructures): ...new pass_data instance and...
10549 (make_pass_init_datastructures): ...new function.
10550 (pass_early_warn_uninitialized): Convert from a global struct to a
10551 subclass of gimple_opt_pass along with...
10552 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10553 (make_pass_early_warn_uninitialized): ...new function.
10554 (pass_update_address_taken): Convert from a global struct to a
10555 subclass of gimple_opt_pass along with...
10556 (pass_data_update_address_taken): ...new pass_data instance and...
10557 (make_pass_update_address_taken): ...new function.
10558 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10559 struct to a subclass of gimple_opt_pass along with...
10560 (pass_data_release_ssa_names): ...new pass_data instance and...
10561 (make_pass_release_ssa_names): ...new function.
10562 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10563 subclass of gimple_opt_pass along with...
10564 (pass_data_stdarg): ...new pass_data instance and...
10565 (make_pass_stdarg): ...new function.
10566 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10567 global struct to a subclass of gimple_opt_pass along with...
10568 (pass_data_convert_switch): ...new pass_data instance and...
10569 (make_pass_convert_switch): ...new function.
10570 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10571 to a subclass of gimple_opt_pass along with...
10572 (pass_data_tail_recursion): ...new pass_data instance and...
10573 (make_pass_tail_recursion): ...new function.
10574 (pass_tail_calls): Convert from a global struct to a subclass of
10575 gimple_opt_pass along with...
10576 (pass_data_tail_calls): ...new pass_data instance and...
10577 (make_pass_tail_calls): ...new function.
10578 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10579 struct to a subclass of gimple_opt_pass along with...
10580 (pass_data_lower_vector): ...new pass_data instance and...
10581 (make_pass_lower_vector): ...new function.
10582 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10583 gimple_opt_pass along with...
10584 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10585 (make_pass_lower_vector_ssa): ...new function.
10586 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10587 to a subclass of gimple_opt_pass along with...
10588 (pass_data_slp_vectorize): ...new pass_data instance and...
10589 (make_pass_slp_vectorize): ...new function.
10590 (pass_ipa_increase_alignment): Convert from a global struct to a
10591 subclass of simple_ipa_opt_pass along with...
10592 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10593 (make_pass_ipa_increase_alignment): ...new function.
10594 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10595 gimple_opt_pass along with...
10596 (pass_data_vrp): ...new pass_data instance and...
10597 (make_pass_vrp): ...new function.
10598 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10599 subclass of simple_ipa_opt_pass along with...
10600 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10601 (make_pass_ipa_free_lang_data): ...new function.
10602 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10603 gimple_opt_pass along with...
10604 (pass_data_tsan): ...new pass_data instance and...
10605 (make_pass_tsan): ...new function.
10606 (pass_tsan_O0): Convert from a global struct to a subclass of
10607 gimple_opt_pass along with...
10608 (pass_data_tsan_O0): ...new pass_data instance and...
10609 (make_pass_tsan_O0): ...new function.
10610 * var-tracking.c (pass_variable_tracking): Convert from a global
10611 struct to a subclass of rtl_opt_pass along with...
10612 (pass_data_variable_tracking): ...new pass_data instance and...
10613 (make_pass_variable_tracking): ...new function.
10614 * web.c (pass_web): Convert from a global struct to a subclass of
10615 rtl_opt_pass along with...
10616 (pass_data_web): ...new pass_data instance and...
10617 (make_pass_web): ...new function.
10618 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10619 declaration with that of...
10620 (make_pass_mode_switch_use): ...new function.
10621 (pass_resolve_sw_modes): Replace declaration with that of...
10622 (make_pass_resolve_sw_modes): ...new function.
10623 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10624 from a global struct to a subclass of rtl_opt_pass along with...
10625 (pass_data_mode_switch_use): ...new pass_data instance and...
10626 (make_pass_mode_switch_use): ...new function.
10627 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10628 from a global struct to a subclass of rtl_opt_pass along with...
10629 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10630 (make_pass_resolve_sw_modes): ...new function.
10631 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10632 struct to a subclass of rtl_opt_pass along with...
10633 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10634 (make_pass_insert_vzeroupper): ...new function.
10635 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10636 global struct to a subclass of rtl_opt_pass along with...
10637 (pass_data_work_around_errata): ...new pass_data instance and...
10638 (make_pass_work_around_errata): ...new function.
10639 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10640 struct to a subclass of rtl_opt_pass along with...
10641 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10642 (make_pass_mips_machine_reorg2): ...new function.
10643
6a389ed5
DM
106442013-08-05 David Malcolm <dmalcolm@redhat.com>
10645
10646 * passes.c (pass_manager::operator new): New.
10647
f7695dbf
DM
106482013-08-05 David Malcolm <dmalcolm@redhat.com>
10649
10650 Handwritten part of conversion of passes to C++ classes.
10651
10652 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10653 (toplev.o): Add dep on PASS_MANAGER_H.
10654 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10655 of early local pases to reflect this moving from a global to a
10656 member of gcc::pass_manager.
10657 (cgraph_add_new_function): Likewise.
10658 * lto-cgraph.c (lto_output_node): Update for conversion of
10659 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10660 * passes.c (opt_pass::clone): New.
10661 (opt_pass::gate): New.
10662 (opt_pass::execute): New.
10663 (opt_pass::opt_pass): New.
10664 (pass_manager::execute_early_local_passes): New.
10665 (pass_manager::execute_pass_mode_switching): new.
10666 (finish_optimization_passes): Convert to...
10667 (pass_manager::finish_optimization_passes): ...this.
10668 (finish_optimization_passes): Update for conversion of passes to
10669 C++ classes.
10670 (register_dump_files_1): Use has_gate since we cannot portably
10671 check a vtable entry against NULL.
10672 (dump_one_pass): Likewise.
10673 (ipa_write_summaries_2): Likewise.
10674 (ipa_write_optimization_summaries_1): Likewise.
10675 (ipa_read_summaries_1): Likewise.
10676 (ipa_read_optimization_summaries_1): Likewise.
10677 (execute_ipa_stmt_fixups): Likewise.
10678 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10679 pass-creation functions rather than wiring up globals, and
10680 storing the results in fields of pass_manager generated using
10681 pass-instances.def.
10682 (pass_manager::dump_profile_report): Update for conversion of
10683 passes to C++ classes.
10684 (pass_manager::execute_ipa_summary_passes): Likewise.
10685 (execute_one_ipa_transform_pass): Likewise.
10686 (execute_one_pass): Use has_gate and has_execute since we cannot
10687 portably check a vtable entry against NULL.
10688 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10689 (pass_manager): Use pass-instances.def to add fields for the
10690 various pass instances.
10691 * toplev.c (finalize): Update for move of
10692 finish_optimization_passes to a method of gcc::pass_manager.
10693 * toplev.h (finish_optimization_passes): Move to method of class
10694 pass_manager.
10695 * tree-pass.h (struct pass_data): New.
03b0ee0a 10696 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
10697 (opt_pass::gate): Convert to virtual function.
10698 (opt_pass::~opt_pass): New.
10699 (opt_pass::clone): New.
10700 (opt_pass::execute): Convert to virtual function.
10701 (opt_pass::opt_pass): New.
10702 (opt_pass::ctxt_): new.
10703 (gimple_opt_pass): Convert to subclass of opt_pass.
10704 (gimple_opt_pass::gimple_opt_pass): New.
10705 (rtl_opt_pass): Convert to subclass of opt_pass.
10706 (rtl_opt_pass::rtl_opt_pass): New.
10707 (ipa_opt_pass_d): Convert to subclass of opt_pass.
10708 (ipa_opt_pass_d::ipa_opt_pass_d): New.
10709 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
10710 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
10711 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
10712 invocation of pass_mode_switching to reflect this moving from a
10713 global to a member of gcc::pass_manager.
10714 (ix86_option_override): Rework how pass_insert_vzeroupper is
10715 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 10716 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 10717
d0b2f831
RE
107182013-08-05 Richard Earnshaw <rearnsha@arm.com>
10719
10720 PR rtl-optimization/57708
10721 * recog.c (peep2_find_free_register): Validate all regs in a
10722 multi-reg mode.
10723
51a5c0c2
JH
107242013-08-05 Jan Hubicka <jh@suse.cz>
10725
10726 PR lto/57602
03b0ee0a
UB
10727 * cgraph.c (verify_cgraph_node): Accept local flags from other
10728 partitions.
51a5c0c2
JH
10729 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
10730 (function_and_variable_visibility): Likewise.
10731 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
10732
65f0a120
GDR
107332013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10734
10735 * graph.c (init_graph_slim_pretty_print): Remove.
10736 (print_graph_cfg): Do not call it. Use local pretty printer.
10737 (start_graph_dump): Likewise.
10738
b3f80694
GDR
107392013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10740
10741 * gimple-pretty-print.c (buffer): Remove.
10742 (initialized): Likewise.
10743 (maybe_init_pretty_print): Likewise.
10744 (print_gimple_stmt): Do not call it. Use non-static local
10745 pretty_printer variable.
10746 (print_gimple_expr): Likewise.
10747 (print_gimple_seq): Likewise.
10748 (gimple_dump_bb): Likewise.
10749
11a877b3
GDR
107502013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10751
10752 * asan.c (asan_pp): Remove.
10753 (asan_pp_initialized): Likewise.
10754 (asan_pp_initialize): Likewise.
10755 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
10756 (asan_emit_stack_protection): Tidy. Use local pretty printer.
10757 (asan_add_global): Likewise.
10758
b066401f
GDR
107592013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
10760
10761 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
10762 * diagnostic.h (diagnostic_flush_buffer): Adjust.
10763 * pretty-print.c (pp_formatted_text_data): Likewise.
10764 (pp_indent): Rename from pp_base_indent.
10765 (pp_format): Rename from pp_base_format.
10766 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
10767 (pp_format_verbatim): Rename from pp_base_format_verbatim.
10768 (pp_flush): Rename from pp_base_flush.
10769 (pp_set_line_maximum_length): Rename from
10770 pp_base_set_line_maximum_length.
10771 (pp_clear_output_area): Rename from pp_base_clear_output_area.
10772 (pp_set_prefix): Rename from pp_base_set_prefix.
10773 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
10774 (pp_emit_prefix): Rename from pp_base_emit_prefix.
10775 (pp_append_text): Rename from pp_base_append_text.
10776 (pp_formatted_text): Rename from pp_base_formatted_text.
10777 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
10778 (pp_remaining_character_count_for_line): Rename from
10779 pp_base_remaining_character_count_for_line.
10780 (pp_newline): Rename from pp_base_newline.
10781 (pp_character): Rename from pp_base_character.
10782 (pp_string): Rename from pp_base_string.
10783 (pp_maybe_space): Rename from pp_base_maybe_space.
10784 * asan.c (asan_pp_string): Adjust.
10785 (asan_emit_stack_protection): Likewise.
10786 (asan_add_global): Likewise.
10787 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
10788 * tree-mudflap.c (mf_varname_tree): Likewise.
10789 * tree-pretty-print.c (pp_tree_identifier): Rename from
10790 pp_base_tree_identifier.
10791 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
10792 Declare as function.
10793
137a1a27
GDR
107942013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10795
10796 * pretty-print.h (pp_bar_bar): New.
10797 (pp_ampersand_ampersand): Likewise.
10798 (pp_less_equal): Likewise.
10799 (pp_greater_equal): Likewise.
10800 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
10801 printer functions instead of pp_string or operators and punctuators.
10802 (dump_gimple_call): Likewise.
10803 (dump_gimple_omp_for): Likewise.
10804 (dump_gimple_transaction): Likewise.
10805 (dump_gimple_phi): Likewise.
10806 (pp_gimple_stmt_1): Likewise.
10807 * sched-vis.c (print_insn): Likewise.
10808 * tree-mudflap.c (mf_varname_tree): Likewise.
10809 * tree-pretty-print.c (dump_block_node): Likewise.
10810 (dump_generic_node): Likewise.
10811
815effe1
JH
108122013-08-02 Jan Hubicka <jh@suse.cz>
10813
10814 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
10815 boundaries.
10816 * lto-streamer-out.c (tree_is_indexable): Results decls and
10817 parm decls are not indexable.
10818 (DFS_write_tree_body): Do not follow args and results.
10819 (hash_tree): Likewise.
10820 (output_functions): Rearrange so struct function is needed
10821 only when real body is output; be able to also ouptut abstract
10822 functions; output DECL_ARGUMENTS and DECL_RESULT.
10823 (lto_output): When not in WPA, ale store abstract functions.
10824 (write_symbol): Do not care about RESULT_DECL.
10825 (output_symbol_p): Handle correctly sbtract decls.
10826 * lto-streamer-in.c (input_function): Rearrange so struct
10827 function can be NULL at entry; allow streaming of
10828 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
10829 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
10830 sanity check during LTO.
10831 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
10832 RESULT_DECl and DECL_ARGUMENTS.
10833 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
10834 Likewise.
10835
07838b13
GDR
108362013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10837
10838 * pretty-print.h (pp_underscore): New.
10839 (pp_comma): Tidy.
10840 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
10841 printer functions instead of pp_character.
10842 (dump_binary_rhs): Likewise.
10843 (dump_ternary_rhs): Likewise.
10844 (dump_gimple_call_args): Likewise.
10845 (pp_points_to_solution): Likewise.
10846 (dump_gimple_call): Likewise.
10847 (dump_gimple_switch): Likewise.
10848 (dump_gimple_cond): Likewise.
10849 (dump_gimple_bind): Likewise.
10850 (dump_gimple_try): Likewise.
10851 (dump_gimple_omp_for): Likewise.
10852 (dump_gimple_omp_continue): Likewise.
10853 (dump_gimple_omp_single): Likewise.
10854 (dump_gimple_omp_sections): Likewise.
10855 (dump_gimple_omp_block): Likewise.
10856 (dump_gimple_omp_critical): Likewise.
10857 (dump_gimple_transaction): Likewise.
10858 (dump_gimple_asm): Likewise.
10859 (dump_gimple_phi): Likewise.
10860 (dump_gimple_omp_parallel): Likewise.
10861 (dump_gimple_omp_task): Likewise.
10862 (dump_gimple_omp_atomic_load): Likewise.
10863 (dump_gimple_omp_atomic_store): Likewise.
10864 (dump_gimple_mem_ops): Likewise.
10865 (pp_gimple_stmt_1): Likewise.
10866 (pp_cfg_jump): Likewise.
10867 (dump_implicit_edges): Likewise.
10868 (gimple_dump_bb_for_graph): Likewise.
10869 * graph.c (draw_cfg_node): Likewise.
10870 * langhooks.c (lhd_print_error_function): Likewise.
10871 * sched-vis.c (print_exp): Likewise.
10872 (print_value): Likewise.
10873 (print_pattern): Likewise.
10874 (print_insn): Likewise.
10875 (rtl_dump_bb_for_graph): Likewise.
10876 * tree-pretty-print.c (dump_function_declaration): Likewise.
10877 (dump_array_domain): Likewise.
10878 (dump_omp_clause): Likewise.
10879 (dump_location): Likewise.
10880 (dump_generic_node): Likewise.
10881 (print_struct_decl): Likewise.
10882 * diagnostic.c (diagnostic_show_locus): Use pp_space.
10883
bb0d2039
BS
108842013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10885
10886 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
10887 candidate table when replacing a candidate statement.
10888 (replace_rhs_if_not_dup): Likewise.
10889 (replace_one_candidate): Likewise.
10890
bc0ec027 108912013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 10892 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
10893
10894 * cgraphunit.c (add_new_function): Fix logic when adding from
10895 late IPA pass.
10896 (assemble_thunk): Rename to ...
03b0ee0a
UB
10897 (expand_thunk); .. this one; export; get it working with
10898 general functions; make produced gimple valid.
bc0ec027
JH
10899 * cgraph.h (expand_thunk): Declare.
10900
0e8853ee
JH
109012013-08-02 Jan Hubicka <jh@suse.cz>
10902
03b0ee0a
UB
10903 * ipa-cp.c (gather_context_independent_values): Use
10904 ipa_get_param_move_cost.
10905 (get_replacement_map): Remove PARAM; move parameter folding
10906 into tree-inline.c
0e8853ee
JH
10907 (create_specialized_node): Update.
10908 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
10909 assert that we have gimple body; update move_cost.
10910 (count_formal_params): Assert that we have gimple body.
10911 (ipa_dump_param): New function.
10912 (ipa_alloc_node_params): Break out from ...
10913 (ipa_initialize_node_params): ... here.
10914 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
10915 (ipa_write_node_info): Stream move costs.
10916 (ipa_read_node_info): Read move costs.
10917 (ipa_update_after_lto_read): Do not recompute node params.
10918 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
10919 (ipa_get_param): Check we are not in WPA.
10920 (ipa_get_param_move_cost): New.
10921 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
10922 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
10923 parm numbers to be present.
10924
ecee672b
VM
109252013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10926
10927 PR rtl-optimization/58048
10928 * lra-constraints.c (process_alt_operands): Don't check asm
10929 operand on register.
10930
13ec0527
EB
109312013-08-02 Eric Botcazou <ebotcazou@adacore.com>
10932
10933 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
10934 the implied StoreLoad barrier for atomic operations if before.
10935
af15184a
JH
109362013-08-02 Jan Hubicka <jh@suse.cz>
10937 Martin Liska <marxin.liska@gmail.com>
10938
03b0ee0a
UB
10939 * cgraph.c (cgraph_function_body_availability): Do not check
10940 cgraph flags.
af15184a
JH
10941 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
10942 symtab_node_availability): Declare.
10943 * ipa.c (can_replace_by_local_alias): New.
10944 (function_and_variable_visibility): Use it.
03b0ee0a
UB
10945 * symtab.c (symtab_for_node_and_aliases,
10946 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 10947
01e54ef8
VM
109482013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10949
10950 PR rtl-optimization/57963
03b0ee0a 10951 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
10952 (lra_constraints): Use them.
10953
e2fd7ca7
SN
109542013-08-02 Sofiane Naci <sofiane.naci@arm.com>
10955
03b0ee0a
UB
10956 * config/arm/types.md (define_attr "type"): Add "load_acq"
10957 and "store_rel".
e2fd7ca7
SN
10958 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
10959 changes.
10960 (cortex_a53_store1): Likewise.
10961
0dcc26c3
JH
109622013-08-01 Jan Hubicka <jh@suse.cz>
10963
03b0ee0a
UB
10964 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
10965 partitions are not needed.
0dcc26c3 10966
0bd72901
UB
109672013-08-01 Uros Bizjak <ubizjak@gmail.com>
10968
10969 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
10970 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
10971 MAYBE_NON_Q_CLASS_P where appropriate.
10972
12123452
JH
109732013-08-01 Jan Hubicka <jh@suse.cz>
10974
10975 * cgraph.h (release_function_body): Declare.
10976 * tree.c (free_lang_data_in_decl): Free, parameters and return values
10977 of unused delcarations.
10978
ce852f9c
KT
109792013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10980
03b0ee0a
UB
10981 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
10982 RTL form when subtracting a constant.
ce852f9c 10983
c743b246
KT
109842013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10985
10986 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
10987 Generate canonical plus rtx with negated immediate instead of minus
10988 where appropriate.
10989 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
10990
c0c123ef
JH
109912013-08-01 Jan Hubicka <jh@suse.cz>
10992
10993 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
10994 (cgraph_release_function_body): Likewise.
10995 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
10996 * cgraph.h (cgrpah_node): Rename abstract_and_needed
10997 to used_as_abstract_origin.
10998 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
10999 symbols used as abstract origins.
11000 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11001 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11002 used_as_abstract_origin.
c0c123ef 11003 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11004 used_as_abstract_origin; be ready for DECL_RESULT and
11005 DECL_ARGUMENTS to be NULL.
c0c123ef 11006
0bd72901
UB
11007 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11008 for abstract functions.
11009 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11010 real symbols.
c0c123ef 11011
1f029433
JH
110122013-08-01 Jan Hubicka <jh@suse.cz>
11013
11014 * profile.c (compute_value_histograms): Fix thinko.
11015
c451f4d6
SN
110162013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11017
11018 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11019 aarch-common-protos.h to extra_headers.
11020 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11021 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11022 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11023
34b512f5
SN
110242013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11025
11026 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11027 Include "../arm/types.md". Define "type" attribute for all patterns.
11028 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11029 attribute changes.
11030
d86e633a
MM
110312013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11032
11033 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11034 to support power8 load fusion.
11035 (fusion_gpr_mem_load): Likewise.
11036
11037 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11038
11039 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11040 declarations for power8 load fusion.
11041 (emit_fusion_gpr_load): Likewise.
11042
11043 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11044 tuning for power8, turn on fusion mode by default. Turn on sign
11045 extending fusion mode if normal fusion mode is on, and we are at
11046 -O2 or -O3.
11047 (fusion_gpr_load_p): New function, return true if we can fuse an
11048 addis instruction with a dependent load to a GPR.
11049 (emit_fusion_gpr_load): Emit the instructions for power8 load
11050 fusion to GPRs.
11051
0bd72901 11052 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11053 (VSX load fusion peepholes): New peepholes to fuse together an
11054 addi instruction with a VSX load instruction.
11055
11056 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11057 peepholes to fuse an addis instruction with a load to a GPR base
11058 register. If we are supporting sign extending fusions, convert
11059 sign extending loads to zero extending loads and add an explicit
11060 sign extension.
11061
c3f35647
SN
110622013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11063
11064 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11065 aarch-common-protos.h to extra_headers.
11066 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11067 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11068 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11069 (arm_no_early_alu_shift_dep): Likewise.
11070 (arm_no_early_alu_shift_value_dep): Likewise.
11071 (arm_no_early_mul_dep): Likewise.
11072 (arm_no_early_store_addr_dep): Likewise.
11073 (arm_mac_accumulator_is_mul_result): Likewise.
11074 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11075 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11076 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11077 here to ...
c3f35647 11078 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11079 (arm_no_early_alu_shift_dep): Likewise.
11080 (arm_no_early_alu_shift_value_dep): Likewise.
11081 (arm_no_early_mul_dep): Likewise.
11082 (arm_no_early_store_addr_dep): Likewise.
11083 (arm_mac_accumulator_is_mul_result): Likewise.
11084 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11085 * config/arm/aarch-common-protos.h: ... here. New file.
11086 * config/arm/t-arm (aarch-common.o): Define.
11087
110882013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11089
11090 * config/arm/arm.md: Include new file "types.md".
11091 (define_attr "type"): Move from here to ...
11092 (define_attr "mul32"): Likewise.
11093 (define_attr "mul64"): Likewise.
11094 * config/arm/types.md: ... here. New file.
11095
228c1313
SH
110962013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11097
11098 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11099 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11100
d6e9046d 111012013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11102
11103 * gen-pass-instances.awk: Fix offset of substr().
11104
a167b052
DM
111052013-07-31 David Malcolm <dmalcolm@redhat.com>
11106
11107 * Makefile.in (pass-instances.def): New.
11108 (passes.o): Replace dependency on passes.def with one on
11109 pass-instances.def
11110
11111 * gen-pass-instances.awk: New.
11112
11113 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11114 rather than passes.def, updating local definition of NEXT_PASS
11115 macro to add an extra NUM parameter (currently unused).
11116
315f8c0e
DM
111172013-07-30 David Malcolm <dmalcolm@redhat.com>
11118
11119 * Makefile.in (PASS_MANAGER_H): New.
11120 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11121 (passes.o): Likewise.
11122 (statistics.o): Likewise.
11123 (cgraphunit.o): Likewise.
11124 (context.o): Depend on PASS_MANAGER_H.
11125
11126 * pass_manager.h: New.
11127
11128 * cgraphunit.c (cgraph_add_new_function): Update for moves
11129 of globals to fields of pass_manager.
11130 (analyze_function): Likewise.
11131 (expand_function): Likewise.
11132 (ipa_passes): Likewise.
11133 (compile): Likewise.
11134
11135 * context.c (context::context): New.
11136 * context.h (context::context): New.
11137 (context::get_passes): New.
11138 (context::passes_): New.
11139
11140 * lto-cgraph.c (input_node): Update for moves of globals to
11141 fields of pass_manager.
11142
11143 * passes.c (all_passes): Remove, in favor of a field of the
11144 same name within the new class pass_manager.
11145 (all_small_ipa_passes): Likewise.
11146 (all_lowering_passes): Likewise.
11147 (all_regular_ipa_passes): Likewise.
11148 (all_late_ipa_passes): Likewise.
11149 (all_lto_gen_passes): Likewise.
11150 (passes_by_id): Likewise.
11151 (passes_by_id_size): Likewise.
11152 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11153 the new class pass_manager.
11154 (set_pass_for_id): Convert to...
11155 (pass_manager::set_pass_for_id): ...method.
11156 (get_pass_for_id): Convert to...
11157 (pass_manager::get_pass_for_id): ...method.
11158 (register_one_dump_file): Move body of implementation into...
11159 (pass_manager::register_one_dump_file): ...here.
11160 (register_dump_files_1): Convert to...
11161 (pass_manager::register_dump_files_1): ...method.
11162 (register_dump_files): Convert to...
11163 (pass_manager::register_dump_files): ...method.
11164 (create_pass_tab): Update for moves of globals to fields of
11165 pass_manager.
11166 (dump_passes): Move body of implementation into...
11167 (pass_manager::dump_passes): ...here.
11168 (register_pass): Move body of implementation into...
11169 (pass_manager::register_pass): ...here.
11170 (init_optimization_passes): Convert into...
11171 (pass_manager::pass_manager): ...constructor for new
11172 pass_manager class, and initialize the pass_lists array.
11173 (check_profile_consistency): Update for moves of globals to
11174 fields of pass_manager.
11175 (dump_profile_report): Move body of implementation into...
11176 (pass_manager::dump_profile_report): ...here.
11177 (ipa_write_summaries_1): Update for moves of pass lists from
11178 being globals to fields of pass_manager.
11179 (ipa_write_optimization_summaries): Likewise.
11180 (ipa_read_summaries): Likewise.
11181 (ipa_read_optimization_summaries): Likewise.
11182 (execute_all_ipa_stmt_fixups): Likewise.
11183
11184 * statistics.c (statistics_fini): Update for moves of globals to
11185 fields of pass_manager.
11186
11187 * toplev.c (general_init): Replace call to
11188 init_optimization_passes with construction of the pass_manager
11189 instance.
11190
11191 * tree-pass.h (all_passes): Remove, in favor of a field of the
11192 same name within the new class pass_manager.
11193 (all_small_ipa_passes): Likewise.
11194 (all_lowering_passes): Likewise.
11195 (all_regular_ipa_passes): Likewise.
11196 (all_lto_gen_passes): Likewise.
11197 (all_late_ipa_passes): Likewise.
11198 (passes_by_id): Likewise.
11199 (passes_by_id_size): Likewise.
11200 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11201 the new class pass_manager.
11202 (get_pass_for_id): Remove.
11203
02cab1c1
RE
112042013-07-30 Richard Earnshaw <rearnsha@arm.com>
11205
11206 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11207 configs.
11208
b2d3f886
RE
112092013-07-30 Richard Earnshaw <rearnsha@arm.com>
11210
11211 * arm.md (mulhi3): New expand pattern.
11212
605e86fa
JH
112132013-07-30 Jan Hubicka <jh@suse.cz>
11214 Martin Liska <marxin.liska@gmail.com>
11215
11216 * profile.c (compute_value_histograms): Do not ICE when
11217 there is mismatch only on some counters.
11218
14a87636
ZC
112192013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11220
11221 PR rtl-optimization/57637
11222 * function.c (move_insn_for_shrink_wrap): Also check the
11223 GEN set of the LIVE problem for the liveness analysis
11224 if it exists, otherwise give up.
11225
0100cd3f
BS
112262013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11227
11228 PR tree-optimization/57993
11229 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11230 replaced statement in the candidate table.
11231 (phi_add_costs): Return infinite cost when the hidden basis does
11232 not dominate all phis on which the candidate is dependent.
11233 (replace_one_candidate): Record replaced statement in the
11234 candidate table.
11235
f0d811f7
JR
112362013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11237
11238 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11239 (ashlv2si3): New expander.
11240 (*ashlv2si3_i): New define_insn_and_split.
11241 * predicates.md (float_operation): Allow patterns with three
11242 basic sub-patterns.
11243
bba33211
JR
11244 PR rtl-optimization/58021
11245 * mode-switching.c (create_pre_exit): Always split off preceding
11246 insns if we are not at the basic block head.
11247
ff3f3951
MR
112482013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11249
11250 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11251 (UCLIBC_DYNAMIC_LINKER): New macro.
11252 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11253 `-mnan=2008'.
11254 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11255 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11256 `-mnan=2008'.
11257 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11258 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11259 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11260 for SF and DF modes. Use ieee_quad_format for TF mode.
11261 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11262 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11263 (mips_option_override): Handle `-mnan=legacy'.
11264 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11265 `-mabs=2008' and `-mnan=2008'.
11266 (OPTION_DEFAULT_SPECS): Add "nan" default.
11267 (ASM_SPEC): Handle `-mnan='.
11268 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11269 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11270 comment accordingly.
11271 (neg<mode>2): Likewise.
11272 * config/mips/mips.opt (mabs, mnan): New options.
11273 * doc/install.texi (Configuration): Document `--with-nan=' option.
11274 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11275 `-mnan=' options.
11276 (MIPS Options): Document them.
11277 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11278 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11279 * configure: Regenerate.
11280 * config.in: Regenerate.
11281
576e2f37
UB
112822013-07-29 Uros Bizjak <ubizjak@gmail.com>
11283
11284 * config/i386/i386.md (float post-reload splitters): Do not check
11285 for subregs of SSE registers.
11286
112872013-07-29 Uros Bizjak <ubizjak@gmail.com>
11288 H.J. Lu <hongjiu.lu@intel.com>
11289
11290 PR target/57954
11291 PR target/57988
11292 * config/i386/i386.md (post-reload splitter
11293 to avoid partial SSE reg dependency stalls): New pattern.
11294
a71f0749
DV
112952013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11296
11297 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11298
4c97f1cc
JR
112992013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11300
11301 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11302 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11303
b0c733d8
CC
113042013-07-26 Cary Coutant <ccoutant@google.com>
11305
11306 * dwarf2out.c (die_checksum_ordered): Don't include template
11307 instantiations in signature.
11308 (is_template_parameter): New function.
11309 (is_template_instantiation): New function.
11310 (generate_skeleton_bottom_up): Don't include template instantiations
11311 in type unit DIE.
11312 (generate_skeleton): Likewise.
11313 (break_out_comdat_types): Move recursive call to break out nested
11314 types earlier.
11315 (prune_unused_types_mark_generic_parms_dies): Call
11316 is_template_parameter.
11317
040d8a1c
IB
113182013-07-26 Ian Bolton <ian.bolton@arm.com>
11319
11320 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11321 uses vector registers.
89fdc743 11322 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11323
85bd4ac6 113242013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11325 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11326
11327 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11328 where appropriate.
85bd4ac6
KT
11329 * config/arm/arm.md (movcond_addsi): New splitter.
11330
b6051207
SA
113312013-07-25 Sterling Augustine <saugustine@google.com>
11332
11333 * dwarf2out.c (size_of_pubnames): Move code to...
11334 (include_pubname_in_output): ...here. New.
11335 (want_pubnames): Rearrange.
11336 (output_pubnames): Call include_pubname_in_output. Move assertion.
11337
41a7c215
CM
113382013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11339
11340 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11341
113422013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11343
11344 PR target/38836
11345 * doc/extend.texi: Remove obsolete builtins. Fix
11346 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11347
49bde175
JH
113482013-07-25 Jan Hubicka <jh@suse.cz>
11349
11350 * cgraph.c (release_function_body): Break out from ...
11351 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11352 and DECL_ARGUMENTS.
11353 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11354 old_tree in the map.
11355 (create_specialized_node): Update.
11356 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11357 into index.
41a7c215
CM
11358 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11359 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11360 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11361 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11362 DECL_RESULT.
11363
4870352d
KT
113642013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11365
11366 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11367 addsi3_carryin_alt2_<optab>): Correct output template.
11368
1d6aee1c
KT
113692013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11370
11371 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11372 Adjust for arm_restrict_it.
11373 Remove trailing whitespace.
11374
c7cafd75
MK
113752013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11376
017d38f5
MK
11377 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11378 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11379
c7cafd75
MK
11380 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11381
00b7527b
VM
113822013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11383
11384 PR rtl-optimization/57960
11385 * lra-constraints.c (process_alt_operands): Use the right mode
11386 when checking strict_low.
11387
4f63dfc6
JH
113882013-07-25 Jan Hubicka <jh@suse.cz>
11389
11390 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11391 * cgraph.c (cgraph_remove_node): Do not release function body
11392 when in cgraph streaming.
11393 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11394 in other partitions are not considered reachable; fix handling of
11395 clones.
4f63dfc6 11396
e6dcfa18
RR
113972013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11398
11399 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11400
0b93d3b6
RR
114012013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11402
11403 PR target/19599
11404 PR target/57731
bb80c2eb 11405 PR target/57837
e6dcfa18 11406 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11407 Ss with US. Adjust output for v5 and v4t.
41a7c215 11408 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11409
0b93d3b6
RR
11410 * config/arm/constraints.md ("Ss"): Rename to US.
11411
690688b3
TG
114122013-07-25 Terry Guo <terry.guo@arm.com>
11413
11414 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11415 shift_add/shift_sub0/shift_sub1 RTXs.
11416
a4ad093b 114172013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11418 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11419
11420 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11421 (altivec_vpks<VI_char>ss): Likewise.
11422 (altivec_vpks<VI_char>us): Likewise.
11423 (altivec_vpku<VI_char>us): Likewise.
11424 (altivec_vpku<VI_char>um): Likewise.
11425
8c5005ce
DM
114262013-07-24 David Malcolm <dmalcolm@redhat.com>
11427
11428 Introduce context class.
11429
11430 * Makefile.in (CONTEXT_H): New.
11431 (OBJS): Add context.o.
11432 (toplev.o): Add CONTEXT_H to dependencies.
11433 (context.o): New.
11434
41a7c215 11435 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11436
11437 * context.c: New.
11438
11439 * context.h: New.
11440
ce4a9422
JR
114412013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11442
11443 PR rtl-optimization/57968
11444 * mode-switching.c (create_pre_exit): Allow instructions that
11445 don't set a return register to need a non-exit mode.
11446
493f4c9e 114472013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11448 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11449
b5860fd3
WS
11450 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11451 operands to vperm for little endian.
11452 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11453 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11454
73792b92 114552013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11456 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11457
11458 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11459 two operands for little-endian.
11460
14c21302
SE
114612013-07-23 Steve Ellcey <sellcey@mips.com>
11462
11463 * config/mips/mips.c (mips_case_values_threshold): New.
11464 (TARGET_CASE_VALUES_THRESHOLD): Define.
11465
a6056198 114662013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11467 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11468
11469 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11470 selection of field for vector splat in little endian mode.
11471
dd7a40e1
MM
114722013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11473
11474 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11475 expanders to rs6000.md.
11476 (ior<mode>3): Likewise.
11477 (and<mode>3): Likewise.
11478 (one_cmpl<mode>2): Likewise.
11479 (nor<mode>3): Likewise.
11480 (andc<mode>3): Likewise.
11481 (eqv<mode>3): Likewise.
11482 (nand<mode>3): Likewise.
11483 (orc<mode>3): Likewise.
11484
11485 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11486 declaration.
11487
11488 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11489 to split multi-word logical operations.
11490 (rs6000_split_logical_di): Likewise.
11491 (rs6000_split_logical): Likewise.
11492
11493 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11494 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11495 and allow TImode operations in 32-bit.
11496 (vsx_and<mode>3_64bit): Likewise.
11497 (vsx_ior<mode>3_32bit): Likewise.
11498 (vsx_ior<mode>3_64bit): Likewise.
11499 (vsx_xor<mode>3_32bit): Likewise.
11500 (vsx_xor<mode>3_64bit): Likewise.
11501 (vsx_one_cmpl<mode>2_32bit): Likewise.
11502 (vsx_one_cmpl<mode>2_64bit): Likewise.
11503 (vsx_nor<mode>3_32bit): Likewise.
11504 (vsx_nor<mode>3_64bit): Likewise.
11505 (vsx_andc<mode>3_32bit): Likewise.
11506 (vsx_andc<mode>3_64bit): Likewise.
11507 (vsx_eqv<mode>3_32bit): Likewise.
11508 (vsx_eqv<mode>3_64bit): Likewise.
11509 (vsx_nand<mode>3_32bit): Likewise.
11510 (vsx_nand<mode>3_64bit): Likewise.
11511 (vsx_orc<mode>3_32bit): Likewise.
11512 (vsx_orc<mode>3_64bit): Likewise.
11513
11514 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11515 logical types in GPRs.
11516
11517 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11518 logical insns to rs6000.md, and allow TImode operations in
11519 32-bit.
11520 (altivec_ior<mode>3): Likewise.
11521 (altivec_xor<mode>3): Likewise.
11522 (altivec_one_cmpl<mode>2): Likewise.
11523 (altivec_nor<mode>3): Likewise.
11524 (altivec_andc<mode>3): Likewise.
11525
11526 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11527 attributes for moving the 128-bit logical operations into
11528 rs6000.md.
11529 (BOOL_REGS_OUTPUT): Likewise.
11530 (BOOL_REGS_OP1): Likewise.
11531 (BOOL_REGS_OP2): Likewise.
11532 (BOOL_REGS_UNARY): Likewise.
11533 (BOOL_REGS_AND_CR0): Likewise.
11534 (one_cmpl<mode>2): Add support for DI logical operations on
11535 32-bit, splitting the operations to 32-bit.
11536 (anddi3): Likewise.
11537 (iordi3): Likewise.
11538 (xordi3): Likewise.
11539 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11540 changes to combine the 32/64-bit code, allow logical operations on
11541 TI mode in 32-bit, and to use similar match_operator patterns like
11542 scalar mode uses. Combine the Altivec and VSX code for logical
11543 operations, and move it here.
11544 (ior<mode>3, 128-bit types): Likewise.
11545 (xor<mode>3, 128-bit types): Likewise.
11546 (one_cmpl<mode>3, 128-bit types): Likewise.
11547 (nor<mode>3, 128-bit types): Likewise.
11548 (andc<mode>3, 128-bit types): Likewise.
11549 (eqv<mode>3, 128-bit types): Likewise.
11550 (nand<mode>3, 128-bit types): Likewise.
11551 (orc<mode>3, 128-bit types): Likewise.
11552 (and<mode>3_internal): Likewise.
11553 (bool<mode>3_internal): Likewise.
11554 (boolc<mode>3_internal1): Likewise.
11555 (boolc<mode>3_internal2): Likewise.
11556 (boolcc<mode>3_internal1): Likewise.
11557 (boolcc<mode>3_internal2): Likewise.
11558 (eqv<mode>3_internal1): Likewise.
11559 (eqv<mode>3_internal2): Likewise.
11560 (one_cmpl1<mode>3_internal): Likewise.
11561
12211b99 115622013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11563
11564 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11565 Rename flag_stack_usage to flag_stack_usage_info.
11566
12211b99 115672013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11568
a5f257fd
ME
11569 * config/microblaze/sync.md: New file.
11570 * config/microblaze/microblaze.md: Include sync.md
11571 * config/microblaze/microblaze.c: Add print_operand 'y'.
11572 * config/microblaze/constraints.md: Add memory_contraint
11573 'Q' which is a single register.
450b0ebb 11574
49fba14f
EB
115752013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11576
11577 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11578
c7b3b99f
PCC
115792013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11580
11581 * reload.c (find_reloads): Exit loop once we find this operand
11582 cannot be reloaded somehow for this alternative.
11583
11584 * reload.c (find_reloads): Exit loop once we find a hard register.
11585
11586 * rtlanal.c (computed_jump_p): Exit loop once we find label
11587 reference is used.
11588
11589 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11590
11591 * cfgloopmanip.c (remove_path): Exit loop after setting
11592 irred_invalidated.
11593
11594 * gensupport.c (subst_dup): Avoid loop if code is not
11595 MATCH_DUP nor MATCH_OP_DUP.
11596
c8fbf1fa
NBJ
115972013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11598
11599 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11600
9259db42
YZ
116012013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11602
11603 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11604 true for SP_REGNUM if mode == ptr_mode.
11605 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11606 with value R0_REGNUM + 31.
11607
00edcfbe
YZ
116082013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11609
11610 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11611 pad pointer-typed argument downward.
11612
43be9a95
YZ
116132013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11614
11615 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11616 and __ILP32__ when the ILP32 model is in use.
11617
28514dda
YZ
116182013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11619
11620 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11621 (aarch64_load_symref_appropriately): In the case of
11622 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11623 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11624 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11625 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11626 if 'mode' doesn't equal to 'ptr_mode'.
11627 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11628 'vcall_offset'; change to call aarch64_emit_move differently depending
11629 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11630 to calculate the upper bound of 'vcall_offset'.
11631 (aarch64_cannot_force_const_mem): Change to also return true if
11632 mode != ptr_mode.
11633 (aarch64_legitimize_reload_address): In the case of large
11634 displacements, add new local variable 'xmode' and an assertion
11635 based on it; change to use 'xmode' to generate the new rtx and
11636 reload.
11637 (aarch64_asm_trampoline_template): Change to generate the template
11638 differently depending on TARGET_ILP32 or not; change to use
11639 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11640 (aarch64_trampoline_size): Removed.
11641 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11642 and replace immediate literals with it. Change to use 'ptr_mode'
11643 instead of 'DImode' and call convert_memory_address if the mode
11644 of 'fnaddr' doesn't equal to 'ptr_mode'.
11645 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11646 to output symbol.
11647 (aarch64_elf_asm_destructor): Likewise.
11648 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11649 on TARGET_ILP32 instead of aarch64_trampoline_size.
11650 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11651 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11652 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11653 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11654 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11655 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11656 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11657 depending on the value of 'mode'.
11658 (add_losym_<mode>): New.
11659 (ldr_got_small_<mode>): New, based on ldr_got_small.
11660 (ldr_got_small): Remove.
11661 (ldr_got_small_sidi): New.
11662 * config/aarch64/iterators.md (P): New.
11663 (PTR): Change to 'ptr_mode' in the condition.
11664
17a819cb
YZ
116652013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11666
11667 * config.gcc (aarch64*-*-*): Support --with-abi.
11668 (aarch64*-*-elf): Support --with-multilib-list.
11669 (aarch64*-*-linux*): Likewise.
11670 (supported_defaults): Add abi to aarch64*-*-*.
11671 * configure.ac: Mention AArch64 for --with-multilib-list.
11672 * configure: Re-generated.
11673 * config/aarch64/biarchilp32.h: New file.
11674 * config/aarch64/biarchlp64.h: New file.
11675 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11676 (ABI_SPEC): Ditto.
11677 (MULTILIB_DEFAULTS): Ditto.
11678 (DRIVER_SELF_SPECS): Ditto.
11679 (ASM_SPEC): Update to also substitute -mabi.
11680 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11681 file whose name depends on -mabi= and -mbig-endian.
11682 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11683 TARGET_ILP32.
11684 (POINTER_SIZE): New define.
11685 (POINTERS_EXTEND_UNSIGNED): Ditto.
11686 (enum aarch64_abi_type): New enumeration tag.
11687 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11688 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11689 (TARGET_ILP32): New define.
11690 * config/aarch64/aarch64.opt (mabi): New.
11691 (aarch64_abi): New.
11692 (ilp32, lp64): New values for -mabi.
11693 * config/aarch64/t-aarch64 (comma): New define.
11694 (MULTILIB_OPTIONS): Ditto.
11695 (MULTILIB_DIRNAMES): Ditto.
11696 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11697 * doc/invoke.texi: Document -mabi for AArch64.
11698
9f9cbdce
GJL
116992013-07-23 Georg-Johann Lay <avr@gjlay.de>
11700
11701 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11702
7061977b 117032013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11704 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
11705
11706 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
11707 endianness when selecting field to splat.
11708
75a41878
EC
117092013-07-22 Eric Christopher <echristo@gmail.com>
11710
11711 * dwarf2out.c (die_odr_checksum): New function to use
11712 CHECKSUM_ macros and ULEB128 for DIE tag.
11713 (generate_type_signature): Use.
41a7c215 11714
38ae58ca
EB
117152013-07-22 Eric Botcazou <ebotcazou@adacore.com>
11716
11717 * config.gcc (sparc*-*-*): Accept leon3 processor.
11718 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
11719 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
11720 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
11721 * config/sparc/sparc.opt (enum processor_type): Add leon3.
11722 (mfix-ut699): Adjust comment.
11723 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
11724 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
11725 (CPP_CPU_SPEC): Likewise.
11726 (ASM_CPU_SPEC): Likewise.
11727 * config/sparc/sparc.c (leon3_cost): New constant.
11728 (sparc_option_override): Add leon3 support.
11729 (mem_ref): New function.
11730 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
11731 (sparc_do_work_around_errata): Look into the instruction in the delay
11732 slot and adjust accordingly. Add fix for the data cache nullify issues
11733 of the UT699. Change insertion position for the NOP.
11734 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
11735 (leon3_load): New reservation.
11736 (leon_store): Bump latency to 2.
11737 (grfpu): New automaton.
11738 (grfpu_alu): New unit.
11739 (grfpu_ds): Likewise.
11740 (leon_fp_alu): Adjust.
11741 (leon_fp_mult): Delete.
11742 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
11743 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
11744 * config/sparc/sparc.md (cpu): Add leon3.
11745 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
11746 (swapsi): Likewise.
11747 (atomic_test_and_set): Likewise.
11748 (ldstub): Likewise.
11749
04dfc6df
JU
117502013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
11751
11752 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
11753 default for R5900 targets.
11754 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
11755 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
11756 * config/mips/mips.c (mips_option_override): Report an error for
11757 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
11758 for -march=r5900 -mhard-float.
11759
c7b3b99f 117602013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
11761
11762 * df-problems.c (can_move_insns_across): Exit loop once we
11763 find a non-fixed, non-global register.
11764
11765 * ipa-pure-const.c (propagate_nothrow): Exit loop after
11766 setting can_throw.
11767
11768 * omega.c (omega_eliminate_red): Break after setting red_found.
11769 (omega_problem_has_red_equations): Similarly after setting found.
11770 (omega_query_variable): Similarly after setting coupled.
11771
9b6e6981
MP
117722013-07-22 Marek Polacek <polacek@redhat.com>
11773
11774 * gimplify.c: Don't include gimple.h twice.
11775
5e5f7673
KT
117762013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11777
11778 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
11779 instead of TARGET_THUMB1.
11780 (Pz): New constraint.
11781 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
11782 encodings.
11783 (compare_negsi_si): Likewise.
11784 (compare_addsi2_op0): Likewise.
11785 (compare_addsi2_op1): Likewise.
11786 (addsi3_carryin_<optab>): Likewise.
11787 (addsi3_carryin_alt2_<optab>): Likewise.
11788 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
11789 for arm_restrict_it.
11790 (subsi3_carryin): Likewise.
11791 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
11792 (minmax_arithsi): Disable for arm_restrict_it.
11793 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
11794 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
11795 (satsi_<SAT:code>_shift): Likewise.
11796 (arm_shiftsi3): Add alternative for 16-bit encoding.
11797 (arm32_movhf): Disable for arm_restrict_it.
11798 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
11799 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
11800
859abddd
SN
118012013-07-22 Sofiane Naci <sofiane.naci@arm.com>
11802
11803 * config/arm/arm.md (attribute "insn"): Delete.
11804 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
11805 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
11806 (not_shiftsi): Update for attribute change.
11807 (not_shiftsi_compare0): Likewise.
11808 (not_shiftsi_compare0_scratch): Likewise.
11809 (arm_one_cmplsi2): Likewise.
11810 (thumb1_one_cmplsi2): Likewise.
11811 (notsi_compare0): Likewise.
11812 (notsi_compare0_scratch): Likewise.
11813 (thumb1_movdi_insn): Likewise.
11814 (arm_movsi_insn): Likewise.
11815 (movhi_insn_arch4): Likewise.
11816 (movhi_bytes): Likewise.
11817 (arm_movqi_insn): Likewise.
11818 (thumb1_movqi_insn): Likewise.
11819 (arm32_movhf): Likewise.
11820 (thumb1_movhf): Likewise.
11821 (arm_movsf_soft_insn): Likewise.
11822 (thumb1_movsf_insn): Likewise.
11823 (thumb_movdf_insn): Likewise.
11824 (movsicc_insn): Likewise.
11825 (movsfcc_soft_insn): Likewise.
11826 (and_scc): Likewise.
11827 (cond_move): Likewise.
11828 (if_move_not): Likewise.
11829 (if_not_move): Likewise.
11830 (if_shift_move): Likewise.
11831 (if_move_shift): Likewise.
11832 (if_shift_shift): Likewise.
11833 (if_not_arith): Likewise.
11834 (if_arith_not): Likewise.
11835 (cond_move_not): Likewise.
11836 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
11837 (neon_mov<mode>): Likewise.
11838 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
11839 (thumb2_movsi_vfp): Likewise.
11840 (movsf_vfp): Likewise.
11841 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
11842 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11843 change.
859abddd
SN
11844 (cortexa7_older_only): Likewise.
11845 (cortexa7_younger): Likewise.
11846 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
11847 (1020alu_shift_op): Likewise.
11848 (1020alu_shift_reg_op): Likewise.
11849 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
11850 (alu_shift_op): Likewise.
11851 (alu_shift_reg_op): Likewise.
11852 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
11853 (11_alu_shift_op): Likewise.
11854 (11_alu_shift_reg_op): Likewise.
11855 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
11856 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11857 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11858 change.
859abddd
SN
11859 (cortex_a15_alu_shift): Likewise.
11860 (cortex_a15_alu_shift_reg): Likewise.
11861 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
11862 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
11863 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
11864 change.
859abddd 11865 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
11866 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11867 change.
859abddd
SN
11868 (cortex_a7_alu_reg): Likewise.
11869 (cortex_a7_alu_shift): Likewise.
11870 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11871 (cortex_a8_alu_shift): Likewise.
11872 (cortex_a8_alu_shift_reg): Likewise.
11873 (cortex_a8_mov): Likewise.
11874 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
11875 (cortex_a9_dp_shift): Likewise.
11876 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
11877 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
11878 (cortex_r4_mov): Likewise.
11879 (cortex_r4_alu_shift): Likewise.
11880 (cortex_r4_alu_shift_reg): Likewise.
11881 * config/arm/fa526.md (526_alu_op): Update for attribute change.
11882 (526_alu_shift_op): Likewise.
11883 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
11884 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
11885 (626te_alu_shift_op): Likewise.
11886 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
11887 (726te_alu_op): Likewise.
11888 (726te_alu_shift_op): Likewise.
11889 (726te_alu_shift_reg_op): Likewise.
11890 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
11891 (mp626_alu_shift_op): Likewise.
11892 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
11893 (pj4_alu_e1_conds): Likewise.
11894 (pj4_alu): Likewise.
11895 (pj4_alu_conds): Likewise.
11896 (pj4_shift): Likewise.
11897 (pj4_shift_conds): Likewise.
11898 (pj4_alu_shift): Likewise.
11899 (pj4_alu_shift_conds): Likewise.
11900
95b97fac
KT
119012013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11902
11903 * config/arm/predicates.md (shiftable_operator_strict_it):
11904 New predicate.
11905 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
11906 Disable cond_exec version for arm_restrict_it.
11907 (thumb2_smaxsi3): Convert to generate cond_exec.
11908 (thumb2_sminsi3): Likewise.
11909 (thumb32_umaxsi3): Likewise.
11910 (thumb2_uminsi3): Likewise.
11911 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
11912 (thumb2_neg_abssi2): Likewise.
11913 (thumb2_mov_scc): Add alternative for 16-bit encoding.
11914 (thumb2_movsicc_insn): Adjust alternatives.
11915 (thumb2_mov_negscc): Disable for arm_restrict_it.
11916 (thumb2_mov_negscc_strict_it): New pattern.
11917 (thumb2_mov_notscc_strict_it): New pattern.
11918 (thumb2_mov_notscc): Disable for arm_restrict_it.
11919 (thumb2_ior_scc): Likewise.
11920 (thumb2_ior_scc_strict_it): New pattern.
11921 (thumb2_cond_move): Adjust for arm_restrict_it.
11922 (thumb2_cond_arith): Disable for arm_restrict_it.
11923 (thumb2_cond_arith_strict_it): New pattern.
11924 (thumb2_cond_sub): Adjust for arm_restrict_it.
11925 (thumb2_movcond): Likewise.
11926 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
11927 (thumb2_zero_extendhisi2_v6): Likewise.
11928 (thumb2_zero_extendqisi2_v6): Likewise.
11929 (orsi_notsi_si): Likewise.
11930 (orsi_not_shiftsi_si): Likewise.
11931
d5a6ef82
GJL
119322013-07-22 Georg-Johann Lay <avr@gjlay.de>
11933
11934 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
11935 instruction sequence is 1 byte shorter.
11936
d9e71154
UB
119372013-07-22 Uros Bizjak <ubizjak@gmail.com>
11938
11939 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
11940 it is not needed after split.
11941
8c6381ec
IS
119422013-07-20 Iain Sandoe <iain@codesourcery.com>
11943
11944 PR target/51784
11945 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
11946 second label for nonlocal goto receivers. Don't output pic base labels
11947 unless we're producing PIC; mark that action unreachable().
11948 (ix86_save_reg): If the function contains a nonlocal label, save the
11949 PIC base reg.
11950 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 11951 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
11952 (update_pic_label_number_if_needed): New.
11953 (machopic_output_function_base_name): Adjust for nonlocal receiver
11954 case.
11955 (machopic_should_output_picbase_label): New.
11956 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
11957 (nonlocal_goto_receiver): New insn and split.
11958
d05d0709
JG
119592013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
11960
11961 * config/aarch64/aarch64-builtins.c
11962 (aarch64_fold_builtin): Fold abs in all modes.
11963 * config/aarch64/aarch64-simd-builtins.def
11964 (abs): Enable for all modes.
11965 * config/aarch64/arm_neon.h
11966 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
11967 (vabs_f64): Add missing intrinsic.
11968
ba590e63
IB
119692013-07-19 Ian Bolton <ian.bolton@arm.com>
11970
11971 * config/aarch64/arm_neon.h (vabs_s64): New function
11972
02371798
GJL
119732013-07-19 Georg-Johann Lay <avr@gjlay.de>
11974
11975 PR target/57516
11976 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
11977 * config/avr/avr.md (adjust_len): Add `round'.
11978 * config/avr/avr-protos.h (avr_out_round): New prototype.
11979 (avr_out_plus): Add `out_label' argument.
11980 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
11981 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
11982 Handle the case where `insn' is just a pattern.
11983 (avr_out_bitop): Handle the case where `insn' is just a pattern.
11984 (avr_out_round): New function.
11985 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
11986
12211b99 119872013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
11988
11989 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11990 Add check for flag_stack_usage to handle -fstack-usage support
11991
12211b99 119922013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
11993
11994 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
11995 interaction for new Power8 flags and VSX.
11996
df9dda2d
ST
119972013-07-18 Sriraman Tallam <tmsriram@google.com>
11998
11999 PR middle-end/57698
12000 * tree-inline.c (expand_call_inline): Emit errors during
12001 early_inlining only if optimization is not turned on.
12002
0f9cdef4
DM
120032013-07-18 David Malcolm <dmalcolm@redhat.com>
12004
12005 * passes.def: New.
12006
12007 * passes.c (init_optimization_passes): Move the construction of
12008 the pass hierarchy into a new passes.def file.
12009
12010 * Makefile.in (passes.o): Add dependency on passes.def.
12011
2efa4087
DM
120122013-07-18 David Malcolm <dmalcolm@redhat.com>
12013
12014 * passes.c (init_optimization_passes): Introduce macros for
12015 constructing the tree of passes (INSERT_PASSES_AFTER,
12016 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12017 TERMINATE_PASS_LIST).
12018
bc404e1b
VM
120192013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12020 Wei Mi <wmi@google.com>
12021
12022 PR rtl-optimization/57878
12023 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12024 top.
12025 (reload_pseudo_compare_func): Check nregs first for reload
12026 pseudos.
12027
d675843f
DM
120282013-07-18 David Malcolm <dmalcolm@redhat.com>
12029
12030 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12031
c7b3b99f 120322013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12033
12034 * read-rtl.c (validate_const_int): Once an invalid character is
12035 seen, quit the loop.
12036
12037 * gengtype.c (write_roots): Similarly once we find the "deletable"
12038 or "if_marked" option.
12039
52fceb44
SN
120402013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12041
12042 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12043 "xtab" and "sat". Move value "clz" from here to ...
12044 (attriubte "type"): ... here.
12045 (satsi_<SAT:code>): Delete "insn" attribute.
12046 (satsi_<SAT:code>_shift): Likewise.
12047 (arm_zero_extendqisi2addsi): Likewise.
12048 (arm_extendqisi2addsi): Likewise.
12049 (clzsi2): Update for attribute changes.
12050 (rbitsi2): Likewise.
371e77e3
UB
12051 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12052 attribute.
52fceb44
SN
12053 (arm_usatsihi): Likewise.
12054 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12055
006bd006
SN
120562013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12057
12058 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12059 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12060 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12061 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12062 in alphabetical order.
12063 (attribute "core_cycles"): Update for attribute changes.
12064 (arm_addsi3): Likewise.
12065 (addsi3_compare0): Likewise.
12066 (addsi3_compare0_scratch): Likewise.
12067 (addsi3_compare_op1): Likewise.
12068 (addsi3_compare_op2): Likewise.
12069 (compare_addsi2_op0): Likewise.
12070 (compare_addsi2_op1): Likewise.
12071 (addsi3_carryin_shift_<optab>): Likewise.
12072 (subsi3_carryin_shift): Likewise.
12073 (rsbsi3_carryin_shift): Likewise.
12074 (arm_subsi3_insn): Likewise.
12075 (subsi3_compare0): Likewise.
12076 (subsi3_compare): Likewise.
12077 (arm_andsi3_insn): Likewise.
12078 (thumb1_andsi3_insn): Likewise.
12079 (andsi3_compare0): Likewise.
12080 (andsi3_compare0_scratch): Likewise.
12081 (zeroextractsi_compare0_scratch
12082 (andsi_not_shiftsi_si): Likewise.
12083 (iorsi3_insn): Likewise.
12084 (iorsi3_compare0): Likewise.
12085 (iorsi3_compare0_scratch): Likewise.
12086 (arm_xorsi3): Likewise.
12087 (thumb1_xorsi3_insn): Likewise.
12088 (xorsi3_compare0): Likewise.
12089 (xorsi3_compare0_scratch): Likewise.
12090 (satsi_<SAT:code>_shift): Likewise.
12091 (rrx): Likewise.
12092 (arm_shiftsi3): Likewise.
12093 (shiftsi3_compare0): Likewise.
12094 (not_shiftsi): Likewise.
12095 (not_shiftsi_compare0): Likewise.
12096 (not_shiftsi_compare0_scratch): Likewise.
12097 (arm_one_cmplsi2): Likewise.
12098 (thumb_one_complsi2): Likewise.
12099 (notsi_compare0): Likewise.
12100 (notsi_compare0_scratch): Likewise.
12101 (thumb1_zero_extendhisi2): Likewise.
12102 (arm_zero_extendhisi2): Likewise.
12103 (arm_zero_extendhisi2_v6): Likewise.
12104 (arm_zero_extendhisi2addsi): Likewise.
12105 (thumb1_zero_extendqisi2): Likewise.
12106 (thumb1_zero_extendqisi2_v6): Likewise.
12107 (arm_zero_extendqisi2): Likewise.
12108 (arm_zero_extendqisi2_v6): Likewise.
12109 (arm_zero_extendqisi2addsi): Likewise.
12110 (thumb1_extendhisi2): Likewise.
12111 (arm_extendhisi2): Likewise.
12112 (arm_extendhisi2_v6): Likewise.
12113 (arm_extendqisi): Likewise.
12114 (arm_extendqisi_v6): Likewise.
12115 (arm_extendqisi2addsi): Likewise.
12116 (thumb1_extendqisi2): Likewise.
12117 (thumb1_movdi_insn): Likewise.
12118 (arm_movsi_insn): Likewise.
12119 (movsi_compare0): Likewise.
12120 (movhi_insn_arch4): Likewise.
12121 (movhi_bytes): Likewise.
12122 (arm_movqi_insn): Likewise.
12123 (thumb1_movqi_insn): Likewise.
12124 (arm32_movhf): Likewise.
12125 (thumb1_movhf): Likewise.
12126 (arm_movsf_soft_insn): Likewise.
12127 (thumb1_movsf_insn): Likewise.
12128 (movdf_soft_insn): Likewise.
12129 (thumb_movdf_insn): Likewise.
12130 (arm_cmpsi_insn): Likewise.
12131 (cmpsi_shiftsi): Likewise.
12132 (cmpsi_shiftsi_swp): Likewise.
12133 (arm_cmpsi_negshiftsi_si): Likewise.
12134 (movsicc_insn): Likewise.
12135 (movsfcc_soft_insn): Likewise.
12136 (arith_shiftsi): Likewise.
12137 (arith_shiftsi_compare0
12138 (arith_shiftsi_compare0_scratch
12139 (sub_shiftsi): Likewise.
12140 (sub_shiftsi_compare0
12141 (sub_shiftsi_compare0_scratch
12142 (and_scc): Likewise.
12143 (cond_move): Likewise.
12144 (if_plus_move): Likewise.
12145 (if_move_plus): Likewise.
12146 (if_move_not): Likewise.
12147 (if_not_move): Likewise.
12148 (if_shift_move): Likewise.
12149 (if_move_shift): Likewise.
12150 (if_shift_shift): Likewise.
12151 (if_not_arith): Likewise.
12152 (if_arith_not): Likewise.
12153 (cond_move_not): Likewise.
12154 (thumb1_ashlsi3): Set type attribute.
12155 (thumb1_ashrsi3): Likewise.
12156 (thumb1_lshrsi3): Likewise.
12157 (thumb1_rotrsi3): Likewise.
12158 (shiftsi3_compare0_scratch): Likewise.
12159 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12160 (neon_mov<mode>): Likewise.
371e77e3
UB
12161 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12162 attribute changes.
006bd006
SN
12163 (thumb2_movsi_insn): Likewise.
12164 (thumb2_cmpsi_neg_shiftsi): Likewise.
12165 (thumb2_extendqisi_v6): Likewise.
12166 (thumb2_zero_extendhisi2_v6): Likewise.
12167 (thumb2_zero_extendqisi2_v6): Likewise.
12168 (thumb2_shiftsi3_short): Likewise.
12169 (thumb2_addsi3_compare0_scratch): Likewise.
12170 (orsi_not_shiftsi_si): Likewise.
12171 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12172 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12173 changes.
12174 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12175 (1020alu_shift_op): Likewise.
12176 (1020alu_shift_reg_op): Likewise.
12177 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12178 (alu_shift_op): Likewise.
12179 (alu_shift_reg_op): Likewise.
12180 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12181 (11_alu_shift_op): Likewise.
12182 (11_alu_shift_reg_op): Likewise.
12183 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12184 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12185 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12186 changes.
006bd006
SN
12187 (cortex_a15_alu_shift): Likewise.
12188 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12189 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12190 changes.
006bd006
SN
12191 (cortex_a5_alu_shift): Likewise.
12192 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12193 changes.
12194 (cortex_a53_alu_shift): Likewise.
12195 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12196 changes.
12197 (cortex_a7_alu_reg): Likewise.
12198 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12199 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12200 changes.
006bd006
SN
12201 (cortex_a8_alu_shift): Likewise.
12202 (cortex_a8_alu_shift_reg): Likewise.
12203 (cortex_a8_mov): Likewise.
12204 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12205 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12206 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12207 changes.
12208 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12209 changes.
006bd006
SN
12210 (cortex_r4_mov): Likewise.
12211 (cortex_r4_alu_shift): Likewise.
12212 (cortex_r4_alu_shift_reg): Likewise.
12213 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12214 (526_alu_shift_op): Likewise.
12215 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12216 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12217 (626te_alu_shift_op): Likewise.
12218 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12219 (726te_alu_op): Likewise.
12220 (726te_alu_shift_op): Likewise.
12221 (726te_alu_shift_reg_op): Likewise.
12222 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12223 (mp626_alu_shift_op): Likewise.
12224 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12225 (pj4_alu_e1_conds): Likewise.
12226 (pj4_alu): Likewise.
12227 (pj4_alu_conds): Likewise.
12228 (pj4_shift): Likewise.
12229 (pj4_shift_conds): Likewise.
12230 (pj4_alu_shift): Likewise.
12231 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12232 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12233 changes.
006bd006
SN
12234 (cortexa7_older_only): Likewise.
12235 (cortexa7_younger): Likewise.
12236
651df1b2
DM
122372013-07-18 David Malcolm <dmalcolm@redhat.com>
12238
12239 * ipa-pure-const.c (generate_summary): Rename to...
12240 (pure_const_generate_summary): ... this.
12241
ea717bd7
IS
122422013-07-17 Iain Sandoe <iain@codesourcery.com>
12243
12244 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12245
a1259a13
YR
122462013-07-17 Yvan Roux <yvan.roux@linaro.org>
12247
12248 PR target/57909
12249 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12250 usage in HI mode.
12251
167f68ed
AK
122522013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12253
12254 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12255 enabled without -march=zEC12.
12256 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12257 flags to be set.
12258
f900a982
MR
122592013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12260
12261 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12262 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12263 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12264 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12265 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12266 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12267 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12268 ISA_HAS_FP4.
12269 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12270 and ISA_HAS_NMADD3_NMSUB3.
12271 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12272 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12273 (nmsub4<mode>, nmsub3<mode>): Likewise.
12274 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12275
d4ed27eb
MR
122762013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12277
12278 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12279 TARGET_MIPS5400 checking.
12280
7a5add18
PB
122812013-07-16 Jakub Jelinek <jakub@redhat.com>
12282 Peter Bergner <bergner@vnet.ibm.com>
12283
12284 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12285 registers in the comment.
12286 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12287 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12288 rather than FIRST_PSEUDO_REGISTERS.
12289
122902013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12291
12292 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12293 enable extra ISA flags with TARGET_HTM.
12294
d2ab0929
MR
122952013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12296
12297 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12298 Fix comment typos.
12299
839c74bc
CH
123002013-07-15 Cong Hou <congh@google.com>
12301
12302 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12303 in compare function for sorting.
12304
7a5add18 123052013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12306
12307 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12308 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12309 * config/rs6000/rs6000.opt: Add -mhtm option.
12310 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12311 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12312 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12313 __HTM__ if the HTM instructions are available.
12314 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12315 htm_spr_reg_operand): New define_predicates.
12316 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12317 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12318 Include htm.md.
12319 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12320 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12321 HTM builtin functions.
12322 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12323 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12324 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12325 (rs6000_builtin_mask_calculate): Likewise.
12326 (rs6000_option_override_internal): Likewise.
12327 (bdesc_htm): Add new HTM builtin support.
12328 (htm_spr_num): New function.
12329 (htm_spr_regno): Likewise.
12330 (rs6000_htm_spr_icode): Likewise.
12331 (htm_expand_builtin): Likewise.
12332 (htm_init_builtins): Likewise.
12333 (rs6000_expand_builtin): Add support for HTM builtin functions.
12334 (rs6000_init_builtins): Likewise.
371e77e3
UB
12335 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12336 option.
0258b6e4
PB
12337 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12338 (TARGET_HTM, MASK_HTM): Define macros.
12339 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12340 (FIXED_REGISTERS): Likewise.
12341 (CALL_USED_REGISTERS): Likewise.
12342 (CALL_REALLY_USED_REGISTERS): Likewise.
12343 (REG_ALLOC_ORDER): Likewise.
12344 (enum reg_class): Likewise.
12345 (REG_CLASS_NAMES): Likewise.
12346 (REG_CLASS_CONTENTS): Likewise.
12347 (REGISTER_NAMES): Likewise.
12348 (ADDITIONAL_REGISTER_NAMES): Likewise.
12349 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12350 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12351 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12352 * config/rs6000/htm.md: New file.
12353 * config/rs6000/htmintrin.h: New file.
12354 * config/rs6000/htmxlintrin.h: New file.
12355
87dd8ab0
MS
123562013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12357
12358 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12359 Define SYMBOL_TINY_GOT, update comment.
12360 * config/aarch64/aarch64.c
12361 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12362 (aarch64_expand_mov_immediate): Likewise.
12363 (aarch64_print_operand): Likewise.
12364 (aarch64_classify_symbol): Likewise.
12365 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12366 (ldr_got_tiny): Define.
12367
52d676b6
TG
123682013-07-13 Tobias Grosser <tobias@grosser.es>
12369
12370 PR tree-optimization/54094
12371 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12372 scheduling dimension for the parallelism check from the polyhedral
12373 information in the AST.
12374 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12375 in 2D + 1 form.
12376
286e8fc1
JM
123772013-07-13 Jason Merrill <jason@redhat.com>
12378
12379 * print-tree.c (debug_vec_tree): Use debug_raw.
12380 (debug_raw (vec<tree, va_gc> &)): New.
12381 (debug_raw (vec<tree, va_gc> *)): New.
12382 * tree.h: Declare them.
12383
e43257e8
BC
123842013-07-13 Bin Cheng <bin.cheng@arm.com>
12385
12386 * ifcvt.c (ifcvt_after_combine): New static variable.
12387 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12388 for size.
12389 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12390 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12391 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12392
da582d46
MR
123932013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12394
12395 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12396
18b0ea8f
MM
123972013-07-12 Michael Matz <matz@suse.de>
12398
12399 PR middle-end/55771
12400 * convert.c (convert_to_real): Reject non-float inner types.
12401
e4f0f84d
TB
124022013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12403
12404 * config/aarch64/aarch64-protos.h
12405 (aarch64_simd_immediate_valid_for_move): Remove.
12406 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12407 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12408 cases.
12409 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12410
76500022
SE
124112013-07-11 Steve Ellcey <sellcey@mips.com>
12412
12413 * config/mips/mips.c (mips_conditional_register_usage): Do not
12414 use t[0-7] registers in MIPS16 mode when optimizing for size.
12415
78039734
ST
124162013-07-11 Sriraman Tallam <tmsriram@google.com>
12417
12418 * config/i386/i386.c (dispatch_function_versions): Fix array
12419 indexing of function_version_info to match actual_versions.
12420
7b24b675
TJ
124212013-07-11 Teresa Johnson <tejohnson@google.com>
12422
12423 * vec.h (struct va_gc): Move release out-of-line.
12424 (va_gc::release): Call ggc_free on released vec.
12425
85d4cbb8
UW
124262013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12427
12428 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12429 Require GOT register as additional operand in UNSPEC.
12430 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12431 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12432 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12433 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12434 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12435 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12436 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12437
52b3f9e2
GJL
124382013-07-11 Georg-Johann Lay <avr@gjlay.de>
12439
12440 PR target/57631
12441 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12442 name seen by assembler/linker rather if available.
12443
3f3e266e
AS
124442013-07-11 Andreas Schwab <schwab@suse.de>
12445
12446 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12447
21231ca6
VM
124482013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12449
371e77e3 12450 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12451
d331d374
JM
124522013-07-10 Joseph Myers <joseph@codesourcery.com>
12453
673c2f63
JM
12454 * doc/tm.texi.in: Move hook documentation to ....
12455 * target.def: ... here.
12456
d331d374
JM
12457 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12458 text on @hook line.
12459 * doc/tm.texi: Regenerate.
12460
dfeadaa0
PC
124612013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12462
12463 PR c++/57869
12464 * doc/invoke.texi: Document -Wconditionally-supported.
12465
bb6f2bac
GJL
124662013-07-10 Georg-Johann Lay <avr@gjlay.de>
12467
12468 PR target/57844
12469 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12470 of my_fp.
12471
5219b232
GJL
124722013-07-10 Georg-Johann Lay <avr@gjlay.de>
12473
12474 PR target/57506
12475 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12476 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12477 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12478 Remove duplicate devices.
12479 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12480 * config/avr/t-multilib: Regenerate.
12481 * config/avr/avr-tables.opt: Regenerate.
12482 * doc/avr-mmcu.texi: Regenerate.
12483
283045c0
GJL
124842013-07-10 Georg-Johann Lay <avr@gjlay.de>
12485
12486 PR target/56987
12487 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12488
ceb2d59f 124892013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12490
ceb2d59f
GS
12491 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12492 the cost of MULT when optimizing for size.
12493
055e0a99
JBG
124942013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12495
12496 * config/cr16/cr16-protos.h: Don't include target.h.
12497
ef43e868
JM
124982013-07-09 Joseph Myers <joseph@codesourcery.com>
12499
12500 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12501 adjust register size for TDmode and TFmode for VSX registers.
12502
4a283fdf
KT
125032013-07-08 Kai Tietz <ktietz@redhat.com>
12504
12505 PR target/56892
12506 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12507 hook_bool_const_tree_true.
12508
2cf4c39e
AK
125092013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12510
12511 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12512 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12513 * config/s390/s390.md: Define FPR*_REGNUM constants.
12514 Fix FPR2_REGNUM constant (18 -> 17).
12515 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12516 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12517 ("trunc<BFP:mode><DFP_ALL:mode>2")
12518 ("trunc<DFP_ALL:mode><BFP:mode>2")
12519 ("*extend<BFP:mode><DFP_ALL:mode>2")
12520 ("*extend<DFP_ALL:mode><BFP:mode>2")
12521 ("extend<BFP:mode><DFP_ALL:mode>2")
12522 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12523 FPR4_REGNUM.
12524
e6ac0270 125252013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12526
6a2fa4b2 12527 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12528
b89b22fc
AK
125292013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12530
12531 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12532 and cfun_fpr_bit_p to cfun_fpr_save_p.
12533 (s390_frame_area, s390_register_info, s390_frame_info)
12534 (s390_emit_prologue, s390_emit_epilogue)
12535 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12536 register numbers.
12537 * config/s390/s390.h: Define *_REGNUM macros for floating point
12538 register numbers.
12539
07f398aa
EB
125402013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12541
12542 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12543
75fefa91
PCC
125442013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12545
12546 PR rtl-optimization/57786
12547 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12548 and break out of the loop when it is set to false.
12549
046f1eee
JJ
125502013-07-08 Jakub Jelinek <jakub@redhat.com>
12551
8140c065
JJ
12552 PR target/57819
12553 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12554 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12555 (const_int 63)) 0)).
12556 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12557 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12558 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12559
046f1eee
JJ
12560 PR rtl-optimization/57829
12561 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12562 mask bits outside of mode are just sign-extension from mode to HWI.
12563
930b700b
MZ
125642013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12565
12566 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12567 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12568 adjust_address instead of change_address to keep info about alignment.
12569 (emit_strmov): Remove.
12570 (emit_memmov): New function.
12571 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12572 (expand_movmem_epilogue): Likewise and return updated rtx for
12573 destination.
12574 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12575 destination and source.
12576 (decide_alignment): Refactor, handle vector_loop.
12577 (ix86_expand_movmem): Likewise.
12578 (ix86_expand_setmem): Likewise.
12579 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12580
7b9d1bd8
UB
125812013-07-07 Uros Bizjak <ubizjak@gmail.com>
12582
12583 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12584 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12585
eabb5f48
UB
125862013-07-06 Uros Bizjak <ubizjak@gmail.com>
12587
12588 * config/i386/sse.md (sse_movlhps): Change alternative 3
12589 of operand 2 to "m".
12590
125912013-07-06 Uros Bizjak <ubizjak@gmail.com>
12592
12593 PR target/57807
12594 * config/i386/sse.md (iptr): New mode attribute.
12595 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12596 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12597 (<sse>_vmmul<mode>3): Ditto.
12598 (<sse>_vmdiv<mode>3): Ditto.
12599 (sse_vmrcpv4sf2): Ditto.
12600 (<sse>_vmsqrt<mode>2): Ditto.
12601 (sse_vmrsqrtv4sf2): Ditto.
12602 (<sse>_vm<code><mode>3): Ditto.
12603 (avx_vmcmp<mode>3): Ditto.
12604 (<sse>_vmmaskcmp<mode>3): Ditto.
12605 (<sse>_comi): Ditto.
12606 (<sse>_ucomi): Ditto.
12607 (*xop_vmfrcz_<mode>): Ditto.
12608 (*fmai_fmadd_<mode>): Ditto.
12609 (*fmai_fmsub_<mode>): Ditto.
12610 (*fmai_fnmadd_<mode>): Ditto.
12611 (*fmai_fnmsub_<mode>): Ditto.
12612 (*fma4i_vmfmadd_<mode>): Ditto.
12613 (*fma4i_vmfmsub_<mode>): Ditto.
12614 (*fma4i_vmfnmadd_<mode>): Ditto.
12615 (*fma4i_vmfnmsub_<mode>): Ditto.
12616 (*xop_vmfrcz_<mode>): Ditto.
12617 (sse_cvtps2pi): Ditto.
12618 (sse_cvttps2pi): Ditto.
12619 (sse_cvtss2si): Ditto.
12620 (sse_cvtss2si_2): Ditto.
12621 (sse_cvtss2siq_2): Ditto.
12622 (sse_cvttss2si): Ditto.
12623 (sse_cvttss2siq): Ditto.
12624 (sse_cvtsd2si): Ditto.
12625 (sse_cvtsd2si_2): Ditto.
12626 (sse_cvtsd2siq_2): Ditto.
12627 (sse_cvttsd2si): Ditto.
12628 (sse_cvttsd2siq): Ditto.
12629 (sse_cvtsd2ss): Ditto.
12630 (sse_cvtss2sd): Ditto.
12631 (avx2_pbroadcast<mode>): Ditto.
12632 (avx2_pbroadcast<mode>_1): Ditto.
12633 (*avx_vperm_broadcast_v4sf): Ditto.
12634
12635 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12636 (sse_movlhps): Ditto.
12637 (sse_storehps): Ditto.
12638 (sse_loadhps): Ditto.
12639 (sse_storelps): Ditto.
12640 (sse_loadlps): Ditto.
12641 (*vec_concatv4sf): Ditto.
12642 (*vec_interleave_highv2df): Ditto.
12643 (*vec_interleave_lowv2df): Ditto.
12644 (*vec_extractv2df_1_sse): Ditto.
12645 (*vec_extractv2df_0_sse): Ditto.
12646 (sse2_storelpd): Ditto.
12647 (sse2_loadlpd): Ditto.
12648 (sse2_movsd): Ditto.
12649 (*vec_concatv4si): Ditto.
12650 (vec_concatv2di): Ditto.
12651
12652 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12653 for Intel asm dialect.
12654 (mmx_punpcklwd): Ditto.
12655 (mmx_punpckldq): Ditto.
12656
12657 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12658 for intel assembler dialect.
12659
1f6eac90
JJ
126602013-07-06 Jakub Jelinek <jakub@redhat.com>
12661
12662 PR target/29776
12663 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12664 for BUILT_IN_C{LZ,LRSB}*.
12665 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12666 * tree-vrp.c (extract_range_basic): Handle
12667 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12668 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12669 fall thru to code calling set_value*.
12670 * builtins.c (expand_builtin): Remove *IMAX cases.
12671 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12672 if width is bigger than 2*HWI.
12673
2b778c9d
VM
126742013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12675
12676 PR rtl-optimization/55342
12677 * lra-int.h (lra_subreg_reload_pseudos): New.
12678 * lra.c: Add undoing optional reloads to the block diagram.
12679 (lra_subreg_reload_pseudos): New.
12680 (lra_optional_reload_pseudos): Change comments.
12681 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12682 lra_optional_reload_pseudos after undo transformations.
12683 * lra-assigns.c (pseudo_prefix_title): New.
12684 (lra_setup_reg_renumber): Use it.
12685 (spill_for): Ditto. Check subreg reload pseudos too.
12686 (assign_by_spills): Consider subreg reload pseudos too.
12687 * lra-constraints.c (simplify_operand_subreg): Use
12688 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12689 (curr_insn_transform): Recognize and do optional reloads.
12690 (undo_optional_reloads): New.
12691 (lra_undo_inheritance): Call undo_optional_reloads.
12692
207156e4
TQ
126932013-07-05 Thomas Quinot <quinot@adacore.com>
12694
12695 * tree-complex.c (expand_complex_operations_1): Fix typo.
12696
8990e73a
TB
126972013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12698
12699 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12700 (tune_params): New member 'const vec_costs'.
12701 * config/aarch64/aarch64.c (generic_vector_cost): New.
12702 (generic_tunings): New member 'generic_vector_cost'.
12703 (aarch64_builtin_vectorization_cost): New.
12704 (aarch64_add_stmt_cost): New.
12705 (TARGET_VECTORIZE_ADD_STMT_COST): New.
12706 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
12707
f7bc421d
JJ
127082013-07-03 Jakub Jelinek <jakub@redhat.com>
12709
12710 PR target/57777
12711 * config/i386/predicates.md (vsib_address_operand): Disallow
12712 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
12713
e90d1568
HPN
127142013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
12715
12716 PR middle-end/55030
12717 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
12718 expand_builtin_setjmp_receiver.
12719 (expand_label): Adjust, call expand_builtin_setjmp_receiver
12720 with NULL for the label parameter.
12721 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
12722 the frame-pointer. Adjust comments.
12723 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
12724 only if LABEL is non-NULL.
12725
cbd7413b
YZ
127262013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
12727
12728 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
12729 (ARM_ABI_AAPCS64): Ditto.
12730 (arm_abi): Ditto.
12731 (ARM_DEFAULT_ABI): Ditto.
12732
dec11868
JG
127332013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
12734
12735 * config/aarch64/aarch64-builtins.c
12736 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
12737 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
12738 (st1): Likewise.
12739 * config/aarch64/aarch64-simd.md
12740 (aarch64_ld1<VALL:mode>): New.
12741 (aarch64_st1<VALL:mode>): Likewise.
12742 * config/aarch64/arm_neon.h
12743 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
12744
786fb9b6
ST
127452013-07-02 Sriraman Tallam <tmsriram@google.com>
12746
0ba6aff3
UB
12747 * config/i386/i386.c (gate_insert_vzeroupper): Check if
12748 target ISA is AVX.
786fb9b6
ST
12749 (ix86_option_override_internal):Turn on all -mavx target flags by
12750 default as they are dependent on AVX anyway.
12751
4b043553
CC
127522013-07-02 Cary Coutant <ccoutant@google.com>
12753
12754 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
12755 deterministic hash.
12756 (loc_checksum_ordered): Likewise.
12757 (hash_loc_operands): Remove inline keyword.
12758
c4e87a13
JJ
127592013-07-02 Jakub Jelinek <jakub@redhat.com>
12760
12761 PR tree-optimization/57741
12762 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
12763 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
12764 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
12765 Allow REAL_CST step_exprs if flag_associative_math.
12766 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
12767
26366d28
IB
127682013-07-02 Ian Bolton <ian.bolton@arm.com>
12769
0ba6aff3 12770 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 12771
2879bb2b
IB
127722013-07-02 Ian Bolton <ian.bolton@arm.com>
12773
12774 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
12775
afc5e8a6
KT
127762013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12777
12778 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
12779 encoding.
12780 (iorsi3_insn): Likewise.
12781 (arm_xorsi3): Likewise.
12782
31f8442b
SN
127832013-07-01 Sofiane Naci <sofiane.naci@arm.com>
12784
12785 * arm.md (attribute "wtype"): Delete. Move attribute values from here
12786 to ...
12787 (attribute "type"): ... here, and prefix with "wmmx_".
12788 (attribute "core_cycles"): Update for attribute changes.
12789 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
12790 (tbcstv4hi): Likewise.
12791 (tbcstv2si): Likewise.
12792 (iwmmxt_iordi3): Likewise.
12793 (iwmmxt_xordi3): Likewise.
12794 (iwmmxt_anddi3): Likewise.
12795 (iwmmxt_nanddi3): Likewise.
12796 (iwmmxt_arm_movdi): Likewise.
12797 (iwmmxt_movsi_insn): Likewise.
12798 (mov<mode>_internal): Likewise.
12799 (and<mode>3_iwmmxt): Likewise.
12800 (ior<mode>3_iwmmxt): Likewise.
12801 (xor<mode>3_iwmmxt): Likewise.
12802 (add<mode>3_iwmmxt): Likewise.
12803 (ssaddv8qi3): Likewise.
12804 (ssaddv4hi3): Likewise.
12805 (ssaddv2si3): Likewise.
12806 (usaddv8qi3): Likewise.
12807 (usaddv4hi3): Likewise.
12808 (usaddv2si3): Likewise.
12809 (sub<mode>3_iwmmxt): Likewise.
12810 (sssubv8qi3): Likewise.
12811 (sssubv4hi3): Likewise.
12812 (sssubv2si3): Likewise.
12813 (ussubv8qi3): Likewise.
12814 (ussubv4hi3): Likewise.
12815 (ussubv2si3): Likewise.
12816 (mulv4hi3_iwmmxt): Likewise.
12817 (smulv4hi3_highpart): Likewise.
12818 (umulv4hi3_highpart): Likewise.
12819 (iwmmxt_wmacs): Likewise.
12820 (iwmmxt_wmacsz): Likewise.
12821 (iwmmxt_wmacu): Likewise.
12822 (iwmmxt_wmacuz): Likewise.
12823 (iwmmxt_clrdi): Likewise.
12824 (iwmmxt_clrv8qi): Likewise.
12825 (iwmmxt_clr4hi): Likewise.
12826 (iwmmxt_clr2si): Likewise.
12827 (iwmmxt_uavgrndv8qi3): Likewise.
12828 (iwmmxt_uavgrndv4hi3): Likewise.
12829 (iwmmxt_uavgv8qi3): Likewise.
12830 (iwmmxt_uavgv4hi3): Likewise.
12831 (iwmmxt_tinsrb): Likewise.
12832 (iwmmxt_tinsrh): Likewise.
12833 (iwmmxt_tinsrw): Likewise.
12834 (iwmmxt_textrmub): Likewise.
12835 (iwmmxt_textrmsb): Likewise.
12836 (iwmmxt_textrmuh): Likewise.
12837 (iwmmxt_textrmsh): Likewise.
12838 (iwmmxt_textrmw): Likewise.
12839 (iwmxxt_wshufh): Likewise.
12840 (eqv8qi3): Likewise.
12841 (eqv4hi3): Likewise.
12842 (eqv2si3): Likewise.
12843 (gtuv8qi3): Likewise.
12844 (gtuv4hi3): Likewise.
12845 (gtuv2si3): Likewise.
12846 (gtv8qi3): Likewise.
12847 (gtv4hi3): Likewise.
12848 (gtv2si3): Likewise.
12849 (smax<mode>3_iwmmxt): Likewise.
12850 (umax<mode>3_iwmmxt): Likewise.
12851 (smin<mode>3_iwmmxt): Likewise.
12852 (umin<mode>3_iwmmxt): Likewise.
12853 (iwmmxt_wpackhss): Likewise.
12854 (iwmmxt_wpackwss): Likewise.
12855 (iwmmxt_wpackdss): Likewise.
12856 (iwmmxt_wpackhus): Likewise.
12857 (iwmmxt_wpackwus): Likewise.
12858 (iwmmxt_wpackdus): Likewise.
12859 (iwmmxt_wunpckihb): Likewise.
12860 (iwmmxt_wunpckihh): Likewise.
12861 (iwmmxt_wunpckihw): Likewise.
12862 (iwmmxt_wunpckilb): Likewise.
12863 (iwmmxt_wunpckilh): Likewise.
12864 (iwmmxt_wunpckilw): Likewise.
12865 (iwmmxt_wunpckehub): Likewise.
12866 (iwmmxt_wunpckehuh): Likewise.
12867 (iwmmxt_wunpckehuw): Likewise.
12868 (iwmmxt_wunpckehsb): Likewise.
12869 (iwmmxt_wunpckehsh): Likewise.
12870 (iwmmxt_wunpckehsw): Likewise.
12871 (iwmmxt_wunpckelub): Likewise.
12872 (iwmmxt_wunpckeluh): Likewise.
12873 (iwmmxt_wunpckeluw): Likewise.
12874 (iwmmxt_wunpckelsb): Likewise.
12875 (iwmmxt_wunpckelsh): Likewise.
12876 (iwmmxt_wunpckelsw): Likewise.
12877 (ror<mode>3): Likewise.
12878 (ashr<mode>3_iwmmxt): Likewise.
12879 (lshr<mode>3_iwmmxt): Likewise.
12880 (ashl<mode>3_iwmmxt): Likewise.
12881 (ror<mode>3_di): Likewise.
12882 (ashr<mode>3_di): Likewise.
12883 (lshr<mode>3_di): Likewise.
12884 (ashl<mode>3_di): Likewise.
12885 (iwmmxt_wmadds): Likewise.
12886 (iwmmxt_wmaddu): Likewise.
12887 (iwmmxt_tmia): Likewise.
12888 (iwmmxt_tmiaph): Likewise.
12889 (iwmmxt_tmiabb): Likewise.
12890 (iwmmxt_tmiatb): Likewise.
12891 (iwmmxt_tmiabt): Likewise.
12892 (iwmmxt_tmiatt): Likewise.
12893 (iwmmxt_tmovmskb): Likewise.
12894 (iwmmxt_tmovmskh): Likewise.
12895 (iwmmxt_tmovmskw): Likewise.
12896 (iwmmxt_waccb): Likewise.
12897 (iwmmxt_wacch): Likewise.
12898 (iwmmxt_waccw): Likewise.
12899 (iwmmxt_waligni): Likewise.
12900 (iwmmxt_walignr): Likewise.
12901 (iwmmxt_walignr0): Likewise.
12902 (iwmmxt_walignr1): Likewise.
12903 (iwmmxt_walignr2): Likewise.
12904 (iwmmxt_walignr3): Likewise.
12905 (iwmmxt_wsadb): Likewise.
12906 (iwmmxt_wsadh): Likewise.
12907 (iwmmxt_wsadbz): Likewise.
12908 (iwmmxt_wsadhz): Likewise.
12909 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
12910 (iwmmxt_wabsdiffb): Likewise.
12911 (iwmmxt_wabsdiffh): Likewise.
12912 (iwmmxt_wabsdiffw): Likewise.
12913 (iwmmxt_waddsubhx): Likewise
12914 (iwmmxt_wsubaddhx): Likewise.
12915 (addc<mode>3): Likewise.
12916 (iwmmxt_avg4): Likewise.
12917 (iwmmxt_avg4r): Likewise.
12918 (iwmmxt_wmaddsx): Likewise.
12919 (iwmmxt_wmaddux): Likewise.
12920 (iwmmxt_wmaddsn): Likewise.
12921 (iwmmxt_wmaddun): Likewise.
12922 (iwmmxt_wmulwsm): Likewise.
12923 (iwmmxt_wmulwum): Likewise.
12924 (iwmmxt_wmulsmr): Likewise.
12925 (iwmmxt_wmulumr): Likewise.
12926 (iwmmxt_wmulwsmr): Likewise.
12927 (iwmmxt_wmulwumr): Likewise.
12928 (iwmmxt_wmulwl): Likewise.
12929 (iwmmxt_wqmulm): Likewise.
12930 (iwmmxt_wqmulwm): Likewise.
12931 (iwmmxt_wqmulmr): Likewise.
12932 (iwmmxt_wqmulwmr): Likewise.
12933 (iwmmxt_waddbhusm): Likewise.
12934 (iwmmxt_waddbhusl): Likewise.
12935 (iwmmxt_wqmiabb): Likewise.
12936 (iwmmxt_wqmiabt): Likewise.
12937 (iwmmxt_wqmiatb): Likewise.
12938 (iwmmxt_wqmiatt): Likewise.
12939 (iwmmxt_wqmiabbn): Likewise.
12940 (iwmmxt_wqmiabtn): Likewise.
12941 (iwmmxt_wqmiatbn): Likewise.
12942 (iwmmxt_wqmiattn): Likewise.
12943 (iwmmxt_wmiabb): Likewise.
12944 (iwmmxt_wmiabt): Likewise.
12945 (iwmmxt_wmiatb): Likewise.
12946 (iwmmxt_wmiatt): Likewise.
12947 (iwmmxt_wmiabbn): Likewise.
12948 (iwmmxt_wmiabtn): Likewise.
12949 (iwmmxt_wmiatbn): Likewise.
12950 (iwmmxt_wmiattn): Likewise.
12951 (iwmmxt_wmiawbb): Likewise.
12952 (iwmmxt_wmiawbt): Likewise.
12953 (iwmmxt_wmiawtb): Likewise.
12954 (iwmmxt_wmiawtt): Likewise.
12955 (iwmmxt_wmiawbbn): Likewise.
12956 (iwmmxt_wmiawbtn): Likewise.
12957 (iwmmxt_wmiawtbn): Likewise.
12958 (iwmmxt_wmiawttn): Likewise.
12959 (iwmmxt_wmerge): Likewise.
12960 (iwmmxt_tandc<mode>3): Likewise.
12961 (iwmmxt_torc<mode>3): Likewise.
12962 (iwmmxt_torvsc<mode>3): Likewise.
12963 (iwmmxt_textrc<mode>3): Likewise.
12964 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
12965 (wmmxt_pack): Likewise.
12966 (wmmxt_mult_c1): Likewise.
12967 (wmmxt_mult_c2): Likewise.
12968 (wmmxt_alu_c1): Likewise.
12969 (wmmxt_alu_c2): Likewise.
12970 (wmmxt_alu_c3): Likewise.
12971 (wmmxt_transfer_c1): Likewise.
12972 (wmmxt_transfer_c2): Likewise.
12973 (wmmxt_transfer_c3): Likewise.
12974 (marvell_f_iwmmxt_wstr): Likewise.
12975 (marvell_f_iwmmxt_wldr): Likewise.
12976
bdb7bf8a
YZ
129772013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
12978
0ba6aff3 12979 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 12980
e6631d38
VM
129812013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12982
12983 Revert:
12984 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12985 * lra-constraints.c (need_for_split_p): Check call used hard regs
12986 living through calls.
12987
12988 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
12989 call used regs for call insn.
12990
53c1275b
JJ
129912013-06-28 Jakub Jelinek <jakub@redhat.com>
12992
12993 PR target/57736
0ba6aff3
UB
12994 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
12995 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 12996
1141ed3f
BI
129972013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
12998
12999 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13000
e32e4c4a
VM
130012013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13002
13003 * lra-constraints.c (need_for_split_p): Check call used hard regs
13004 living through calls.
13005
f161bfd3
MM
130062013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13007
13008 PR target/57744
13009 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13010 to tie with any other modes. Eliminate Altivec vector mode tests,
13011 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13012 code, to return 0 if testing MODE2 for a condition, if we've
13013 already tested MODE1 for the same condition.
13014
7eda14e1
MS
130152013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13016
13017 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13018 layout.
13019
c822f852
MS
130202013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13021
13022 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13023 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13024
da4f13a4
MS
130252013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13026
0ba6aff3
UB
13027 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13028 Define.
da4f13a4
MS
13029 (aarch64_symbolic_constant_p): Remove.
13030 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13031 static. Fix line length and white space.
13032 (aarch64_symbolic_constant_p): Remove.
13033 * config/aarch64/predicates.md (aarch64_valid_symref):
13034 Use aarch64_classify_symbol_expression.
13035
956a95a5
KT
130362013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13037
13038 * config/arm/constraints.md (Ts): New constraint.
13039 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13040 16-bit encodings.
13041 (compare_scc): Use "Ts" constraint for operand 0.
13042 (ior_scc_scc): Likewise.
13043 (and_scc_scc): Likewise.
13044 (and_scc_scc_nodom): Likewise.
13045 (ior_scc_scc_cmp): Likewise for operand 7.
13046 (and_scc_scc_cmp): Likewise.
13047 * config/arm/thumb2.md (thumb2_movsi_insn):
13048 Add alternatives for 16-bit encodings.
13049 (thumb2_movhi_insn): Likewise.
13050 (thumb2_movsicc_insn): Likewise.
13051 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13052 (thumb2_negscc): Use "Ts" constraint.
13053 Move mvn instruction outside cond_exec block.
13054 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13055 for 16-bit encodings.
13056
31dfce10
KT
130572013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13058
13059 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13060 encoding.
13061 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13062 (mulsi3subsi): Likewise.
13063 (mulsidi3adddi): Likewise.
13064 (mulsidi3_v6): Likewise.
13065 (umulsidi3_v6): Likewise.
13066 (umulsidi3adddi_v6): Likewise.
13067 (smulsi3_highpart_v6): Likewise.
13068 (umulsi3_highpart_v6): Likewise.
13069 (mulhisi3tb): Likewise.
13070 (mulhisi3bt): Likewise.
13071 (mulhisi3tt): Likewise.
13072 (maddhisi4): Likewise.
13073 (maddhisi4tb): Likewise.
13074 (maddhisi4tt): Likewise.
13075 (maddhidi4): Likewise.
13076 (maddhidi4tb): Likewise.
13077 (maddhidi4tt): Likewise.
13078 (zeroextractsi_compare0_scratch): Likewise.
13079 (insv_zero): Likewise.
13080 (insv_t2): Likewise.
13081 (anddi_notzesidi_di): Likewise.
13082 (anddi_notsesidi_di): Likewise.
13083 (andsi_notsi_si): Likewise.
13084 (iordi_zesidi_di): Likewise.
13085 (xordi_zesidi_di): Likewise.
13086 (andsi_iorsi3_notsi): Likewise.
13087 (smax_0): Likewise.
13088 (smax_m1): Likewise.
13089 (smin_0): Likewise.
13090 (not_shiftsi): Likewise.
13091 (unaligned_loadsi): Likewise.
13092 (unaligned_loadhis): Likewise.
13093 (unaligned_loadhiu): Likewise.
13094 (unaligned_storesi): Likewise.
13095 (unaligned_storehi): Likewise.
13096 (extv_reg): Likewise.
13097 (extzv_t2): Likewise.
13098 (divsi3): Likewise.
13099 (udivsi3): Likewise.
13100 (arm_zero_extendhisi2addsi): Likewise.
13101 (arm_zero_extendqisi2addsi): Likewise.
13102 (compareqi_eq0): Likewise.
13103 (arm_extendhisi2_v6): Likewise.
13104 (arm_extendqisi2addsi): Likewise.
13105 (arm_movt): Likewise.
13106 (thumb2_ldrd): Likewise.
13107 (thumb2_ldrd_base): Likewise.
13108 (thumb2_ldrd_base_neg): Likewise.
13109 (thumb2_strd): Likewise.
13110 (thumb2_strd_base): Likewise.
13111 (thumb2_strd_base_neg): Likewise.
13112 (arm_negsi2): Add alternative for 16-bit encoding.
13113 (arm_one_cmplsi2): Likewise.
13114
1572e697
KT
131152013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13116
13117 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13118 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13119 (movdfcc): Likewise.
13120 * config/arm/vfp.md (*thumb2_movsf_vfp):
13121 Disable predication for arm_restrict_it.
13122 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13123 (*thumb2_movdfcc_vfp): Likewise.
13124 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13125 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13126 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13127 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13128 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13129 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13130 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13131 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13132 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13133 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13134 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13135 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13136 Disable predication for arm_restrict_it.
13137
ebf8f0ea
KY
131382013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13139
13140 * config/i386/bmiintrin.h (_bextr_u32): New.
13141 (_bextr_u64): Ditto.
13142
a290fcda
RS
131432013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13144
13145 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13146 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13147 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13148 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13149 * config/mips/n32-elf.h: ...this new file.
13150
ea169996
MG
131512013-06-27 Marc Glisse <marc.glisse@inria.fr>
13152
13153 PR target/57224
13154 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13155 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13156
12211b99 131572013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13158
13159 * config/mips/mips-tables.opt: Regenerate.
13160 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13161 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13162 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13163
2444244e
JJ
131642013-06-27 Jakub Jelinek <jakub@redhat.com>
13165
cd06d2a2
JJ
13166 PR target/57623
13167 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13168 constraints of operand 1 and 2.
13169
2444244e
JJ
13170 PR target/57623
13171 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13172 to match RTL canonicalization. Swap predicates and
13173 constraints of operand 1 and 2.
13174
2f259720
VM
131752013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13176
0ba6aff3
UB
13177 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13178 Process OP_INOUT regs for splitting too.
2f259720 13179
fef4d2b3
JJ
131802013-06-27 Jakub Jelinek <jakub@redhat.com>
13181
13182 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13183 decl before the loop, initialize to NULL.
13184 (vectorizable_load): Initialize ptr_incr to NULL.
13185
79ee9826
MJ
131862013-06-27 Martin Jambor <mjambor@suse.cz>
13187
13188 PR lto/57208
13189 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13190 * ipa-ref.c (ipa_maybe_record_reference): New function.
13191 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13192 * ipa-cp.c (create_specialized_node): Record potential references from
13193 aggvals.
13194 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13195
e18b4a81
YZ
131962013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13197
13198 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13199 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13200 'mode' to force_reg.
13201 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13202 (aarch64_expand_mov_immediate): Likewise.
13203
9c023bf0
YZ
132042013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13205
13206 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13207 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13208
5a3fe9b6
AK
132092013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13210
13211 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13212 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13213 (struct machine_function): Add tbegin_p.
13214 (s390_canonicalize_comparison): Fold CC mode compares to
13215 conditional jump if possible.
13216 (s390_emit_jump): Return the emitted jump.
13217 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13218 Handle CCRAWmode compares.
13219 (s390_option_override): Default to -mhtm if available.
13220 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13221 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13222 FPRs instead of df_regs_ever_live_p.
13223 (s390_optimize_nonescaping_tx): New function.
13224 (s390_init_frame_layout): Extend clobbered_regs array to cover
13225 FPRs as well.
13226 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13227 (s390_expand_tbegin): New function.
13228 (enum s390_builtin): New enum definition.
13229 (code_for_builtin): New array definition.
13230 (s390_init_builtins): New function.
13231 (s390_expand_builtin): New function.
13232 (TARGET_INIT_BUILTINS): Define.
13233 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13234 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13235 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13236 (s390_alc_comparison): Likewise.
13237 * config/s390/s390-modes.def: Add CCRAWmode.
13238 * config/s390/s390.h (processor_flags): Add PF_TX.
13239 (TARGET_CPU_HTM): Define macro.
13240 (TARGET_HTM): Define macro.
13241 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13242 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13243 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13244 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13245 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13246 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13247 ("*cc_to_int"): Move up.
13248 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13249 constants other than 0.
13250 ("*ccraw_to_int"): New insn and splitter definition.
13251 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13252 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13253 ("tx_assist"): New expander.
13254 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13255 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13256 * config/s390/s390.opt: Add -mhtm option.
13257 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13258 * config/s390/htmxlintrin.h: New file.
13259 * config/s390/htmintrin.h: New file.
13260 * config/s390/s390intrin.h: New file.
13261 * doc/extend.texi: Document htm builtins.
13262 * config.gcc: Add the new header files to extra_headers.
13263
9e216629
TS
132642013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13265
13266 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13267 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13268
fd8c65e7 132692013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13270 Pat Haugen <pthaugen@us.ibm.com>
13271 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13272
13273 * config/rs6000/power8.md: New.
13274 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13275 setting for power8 entry.
13276 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13277 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13278 test for Power4/Power5 only.
13279 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13280 support.
13281 (force_new_group): Adjust comment.
13282 * config/rs6000/rs6000.md: Include power8.md.
13283
b24a2ce5
GY
132842013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13285
13286 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13287 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13288 declaration.
13289 (tune_params): Update comment.
13290 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13291 (arm_max_conditional_execute): New function.
13292 (thumb2_final_prescan_insn): Use max_insn_skipped and
13293 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13294
f6fdeb62
JJ
132952013-06-25 Jakub Jelinek <jakub@redhat.com>
13296
13297 PR tree-optimization/57705
13298 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13299 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13300 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13301 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13302
c13bc3d9
MJ
133032013-06-25 Martin Jambor <mjambor@suse.cz>
13304
13305 PR middle-end/57670
13306 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13307 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13308 calls in the dump.
13309 (ipa_note_param_call): Initialize member_ptr flag.
13310 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13311 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13312 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13313 (ipa_read_indirect_edge_info): Likewise.
13314
8a845901
RB
133152013-06-25 Richard Biener <rguenther@suse.de>
13316
13317 PR middle-end/56977
13318 * passes.c (init_optimization_passes): Move pass_fold_builtins
13319 and pass_dce earlier with -Og.
13320
33be0bec
EB
133212013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13322
13323 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13324 <BIT_FIELD_REF>: Remove trailing TAB.
13325 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13326 remove blank line.
13327
5fe8e757
MJ
133282013-06-24 Martin Jambor <mjambor@suse.cz>
13329
13330 PR tree-optimization/57358
13331 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13332 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13333 (ipa_analyze_params_uses): Generate pessimistic info when true.
13334
44a60244
MJ
133352013-06-24 Martin Jambor <mjambor@suse.cz>
13336
13337 PR tree-optimization/57539
13338 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13339 global.inlined_to of the new node to it. All callers changed.
13340 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13341 inlining_into, pass it to cgraph_clone_node.
13342 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13343 ipa_free_edge_args_substructures.
13344 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13345 rdesc linked list. Do not assert rdesc edges have inlined caller.
13346 Assert we have found an rdesc in the rdesc list.
13347
7c5848b8
RB
133482013-06-24 Richard Biener <rguenther@suse.de>
13349
0ba6aff3 13350 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13351 (pointer_set_lookup): Declare.
13352 (class pointer_map): New template class implementing a
13353 generic pointer to T map.
13354 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13355 pointer_map<T>::contains, pointer_map<T>::insert,
13356 pointer_map<T>::traverse): New functions.
13357 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13358 (pointer_set_lookup): New function.
13359 (pointer_set_contains): Use pointer_set_lookup.
13360 (pointer_set_insert): Likewise.
13361 (insert_aux): Remove.
13362 (struct pointer_map_t): Embed a pointer_set_t.
13363 (pointer_map_create): Adjust.
13364 (pointer_map_destroy): Likewise.
13365 (pointer_map_contains): Likewise.
13366 (pointer_map_insert): Likewise.
13367 (pointer_map_traverse): Likewise.
13368 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13369 pointer_map<unsigned> instead of a pointer_map_t.
13370 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13371 (streamer_tree_cache_lookup): Likewise.
13372 (streamer_tree_cache_create): Likewise.
13373 (streamer_tree_cache_delete): Likewise.
13374 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13375 pointer_map<unsigned> instead of a pointer_map_t.
13376 (lto_init_tree_ref_encoder): Adjust.
13377 (lto_destroy_tree_ref_encoder): Likewise.
13378 * lto-section-out.c (lto_output_decl_index): Likewise.
13379 (lto_record_function_out_decl_state): Likewise.
13380 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13381
3dbc97a9
RB
133822013-06-24 Richard Biener <rguenther@suse.de>
13383
13384 PR tree-optimization/57488
13385 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13386
8345965a
AM
133872013-06-24 Alan Modra <amodra@gmail.com>
13388
13389 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13390 (gen_easy_altivec_constant): Likewise.
13391 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13392 easy_vector_constant_msb): Likewise.
13393
b7df379f
JJ
133942013-06-23 Jakub Jelinek <jakub@redhat.com>
13395
13396 PR target/57688
13397 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13398 add missing return true.
13399
12211b99 134002013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13401
13402 PR target/52483
13403 * config/sh/predicates.md (general_extend_operand): Invoke
13404 general_movsrc_operand for memory operands.
13405 (general_movsrc_operand): Allow reg+reg addressing, do not use
13406 general_operand for memory operands.
13407
97db2bf7
ST
134082013-06-23 Sriraman Tallam <tmsriram@google.com>
13409
13410 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13411 when current target options does not apply.
13412 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13413 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13414 * config/i386/bmiintrin.h: Pass appropriate target
13415 attributes to header.
97db2bf7
ST
13416 * config/i386/mmintrin.h: Ditto.
13417 * config/i386/nmmintrin.h: Ditto.
13418 * config/i386/avx2intrin.h: Ditto.
13419 * config/i386/fxsrintrin.h: Ditto.
13420 * config/i386/tbmintrin.h: Ditto.
13421 * config/i386/xsaveintrin.h: Ditto.
13422 * config/i386/f16cintrin.h: Ditto.
13423 * config/i386/xtestintrin.h: Ditto.
13424 * config/i386/xsaveoptintrin.h: Ditto.
13425 * config/i386/bmi2intrin.h: Ditto.
13426 * config/i386/lzcntintrin.h: Ditto.
13427 * config/i386/smmintrin.h: Ditto.
13428 * config/i386/wmmintrin.h: Ditto.
13429 * config/i386/x86intrin.h: Remove all header include guards.
13430 * config/i386/prfchwintrin.h: Ditto.
13431 * config/i386/pmmintrin.h: Ditto.
13432 * config/i386/tmmintrin.h: Ditto.
13433 * config/i386/xmmintrin.h: Ditto.
13434 * config/i386/popcntintrin.h: Ditto.
13435 * config/i386/rdseedintrin.h: Ditto.
13436 * config/i386/ammintrin.h: Ditto.
13437 * config/i386/emmintrin.h: Ditto.
13438 * config/i386/immintrin.h: Remove all header include guards.
13439 * config/i386/fma4intrin.h: Ditto.
13440 * config/i386/lwpintrin.h: Ditto.
13441 * config/i386/xopintrin.h: Ditto.
13442 * config/i386/ia32intrin.h: Ditto.
13443 * config/i386/avxintrin.h: Ditto.
13444 * config/i386/rtmintrin.h: Ditto.
13445 * config/i386/fmaintrin.h: Ditto.
13446 * config/i386/mm3dnow.h: Ditto.
13447
495e6879
ST
134482013-06-22 Sriraman Tallam <tmsriram@google.com>
13449
13450 * common/config/i386/i386-common.c: Handle LZCNT.
13451
11e8f687
AK
134522013-06-22 Andi Kleen <ak@linux.intel.com>
13453
13454 * doc/extend.texi: Use __atomic_store_n instead of
13455 __atomic_store in HLE example.
13456
12211b99 134572013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13458
13459 * config/sh/sh.c: Remove <cstdlib> workaround.
13460
927f908b
AK
134612013-06-21 Andi Kleen <ak@linux.intel.com>
13462
0ba6aff3 13463 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13464
cca410b6
AK
134652013-06-21 Andi Kleen <ak@linux.intel.com>
13466
13467 * doc/extend.texi: Document that __atomic_clear and
13468 __atomic_test_and_set should only be used with bool.
13469
d84db1ed
JH
134702013-06-20 Jan Hubicka <jh@suse.cz>
13471
13472 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13473 types_same_for_odr.
13474 * tree.c (decls_same_for_odr): New function.
13475 (same_for_edr): New function.
13476 (types_same_for_odr): New function.
13477 (get_binfo_at_offset): Use it.
13478 * tree.h (types_same_for_odr): Declare.
13479
12211b99 134802013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13481 Jason Merrill <jason@redhat.com>
13482
13483 * system.h: Include <cstdlib> as well as <stdlib.h>.
13484
49b4ff63
UB
134852013-06-20 Uros Bizjak <ubizjak@gmail.com>
13486
13487 PR target/57655
13488 * config/i386/i386.c (construct_container): Report error if
13489 long double is used with disabled x87 float returns.
13490
7a89ad00
JH
134912013-06-20 Jan Hubicka <jh@suse.cz>
13492
13493 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13494
12211b99 134952013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13496
13497 PR rtl-optimization/57425
13498 PR rtl-optimization/57569
13499 * alias.c (write_dependence_p): Remove parameters mem_mode and
13500 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13501 Changed all callers.
13502 (canon_anti_dependence): Get comments and semantics in sync.
13503 Add parameter mem_canonicalized. Changed all callers.
13504 * rtl.h (canon_anti_dependence): Update prototype.
13505
d16e9a99
RB
135062013-06-20 Richard Biener <rguenther@suse.de>
13507
13508 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13509 byte case, inline streamer_read_uchar and defer section
13510 overrun check.
13511
c3a9b91b
RB
135122013-06-20 Richard Biener <rguenther@suse.de>
13513
13514 PR tree-optimization/57584
13515 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13516 SSA names into the expanded expression that take part in
13517 abnormal coalescing.
13518
371e77e3 135192013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13520
13521 * gcov.c (print_usage): Handle new option.
13522 (process_args): Ditto.
13523 (get_gcov_intermediate_filename): New function.
13524 (output_intermediate_file): New function.
13525 (output_gcov_file): New function
13526 (generate_results): Handle new option.
13527 (release_function): Relase demangled name.
13528 (read_graph_file): Handle demangled name.
13529 (output_lines): Ditto.
13530 * doc/gcov.texi: Document gcov intermediate format.
13531
11f5b71a
VM
135322013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13533
13534 PR bootstrap/57604
13535 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13536 (lra_emit_add): Use the functions. Add comment about Y as an
13537 address segment.
13538
e1f9340b
DE
135392013-06-19 David Edelsohn <dje.gcc@gmail.com>
13540
13541 PR driver/57652
13542 * collect2.c (collect_atexit): New.
13543 (collect_exit): Delete.
13544 (main): Register collect_atexit with atexit.
13545 (collect_wait): Change collect_exit to exit.
13546 (do_wait): Same.
13547 * collect2.h (collect_exit): Delete.
13548 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13549
e3f9e0ac
WM
135502013-06-19 Wei Mi <wmi@google.com>
13551
13552 PR rtl-optimization/57518
13553 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13554 if regno is used in paradoxical subreg.
13555 (update_equiv_regs): Check pdx_subregs[regno] before
13556 set a reg to be equivalent with a mem.
13557
a09f1a76
MK
135582013-06-19 Matthias Klose <doko@ubuntu.com>
13559
13560 PR driver/57651
13561 * file-find.h (find_a_file): Add a mode parameter.
13562 * file-find.c (find_a_file): Likewise.
13563 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13564 with X_OK for the executables.
13565 * collect2.c (main): Call find_a_file with X_OK.
13566
7d18b0ad
SE
135672013-06-19 Steve Ellcey <sellcey@mips.com>
13568
13569 PR target/56942
13570 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13571 Use NEXT_INSN instead of next_real_insn.
13572
6a6dac52
JH
135732013-06-19 Jan Hubicka <jh@suse.cz>
13574
13575 * cgraph.h (const_value_known_p): Replace by ...
13576 (ctor_for_folding): .. this one.
13577 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13578 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13579 * expr.c (expand_expr_real_1): Likewise.
13580 (string_constant): Likewise.
13581 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13582 * ipa.c (process_references): Likewise.
13583 (symtab_remove_unreachable_nodes): Likewise.
13584 * ipa-inline-analysis.c (param_change_prob): Likewise.
13585 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13586 (get_base_constructor): Likwise.
13587 * varpool.c (varpool_remove_node): Likewise.
13588 (varpool_remove_initializer): LIkewise.
13589 (dump_varpool_node): LIkwise.
13590 (const_value_known_p): Rewrite to ...
13591 (ctor_for_folding): ... this one.
13592
216c12ab
JJ
135932013-06-19 Jakub Jelinek <jakub@redhat.com>
13594
13595 PR driver/57651
13596 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13597 PERSONALITY in $PATH derived prefixes.
13598
d53e2f99
JL
135992013-06-19 Jeff Law <law@redhat.com>
13600
ecdbf306
JL
13601 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13602 in comment.
13603
d53e2f99
JL
13604 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13605 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13606 booleans.
13607
89e7fc04
SN
136082013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13609
13610 * config/arm/vfp.md: Move VFP instruction classification documentation
13611 to ...
13612 * config/arm/arm.md: ... here. Update instruction classification
13613 documentation.
13614
5e7f6aaa
RE
136152013-06-19 Richard Earnshaw <rearnsha@arm.com>
13616
13617 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13618 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13619 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13620
5fdc1e5d
SB
136212013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13622
13623 PR target/57609
13624 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13625 with NEXT_INSN. Use tablejump_p to check for jump table data
13626 insns.
13627
e952afba
PC
136282013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13629
13630 PR c++/56544
13631 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13632 that now in C++ the value is correct per the C++ standards.
13633
3fd0303a
RB
136342013-06-19 Richard Biener <rguenther@suse.de>
13635
13636 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13637 for global context.
13638
b04e4b08
AK
136392013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13640
13641 Revert:
13642 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13643
13644 PR target/57609
13645 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13646 with next_active_insn.
13647
bef8491a
ST
136482013-06-18 Sriraman Tallam <tmsriram@google.com>
13649
13650 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13651 functions are inlined during failures to flag an error.
13652 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13653 in early inline pass.
22fc7d3d 13654
c21b257d
L
136552013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13656
13657 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13658 in comments.
13659
33255ae3
JB
136602013-06-18 Julian Brown <julian@codesourcery.com>
13661
13662 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13663 Permit virtual register pre-reload if !strict.
13664 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13665 change.
13666 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13667 prototype.
13668 * config/arm/neon.md (movmisalign<mode>): Use
13669 neon_perm_struct_or_reg_operand instead of
13670 neon_struct_or_register_operand.
13671 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13672 neon_permissive_struct_operand instead of neon_struct_operand.
13673 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13674 neon_vector_mem_operand.
13675 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13676 neon_vector_mem_operand.
13677 (neon_permissive_struct_operand): New.
13678 (neon_struct_or_register_operand): Rename to...
13679 (neon_perm_struct_or_reg_operand): This. Adjust call to
13680 neon_vector_mem_operand.
13681
d579fcda
RB
136822013-06-18 Richard Biener <rguenther@suse.de>
13683
13684 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13685 * lto-streamer.h: Include pointer-set.h.
13686 (struct lto_decl_slot): Remove.
13687 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13688 Remove next_index entry.
13689 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13690 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13691 (lto_init_tree_ref_encoder): Adjust.
13692 (lto_destroy_tree_ref_encoder): Likewise.
13693 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13694 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13695 (lto_output_decl_index): Adjust.
13696 (lto_new_out_decl_state): Likewise.
13697 (lto_record_function_out_decl_state): Likewise.
13698 * lto-streamer-out.c (copy_function): Likewise.
13699
31ee20ba
RB
137002013-06-18 Richard Biener <rguenther@suse.de>
13701
13702 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13703 * cgraphunit.c: Include cfgloop.h.
13704 (init_lowered_empty_function): Initialize the loop tree.
13705 (assemble_thunk): Insert new BBs into loops.
13706
ac0511f2
RB
137072013-06-18 Richard Biener <rguenther@suse.de>
13708
13709 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
13710 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
13711 the map from cache entry to cache index optional.
13712 (streamer_tree_cache_replace_tree): Adjust accordingly.
13713 (streamer_tree_cache_append): Likewise.
13714 (streamer_tree_cache_delete): Likewise.
13715 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
13716 streamer cache map from cache entry to cache index.
13717 * lto-streamer-out.c (create_output_block): Adjust.
13718
09485a08
SN
137192013-06-18 Sofiane Naci <sofiane.naci@arm.com>
13720
22fc7d3d
UB
13721 * config/arm/arm.md (attribute "insn"): Move multiplication and
13722 division attributes to...
09485a08
SN
13723 (attribute "type"): ... here. Remove mult.
13724 (attribute "mul32"): New attribute.
13725 (attribute "mul64"): Add umaal.
13726 (*arm_mulsi3): Update attributes.
13727 (*arm_mulsi3_v6): Likewise.
13728 (*thumb_mulsi3): Likewise.
13729 (*thumb_mulsi3_v6): Likewise.
13730 (*mulsi3_compare0): Likewise.
13731 (*mulsi3_compare0_v6): Likewise.
13732 (*mulsi_compare0_scratch): Likewise.
13733 (*mulsi_compare0_scratch_v6): Likewise.
13734 (*mulsi3addsi): Likewise.
13735 (*mulsi3addsi_v6): Likewise.
13736 (*mulsi3addsi_compare0): Likewise.
13737 (*mulsi3addsi_compare0_v6): Likewise.
13738 (*mulsi3addsi_compare0_scratch): Likewise.
13739 (*mulsi3addsi_compare0_scratch_v6): Likewise.
13740 (*mulsi3subsi): Likewise.
13741 (*mulsidi3adddi): Likewise.
13742 (*mulsi3addsi_v6): Likewise.
13743 (*mulsidi3adddi_v6): Likewise.
13744 (*mulsidi3_nov6): Likewise.
13745 (*mulsidi3_v6): Likewise.
13746 (*umulsidi3_nov6): Likewise.
13747 (*umulsidi3_v6): Likewise.
13748 (*umulsidi3adddi): Likewise.
13749 (*umulsidi3adddi_v6): Likewise.
13750 (*smulsi3_highpart_nov6): Likewise.
13751 (*smulsi3_highpart_v6): Likewise.
13752 (*umulsi3_highpart_nov6): Likewise.
13753 (*umulsi3_highpart_v6): Likewise.
13754 (mulhisi3): Likewise.
13755 (*mulhisi3tb): Likewise.
13756 (*mulhisi3bt): Likewise.
13757 (*mulhisi3tt): Likewise.
13758 (maddhisi4): Likewise.
13759 (*maddhisi4tb): Likewise.
13760 (*maddhisi4tt): Likewise.
13761 (maddhidi4): Likewise.
13762 (*maddhidi4tb): Likewise.
13763 (*maddhidi4tt): Likewise.
13764 (divsi3): Likewise.
13765 (udivsi3): Likewise.
13766 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
13767 (thumb2_mulsi_short_compare0): Likewise.
13768 (thumb2_mulsi_short_compare0_scratch): Likewise.
13769 * config/arm/arm1020e.md (1020mult1): Update attribute change.
13770 (1020mult2): Likewise.
13771 (1020mult3): Likewise.
13772 (1020mult4): Likewise.
13773 (1020mult5): Likewise.
13774 (1020mult6): Likewise.
22fc7d3d
UB
13775 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
13776 change.
09485a08
SN
13777 (cortex_a15_mult64): Likewise.
13778 (cortex_a15_sdiv): Likewise.
13779 (cortex_a15_udiv): Likewise.
13780 * config/arm/arm1026ejs.md (mult1): Update attribute change.
13781 (mult2): Likewise.
13782 (mult3): Likewise.
13783 (mult4): Likewise.
13784 (mult5): Likewise.
13785 (mult6): Likewise.
13786 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
13787 (pj4_ir_div): Likewise.
13788 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
13789 (11_mult2): Likewise.
13790 (11_mult3): Likewise.
13791 (11_mult4): Likewise.
13792 (11_mult5): Likewise.
13793 (11_mult6): Likewise.
13794 (11_mult7): Likewise.
13795 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
13796 (cortex_a8_mla): Likewise.
13797 (cortex_a8_mull): Likewise.
13798 (cortex_a8_smulwy): Likewise.
13799 (cortex_a8_smlald): Likewise.
13800 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
13801 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
13802 (cortex_r4_mul_3): Likewise.
13803 (cortex_r4_mla_4): Likewise.
13804 (cortex_r4_mla_3): Likewise.
13805 (cortex_r4_smlald): Likewise.
13806 (cortex_r4_mull): Likewise.
13807 (cortex_r4_sdiv): Likewise.
13808 (cortex_r4_udiv): Likewise.
13809 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
13810 (cortex_a7_idiv): Likewise.
13811 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
13812 (9_mult2): Likewise.
13813 (9_mult3): Likewise.
13814 (9_mult4): Likewise.
13815 (9_mult5): Likewise.
13816 (9_mult6): Likewise.
13817 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
13818 (cortex_a53_sdiv): Likewise.
13819 (cortex_a53_udiv): Likewise.
13820 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
13821 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
13822 (mp626_mult2): Likewise.
13823 (mp626_mult3): Likewise.
13824 (mp626_mult4): Likewise.
13825 * config/arm/fa526.md (526_mult1): Update attribute change.
13826 (526_mult2): Likewise.
13827 * config/arm/arm-generic.md (mult): Update attribute change.
13828 (mult_ldsched_strongarm): Likewise.
13829 (mult_ldsched): Likewise.
13830 (multi_cycle): Likewise.
13831 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
13832 * config/arm/fa606te.md (606te_mult1): Update attribute change.
13833 (606te_mult2): Likewise.
13834 (606te_mult3): Likewise.
13835 (606te_mult4): Likewise.
13836 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
13837 (cortex_a9_mac16): Likewise.
13838 (cortex_a9_multiply): Likewise.
13839 (cortex_a9_mac): Likewise.
13840 (cortex_a9_multiply_long): Likewise.
13841 * config/arm/fa626te.md (626te_mult1): Update attribute change.
13842 (626te_mult2): Likewise.
13843 (626te_mult3): Likewise.
13844 (626te_mult4): Likewise.
13845
8951f345
RB
138462013-06-18 Richard Biener <rguenther@suse.de>
13847
13848 PR lto/57334
13849 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
13850
d8101d05
AK
138512013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13852
13853 PR target/57609
13854 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13855 with next_active_insn.
13856
69eff9da
AM
138572013-06-18 Alan Modra <amodra@gmail.com>
13858
13859 * config/rs6000/rs6000.h (enum data_align): New.
13860 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
13861 (DATA_ABI_ALIGNMENT): Define.
13862 (CONSTANT_ALIGNMENT): Correct comment.
13863 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
13864 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
13865
8ed00d76
DM
138662013-06-17 David Malcolm <dmalcolm@redhat.com>
13867
13868 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
13869 ATTRIBUTE_UNUSED marking.
13870
3d33d06b
SN
138712013-06-17 Sofiane Naci <sofiane.naci@arm.com>
13872
13873 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
13874 alternative and update.
13875 (aarch64_dup_lanedi): Delete.
13876 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
13877 * config/aarch64/aarch64-simd-builtins.def: Update.
13878
ee03e71d
RB
138792013-06-17 Richard Biener <rguenther@suse.de>
13880
13881 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
13882 (lto_input_scc): Declare.
13883 (lto_input_tree_1): Likewise.
13884 (struct lto_stats_d): Add num_tree_bodies_output and
13885 num_pickle_refs_output.
13886 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
13887 (lto_read_tree_1): Split out from ...
13888 (lto_read_tree): ... this.
13889 (lto_input_scc): New function.
13890 (lto_input_tree_1): Split out from ...
13891 (lto_input_tree): ... this. Handle LTO_tree_scc.
13892 (lto_data_in_create): Create the streamer cache without hashes.
13893 * lto-streamer-out.c (create_output_block): Create the streamer
13894 cache with hashes when not doing WPA.
13895 (lto_write_tree_1): Split out from ...
13896 (lto_write_tree): ... this.
13897 (get_symbol_initial_value): New function.
13898 (lto_output_tree_1): Split out from ...
13899 (lto_output_tree): ... this. Write trees as series of SCCs
13900 using a DFS walk via DFS_write_tree.
13901 (struct sccs, struct scc_entry): New types.
13902 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
13903 (DFS_write_tree_body): New function.
13904 (DFS_write_tree): Likewise.
13905 (hash_tree): Likewise.
13906 (scc_entry_compare): Likewise.
13907 (hash_scc): Likewise.
13908 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
13909 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
13910 TREE_CHAIN as regular reference.
13911 (streamer_read_integer_cst): Remove.
13912 (streamer_get_pickled_tree): Adjust.
13913 * tree-streamer-out.c (streamer_write_chain): Disable streaming
13914 of DECL_EXTERNALs in BLOCK_VARS for now.
13915 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
13916 reference.
13917 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13918 Add hash value argument and record that if hashes are recorded
13919 in the cache.
13920 (streamer_tree_cache_insert_1): Adjust.
13921 (streamer_tree_cache_insert): Likewise.
13922 (streamer_tree_cache_insert_at): Rename to ...
13923 (streamer_tree_cache_replace_tree): ... this and adjust.
13924 (streamer_tree_cache_append): Adjust.
13925 (record_common_node): Likewise.
13926 (streamer_tree_cache_create): Add argument whether to
13927 record hash values together with trees.
13928 (streamer_tree_cache_delete): Adjust.
13929 * tree-streamer.h (struct streamer_tree_cache_d): Add
13930 vector of hashes.
13931 (streamer_read_integer_cst): Remove.
13932 (streamer_tree_cache_insert): Adjust.
13933 (streamer_tree_cache_append): Likewise.
13934 (streamer_tree_cache_insert_at): Rename to ...
13935 (streamer_tree_cache_replace_tree): ... this and adjust.
13936 (streamer_tree_cache_create): Add argument whether to record hashes.
13937 (streamer_tree_cache_get): Rename to ...
13938 (streamer_tree_cache_get_tree): ... this.
13939 (streamer_tree_cache_get_hash): New function.
13940 * tree.c (cache_integer_cst): New function.
13941 * tree.h (cache_integer_cst): Declare.
13942 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
13943 * lto-symtab.c (lto_varpool_replace_node): Only release
13944 DECL_INITIAL of non-prevailing decls.
13945 * varpool.c (varpool_remove_initializer): Do not release
13946 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
13947
0de86a92
JU
139482013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13949
13950 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
13951 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
13952 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
13953 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
13954 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
13955 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
13956 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
13957 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
13958 instead of TARGET_64BIT.
13959 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
13960 Require ISA_HAS_<D>DIV.
13961
74240413
RS
139622013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
13963
13964 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
13965 (mips*-*-linux*): Move default with_llsc setting to where other
13966 defaults are set.
13967 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
13968 with_arch block.
13969 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
13970 Likewise. Remove default with_tune setting. Move default float
13971 setting to its own block. Handle with_llsc in the same block as above.
13972
12211b99 139732013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
13974
13975 PR rtl-optimization/57425
13976 PR rtl-optimization/57569
299a5f6a 13977 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
13978 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
13979 Changed all callers.
13980 (canon_anti_dependence): New function.
13981 * cse.c (check_dependence): Use canon_anti_dependence.
13982 * cselib.c (cselib_invalidate_mem): Likewise.
13983 * rtl.h (canon_anti_dependence): Declare.
13984
b259d352
JU
139852013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13986
13987 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
13988 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
13989 ".set mips3" for 64-bit targets.
13990
4de09b85
DC
139912013-06-15 Dehao Chen <dehao@google.com>
13992
13993 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
13994 * gimple-low.c (gimple_check_call_matching_types): Likewise.
13995 (gimple_check_call_args): Likewise.
13996 * value-prof.c (check_ic_target): Likewise.
13997 * ipa-inline.c (early_inliner): Likewise.
13998 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
13999 * cgraph.c (cgraph_create_edge_1): Likewise.
14000 (cgraph_make_edge_direct): Likewise.
14001
d1aa4a76
MM
140022013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14003
14004 PR target/57615
14005 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14006 rs6000_output_move_128bit to handle emitting quad memory
14007 operations. Set attribute length to 8 bytes.
14008
12211b99 140092013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14010
14011 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14012 New pattern.
14013 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14014 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14015 (aarch64_<su>mlsl<mode>): Likewise.
14016
f5273574
MS
140172013-06-14 Mike Stump <mikestump@comcast.net>
14018
14019 * Makefile.in (TARGET_H): Add insn-codes.h.
14020
ef7e7ab2
AM
140212013-06-14 Alan Modra <amodra@gmail.com>
14022
14023 PR middle-end/57134
14024 PR middle-end/57586
14025 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14026 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14027 bitfield expansion when EXPAND_MEMORY.
14028 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14029
135faab6
MM
140302013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14031
14032 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14033 test for clearing quad memory on 32-bit later.
14034
948a1fd9
MG
140352013-06-13 Marc Glisse <marc.glisse@inria.fr>
14036
14037 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14038 (fold_negate_expr): Likewise.
14039 (fold_real_zero_addition_p): Handle vectors.
14040 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14041
0597fb9c
AM
140422013-06-14 Alan Modra <amodra@gmail.com>
14043
14044 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14045
e5b962d0
JH
140462013-06-13 Jan Hubicka <jh@suse.cz>
14047
14048 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14049 Local comdats are not externally visible.
14050 * symtab.c (dump_symtab_base): Dump externally visible.
14051 (verify_symtab_base): Verify back links in the symtab hash.
14052
a8355e51
BC
140532013-06-13 Bin Cheng <bin.cheng@arm.com>
14054
14055 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14056 CONVERT_EXPR as equal nodes.
14057
8f7e6e33
BC
140582013-06-13 Bin Cheng <bin.cheng@arm.com>
14059
22fc7d3d 14060 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14061
5d418483
MG
140622013-06-13 Marc Glisse <marc.glisse@inria.fr>
14063
14064 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14065 Generalize to complex and vector.
14066 * tree.c (build_all_ones_cst): New function.
14067 * tree.h (build_all_ones_cst): Declare it.
14068
50751417
AM
140692013-06-13 Alan Modra <amodra@gmail.com>
14070
14071 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14072 * config/rs6000/rs6000.md (signbittf2): New insn.
14073 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14074 (abstf2_internal, cmptf_internal2): Likewise.
14075 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14076
4b02c962 140772013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14078 Pat Haugen <pthaugen@us.ibm.com>
14079 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14080
14081 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14082 power8 byte, half-word, and quad-word atomic instructions.
14083 (emit_store_conditional): Likewise.
14084 (rs6000_expand_atomic_compare_and_swap): Likewise.
14085 (rs6000_expand_atomic_op): Likewise.
14086
14087 * config/rs6000/sync.md (larx): Add new modes for power8.
14088 (stcx): Likewise.
14089 (AINT): New mode iterator to include TImode as well as normal
14090 integer modes on power8.
14091 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14092 that VSX registers are not considered. Use AINT mode iterator
14093 instead of INT1 to allow inclusion of quad word atomic operations
14094 on power8.
14095 (load_locked<mode>): Likewise.
14096 (store_conditional<mode>): Likewise.
14097 (atomic_compare_and_swap<mode>): Likewise.
14098 (atomic_exchange<mode>): Likewise.
14099 (atomic_nand<mode>): Likewise.
14100 (atomic_fetch_<fetchop_name><mode>): Likewise.
14101 (atomic_nand_fetch<mode>): Likewise.
14102 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14103 each type.
14104 (ATOMIC): On power8, add QImode, HImode modes.
14105 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14106 modes that promote to SImode.
14107 (load_lockedti): Convert TImode arguments to PTImode, so that we
14108 get a guaranteed even/odd register pair.
14109 (load_lockedpti): Likewise.
14110 (store_conditionalti): Likewise.
14111 (store_conditionalpti): Likewise.
14112
14113 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14114 atomic load/store instructions.
14115 (HSI): Likewise.
14116
710b6cc1
RS
141172013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14118
14119 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14120 loads.
14121 (insn_count): New attribute, with most cases extracted from...
14122 (length): ...here. Redefine most cases in terms of insn_count.
14123 (single_insn): Delete.
14124 (can_delay): Use insn_count to check for single instructions.
14125 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14126 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14127 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14128 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14129 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14130 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14131 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14132 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14133 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14134 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14135 rather than "length".
14136 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14137 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14138 Use "insn_count" rather than "length".
14139 * config/mips/mips-dsp.md
14140 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14141 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14142 length attributes.
14143
1951f101
MG
141442013-06-12 Marc Glisse <marc.glisse@inria.fr>
14145
14146 PR tree-optimization/57361
14147 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14148
8b033a8a
SN
141492013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14150
22fc7d3d
UB
14151 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14152 to split.
8b033a8a
SN
14153 (aarch64_simd_combine<mode>): New instruction expansion.
14154 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14155 function prototype.
14156 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14157 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14158
ca0f62a8
JH
141592013-06-12 Jan Hubicka <jh@suse.cz>
14160
14161 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14162 decl has when in streaming stage.
14163 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14164 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14165
12211b99 141662013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14167
14168 PR target/57578
14169 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14170
bfdeda2c
JJ
141712013-06-12 Jakub Jelinek <jakub@redhat.com>
14172
14173 PR tree-optimization/57537
14174 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14175 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14176
a4fa02d1
RB
141772013-06-12 Richard Biener <rguenther@suse.de>
14178
14179 * data-streamer.h (streamer_write_char_stream): CSE
14180 obs->current_pointer.
14181 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14182 streamer_write_char_stream manually and optimize the resulting loop.
14183 (streamer_write_hwi_stream): Likewise.
14184
bbf9ad07
JH
141852013-06-12 Jan Hubicka <jh@suse.cz>
14186
14187 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14188 * cgraph.h (varpool_create_empty_node): Declare.
14189 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14190 duplicated nodes.
14191 * symtab.c (symtab_unregister_node): Be lax about missin entries
14192 in node hash.
14193 (symtab_get_node): Update comment.
14194 * varpool.c (varpool_create_empty_node): Break out from ...
14195 (varpool_node_for_decl): ... here.
14196 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14197
a53f90ad
EB
141982013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14199
14200 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14201 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14202 part. Use straight-line flow at the end.
14203 <COMPONENT_REF>: Remove superfluous else.
14204 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14205
946f9306
JJ
142062013-06-12 Jakub Jelinek <jakub@redhat.com>
14207
14208 PR target/56564
14209 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14210 target hook even for !TREE_PUBLIC decls. If no resolution info
14211 is available, return false for common and external decls.
14212
a7fca6f0
KP
142132013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14214
14215 * config/rl78/constraints.md (U): New constraint.
14216 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14217 valloc attribute.
14218
c7d8f446
MM
142192013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14220
14221 PR target/57589
14222 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14223 to allow returning address to AT_PLATFORM name.
14224
08346abd
JH
142252013-06-11 Jan Hubicka <jh@suse.cz>
14226
14227 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14228 * cgraph.h (symtab_node_base): Add weakref flag.
14229 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14230 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14231 (output_weakrefs): Use weakref flag.
14232 * fold-const.c (simple_operand_p): Handle WEAK.
14233 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14234 * ipa.c (varpool_externally_visible_p): Drop weakref.
14235 (function_and_variable_visibility): Update comment; fix weakref
14236 sanity checks; do not clear DECL_WEAK on them.
14237 * lto-cgraph.c (lto_output_node): update.
14238 (lto_output_varpool_node): Update.
14239 (input_overwrite_node): Update.
14240 (input_node): Update.
14241 (input_varpool_node): Update.
14242 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14243 (lto_symtab_merge_symbols): Add sanity check.
14244 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14245 * passes.c (rest_of_decl_compilation): Set static flag, too.
14246 * symtab.c (dump_symtab_base): Dump weakref.
14247 (verify_symtab_base): Sanity check weakrefs.
14248 (symtab_make_decl_local): Remove duplicated code.
14249 (symtab_alias_ultimate_target): Simplify.
14250 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14251
2e6a2f88
TV
142522013-06-11 Tom de Vries <tom@codesourcery.com>
14253
14254 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14255 sequence_vect == NULL.
14256
d9af3652
DD
142572013-06-11 DJ Delorie <dj@redhat.com>
14258
14259 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14260 (rl78_unwind_word_mode): New.
14261
ffa66012
DM
142622013-06-11 David Malcolm <dmalcolm@redhat.com>
14263
14264 * final.c (debug_prefix_maps): Make static.
14265
783f2d35
DM
142662013-06-11 David Malcolm <dmalcolm@redhat.com>
14267
14268 * function.c (initial_trampoline): Remove stray copy.
14269
7af26def
SN
142702013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14271
14272 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14273
97756c0e
MJ
142742013-06-11 Martin Jambor <mjambor@suse.cz>
14275
14276 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14277 within bounds at the beginning of the function.
14278
2c7b8bf6
AM
142792013-06-11 Alan Modra <amodra@gmail.com>
14280
14281 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14282 reporting.
14283 (get_named_section): Don't NULL !DECL_P decl.
14284
77cea46e
IZ
142852013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14286
14287 * doc/invoke.texi (core-avx2): Document.
14288 (slm): Likewise.
14289 (atom): Updated with MOVBE.
14290
888f0920
RB
142912013-06-11 Richard Biener <rguenther@suse.de>
14292
22fc7d3d 14293 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14294
6b438d58
AB
142952013-06-11 Anton Blanchard <anton@samba.org>
14296
14297 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14298 correct shift value in little-endian mode.
14299
3bc66938
JJ
143002013-06-11 Jakub Jelinek <jakub@redhat.com>
14301
14302 PR target/56564
14303 * varasm.c (get_variable_align): Move #endif to the right place.
14304
a5dc7f88
CC
143052013-06-10 Cary Coutant <ccoutant@google.com>
14306
14307 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14308 for hash so that hash table traversal order is deterministic.
14309
19be72ab 143102013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14311 Pat Haugen <pthaugen@us.ibm.com>
14312 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14313
14314 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14315 of vectors in GPRS if they are direct moves or quad word load or
14316 store moves.
14317
14318 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14319 declaration.
14320 (direct_move_p): Likewise.
14321 (quad_load_store_p): Likewise.
14322
14323 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14324 classes into bins based on the physical register type.
14325 (reg_class_to_reg_type): Likewise.
14326 (IS_STD_REG_TYPE): Likewise.
14327 (IS_FP_VECT_REG_TYPE): Likewise.
14328 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14329 use direct move instructions.
14330 (reload_gpr_vsx): Likewise.
14331 (reload_vsx_gpr): Likewise.
14332 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14333 information that is a simplification of register classes. Also
14334 precalculate direct move reload helpers.
14335 (direct_move_p): New function to return true if the operation can
14336 be done as a direct move instruciton.
14337 (quad_load_store_p): New function to return true if the operation
14338 is a quad memory operation.
14339 (rs6000_legitimize_address): If quad memory, only allow register
14340 indirect for TImode addresses.
14341 (rs6000_legitimate_address_p): Likewise.
14342 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14343 (rs6000_reload_register_type): Likewise.
14344 (register_to_reg_type): Return register type.
14345 (rs6000_secondary_reload_simple_move): New helper function for
14346 secondary reload and secondary memory needed to identify anything
14347 that is a simple move, and does not need reloading.
14348 (rs6000_secondary_reload_direct_move): New helper function for
14349 secondary reload to identify cases that can be done with several
14350 instructions via the direct move instructions.
14351 (rs6000_secondary_reload_move): New helper function for secondary
14352 reload to identify moves between register types that can be done.
14353 (rs6000_secondary_reload): Add support for quad memory operations
14354 and for direct move.
14355 (rs6000_secondary_memory_needed): Likewise.
14356 (rs6000_debug_secondary_memory_needed): Change argument names.
14357 (rs6000_output_move_128bit): New function to return the move to
14358 use for 128-bit moves, including knowing about the various
14359 limitations of quad memory operations.
14360
14361 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14362 memory operations. call rs6000_output_move_128bit for the actual
14363 instruciton(s) to generate.
14364 (vsx_movti_64bit): Likewise.
14365
14366 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14367 (UNSPEC_P8V_MTVSRWZ): Likewise.
14368 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14369 (UNSPEC_P8V_MTVSRD): Likewise.
14370 (UNSPEC_P8V_XXPERMDI): Likewise.
14371 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14372 (UNSPEC_FUSION_GPR): Likewise.
14373 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14374 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14375 (f32_sv): Likewise.
14376 (f32_dm): Likewise.
14377 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14378 loads and direct move instructions.
14379 (zero_extendsidi2_lfiwzx): Likewise.
14380 (extendsidi2_lfiwax): Likewise.
14381 (extendsidi2_nocell): Likewise.
14382 (floatsi<mode>2_lfiwax): Likewise.
14383 (lfiwax): Likewise.
14384 (floatunssi<mode>2_lfiwzx): Likewise.
14385 (lfiwzx): Likewise.
14386 (fix_trunc<mode>_stfiwx): Likewise.
14387 (fixuns_trunc<mode>_stfiwx): Likewise.
14388 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14389 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14390 (parity<mode>2_cmpb): Set length/type attr.
14391 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14392 for 'mr.' to fast_compare.
14393 (bpermd_<mode>): Change type attr to popcnt.
14394 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14395 (p8_mtvsrwz_1): Likewise.
14396 (p8_mtvsrwz_2): Likewise.
14397 (reload_fpr_from_gpr<mode>): Likewise.
14398 (p8_mtvsrd_1): Likewise.
14399 (p8_mtvsrd_2): Likewise.
14400 (p8_xxpermdi_<mode>): Likewise.
14401 (reload_vsx_from_gpr<mode>): Likewise.
14402 (reload_vsx_from_gprsf): Likewise.
14403 (p8_mfvsrd_3_<mode>): LIkewise.
14404 (reload_gpr_from_vsx<mode>): Likewise.
14405 (reload_gpr_from_vsxsf): Likewise.
14406 (p8_mfvsrd_4_disf): Likewise.
14407 (multi-word GPR splits): Do not split direct moves or quad memory
14408 operations.
14409
16876bdc
DM
144102013-06-10 David Malcolm <dmalcolm@redhat.com>
14411
14412 * tree-into-ssa.c (interesting_blocks): Make static.
14413
df8a1d28
JJ
144142013-06-10 Jakub Jelinek <jakub@redhat.com>
14415
14416 PR target/56564
14417 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14418 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14419 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14420 (get_variable_align): New function.
14421 (get_variable_section, emit_bss, emit_common,
14422 assemble_variable_contents, place_block_symbol): Use
14423 get_variable_align instead of DECL_ALIGN.
14424 (assemble_noswitch_variable): Add align argument, use it
14425 instead of DECL_ALIGN.
14426 (assemble_variable): Adjust caller. Use get_variable_align
14427 instead of DECL_ALIGN.
14428 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14429 caller.
14430 (DATA_ABI_ALIGNMENT): Define.
14431 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14432 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14433 opt is false, only return the psABI mandated alignment increase.
14434 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14435 (DATA_ABI_ALIGNMENT): ... this.
14436 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14437 (DATA_ABI_ALIGNMENT): ... this.
14438 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14439 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14440 (DATA_ABI_ALIGNMENT): ... this.
14441 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14442 * doc/tm.texi: Regenerated.
14443
57b29ca6
UB
144442013-06-10 Uros Bizjak <ubizjak@gmail.com>
14445
14446 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14447 cmp_code to construct REG_EQUAL note.
14448
3e56ed50
JJ
144492013-06-09 Jakub Jelinek <jakub@redhat.com>
14450
14451 PR target/57568
14452 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14453 that operands[2] doesn't overlap with operands[0].
14454
74fe2a1d
DE
144552013-06-09 David Edelsohn <dje.gcc@gmail.com>
14456 Jan Hubicka <jh@suse.cz>
14457
14458 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14459 hack to mark symbols as used.
14460
ed52a84e
VM
144612013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14462
14463 PR rtl-optimization/57559
14464 * lra-constraints.c (process_alt_operands): Don't discourage
14465 memory with known offset for offsetable memory constraint.
14466 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14467
299316ed
EB
144682013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14469
14470 * varasm.c (struct oc_local_state): Reorder fields.
14471 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14472 and adjust accordingly.
14473 (output_constructor): Reorder initialization code and adjust call to
14474 output_constructor_bitfield.
14475
88ac60d3
JH
144762013-06-07 Jan Hubicka <jh@suse.cz>
14477
14478 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14479
4cdce1a8
DM
144802013-06-07 David Malcolm <dmalcolm@redhat.com>
14481
14482 * tree-object-size.c (unknown): Make const.
14483
b5e0425c
AK
144842013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14485
14486 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14487 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14488 for last alternative in the cpu_facility attribute.
14489
79678d04
KT
144902013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14491
14492 PR target/56315
14493 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14494 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14495 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14496 * config/arm/constraints.md (Dg): New constraint.
14497 * config/arm/neon.md (xordi3_neon): Remove.
14498 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14499 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14500
b31ddbdb
KT
145012013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14502
14503 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14504 Clean up alternatives.
14505
8f90b7d4
AM
145062013-06-07 Alan Modra <amodra@gmail.com>
14507
14508 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14509 va_list_gpr_size.
14510
961ce119
AM
145112013-06-07 Alan Modra <amodra@gmail.com>
14512
14513 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14514
33e49835
KT
145152013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14516
14517 * config/arm/constraints.md (Df): New constraint.
14518 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14519 Correct length attribute for last two alternatives.
14520
acd17ae6
AM
145212013-06-07 Alan Modra <amodra@gmail.com>
14522
14523 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14524 override user -mfp-in-toc.
14525 (offsettable_ok_by_alignment): Consider just the current access
14526 rather than the whole object, unless BLKmode. Handle
14527 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14528 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14529 for -mcmodel=medium.
14530 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14531 override user -mfp-in-toc or -msum-in-toc. Default to
14532 -mno-fp-in-toc for -mcmodel=medium.
14533
73310b0e
DD
145342013-06-06 DJ Delorie <dj@redhat.com>
14535
14536 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14537 TARGET_VALID_POINTER_MODE.
14538
0bd62dca 145392013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14540 Pat Haugen <pthaugen@us.ibm.com>
14541 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14542
14543 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14544 Document new power8 builtins.
14545
14546 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14547 condition code register, to allow 128-bit logical operations to be
14548 done in the VSX or GPR registers.
14549 (nor<mode>3): Use the canonical form for nor.
14550 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14551 vclz*, and vpopcnt* vector instructions.
14552 (nand<mode>3): Likewise.
14553 (orc<mode>3): Likewise.
14554 (clz<mode>2): LIkewise.
14555 (popcount<mode>2): Likewise.
14556
14557 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14558 that only the GPRs are recognized.
14559
14560 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14561 support for new power8 builtins.
14562
14563 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14564 builtin functions.
14565 (xscvdpspn): Likewise.
14566 (vclz): Likewise.
14567 (vclzb): Likewise.
14568 (vclzh): Likewise.
14569 (vclzw): Likewise.
14570 (vclzd): Likewise.
14571 (vpopcnt): Likewise.
14572 (vpopcntb): Likewise.
14573 (vpopcnth): Likewise.
14574 (vpopcntw): Likewise.
14575 (vpopcntd): Likewise.
14576 (vgbbd): Likewise.
14577 (vmrgew): Likewise.
14578 (vmrgow): Likewise.
14579 (eqv): Likewise.
14580 (eqv_v16qi3): Likewise.
14581 (eqv_v8hi3): Likewise.
14582 (eqv_v4si3): Likewise.
14583 (eqv_v2di3): Likewise.
14584 (eqv_v4sf3): Likewise.
14585 (eqv_v2df3): Likewise.
14586 (nand): Likewise.
14587 (nand_v16qi3): Likewise.
14588 (nand_v8hi3): Likewise.
14589 (nand_v4si3): Likewise.
14590 (nand_v2di3): Likewise.
14591 (nand_v4sf3): Likewise.
14592 (nand_v2df3): Likewise.
14593 (orc): Likewise.
14594 (orc_v16qi3): Likewise.
14595 (orc_v8hi3): Likewise.
14596 (orc_v4si3): Likewise.
14597 (orc_v2di3): Likewise.
14598 (orc_v4sf3): Likewise.
14599 (orc_v2df3): Likewise.
14600
14601 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14602 allow power8 quad mode in 64-bit.
14603 (rs6000_builtin_vectorized_function): Add support to vectorize
14604 ISA 2.07 count leading zeros, population count builtins.
14605 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14606 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14607 (builtin_function_type): Add vgbbd builtin function which takes an
14608 unsigned argument.
14609 (altivec_expand_vec_perm_const): Add support for new power8 merge
14610 instructions.
14611
14612 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14613 that does not include TImdoe for use with 32-bit.
14614 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14615 instructions.
14616 (UNSPEC_VSX_CVDPSPN): Likewise.
14617 (vsx_xscvdpspn): Likewise.
14618 (vsx_xscvspdpn): Likewise.
14619 (vsx_xscvdpspn_scalar): Likewise.
14620 (vsx_xscvspdpn_directmove): Likewise.
14621 (vsx_and<mode>3): Split logical operations into 32-bit and
14622 64-bit. Add support to do logical operations on TImode as well as
14623 VSX vector types. Allow logical operations to be done in either
14624 VSX registers or in general purpose registers in 64-bit mode. Add
14625 splitters if GPRs were used. For AND, add clobber of CCmode to
14626 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14627 encoding.
14628 (vsx_and<mode>3_32bit): Likewise.
14629 (vsx_and<mode>3_64bit): Likewise.
14630 (vsx_ior<mode>3): Likewise.
14631 (vsx_ior<mode>3_32bit): Likewise.
14632 (vsx_ior<mode>3_64bit): Likewise.
14633 (vsx_xor<mode>3): Likewise.
14634 (vsx_xor<mode>3_32bit): Likewise.
14635 (vsx_xor<mode>3_64bit): Likewise.
14636 (vsx_one_cmpl<mode>2): Likewise.
14637 (vsx_one_cmpl<mode>2_32bit): Likewise.
14638 (vsx_one_cmpl<mode>2_64bit): Likewise.
14639 (vsx_nor<mode>3): Likewise.
14640 (vsx_nor<mode>3_32bit): Likewise.
14641 (vsx_nor<mode>3_64bit): Likewise.
14642 (vsx_andc<mode>3): Likewise.
14643 (vsx_andc<mode>3_32bit): Likewise.
14644 (vsx_andc<mode>3_64bit): Likewise.
14645 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14646 and xxlorc instructions.
14647 (vsx_eqv<mode>3_64bit): Likewise.
14648 (vsx_nand<mode>3_32bit): Likewise.
14649 (vsx_nand<mode>3_64bit): Likewise.
14650 (vsx_orc<mode>3_32bit): Likewise.
14651 (vsx_orc<mode>3_64bit): Likewise.
14652
14653 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14654
14655 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14656 instruction.
14657 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14658 (p8_vmrgow): Likewise.
14659 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14660 GPRs to be split under VSX.
14661 (p8v_clz<mode>2): Add power8 count leading zero support.
14662 (p8v_popcount<mode>2): Add power8 population count support.
14663 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14664 support.
14665
14666 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14667 instruction.
14668
14669 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14670 builtin functions.
14671 (vec_nand): Likewise.
14672 (vec_vclz): Likewise.
14673 (vec_vclzb): Likewise.
14674 (vec_vclzd): Likewise.
14675 (vec_vclzh): Likewise.
14676 (vec_vclzw): Likewise.
14677 (vec_vgbbd): Likewise.
14678 (vec_vmrgew): Likewise.
14679 (vec_vmrgow): Likewise.
14680 (vec_vpopcnt): Likewise.
14681 (vec_vpopcntb): Likewise.
14682 (vec_vpopcntd): Likewise.
14683 (vec_vpopcnth): Likewise.
14684 (vec_vpopcntw): Likewise.
14685
37684c46
VM
146862013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14687
14688 PR rtl-optimization/57468
14689 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14690 spilled pseudos.
14691
d89ae27c
VM
146922013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14693
14694 PR rtl-optimization/57459
14695 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14696 type when setting live regs.
14697
3597e113
VM
146982013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14699
14700 * config/s390/s390.opt (mlra): New option.
14701 * config/s390/s390.c (s390_decompose_address): Check displacement
14702 for all registers for LRA.
14703 (s390_secondary_reload): Don't used secondary reloads for LRA.
14704 (s390_lra_p): New function.
14705 (TARGET_LRA_P): Define.
14706 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
14707 of attribute cpu_facility to zarch for the last alternative.
14708 (*cmpmem_short): Ditto.
14709
01037aeb
EB
147102013-06-06 Eric Botcazou <ebotcazou@adacore.com>
14711
14712 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
14713 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
14714 (arm_expand_prologue): Likewise.
14715
3371a64f
TJ
147162013-06-06 Teresa Johnson <tejohnson@google.com>
14717
14718 PR c++/53743
14719 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
14720 as this is now done by redirect_edge_and_branch_force.
14721 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
14722 barriers, and fix interaction with splitting.
14723 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
14724 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
14725 reflect changes made in the routine.
14726 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
14727 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
14728 since this is called in cfglayout mode, and replace partition fixup
14729 with assert as that is now done by force_nonfallthru_and_redirect.
14730 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
14731 already be marked with region crossing note.
14732 (insert_section_boundary_note): Make non-static, gate on flag
14733 has_bb_partition, rewrite to also check for multiple partitions.
14734 (rest_of_handle_reorder_blocks): Remove call to
14735 insert_section_boundary_note, now done later during free_cfg.
14736 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
14737 * bb-reorder.h (insert_section_boundary_note): Declare.
14738 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
14739 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
14740 invoke insert_section_boundary_note.
14741 (try_redirect_by_replacing_jump): Remove unnecessary
14742 check for region crossing note.
14743 (fixup_partition_crossing): New function.
14744 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
14745 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
14746 in non-cfglayout mode.
14747 (force_nonfallthru_and_redirect): Fixup partition boundaries,
14748 remove old code that tried to do this. Emit barrier correctly
14749 when we are in cfglayout mode.
14750 (last_bb_in_partition): New function.
14751 (rtl_split_edge): Correctly fixup partition boundaries.
14752 (commit_one_edge_insertion): Remove old code that tried to
14753 fixup region crossing edge since this is now handled in
14754 split_block, and set up insertion point correctly since
14755 block may now end in a jump.
14756 (verify_hot_cold_block_grouping): Guard against checking when not in
14757 linearized RTL mode.
14758 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
14759 notes.
14760 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
14761 rtl_verify_flow_info, so not called in cfglayout mode.
14762 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
14763 (fixup_reorder_chain): Remove old code that attempted to fixup region
14764 crossing note as this is now handled in force_nonfallthru_and_redirect.
14765 (duplicate_insn_chain): Don't duplicate switch section notes.
14766 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
14767 note.
14768 * basic-block.h (emit_barrier_after_bb): Declare.
14769
66071e10
KT
147702013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14771
14772 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
14773 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
14774 arm_usatsihi): Adjust alternatives for arm_restrict_it.
14775
0e26bf3d
KT
147762013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14777
14778 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
14779 where appropriate.
14780 * config/arm/ldmstm.md: Regenerate.
14781
12b4e7ef
KT
147822013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14783
14784 * config/arm/sync.md (atomic_loaddi_1):
14785 Disable predication for arm_restrict_it.
14786 (arm_load_exclusive<mode>): Likewise.
14787 (arm_load_exclusivesi): Likewise.
14788 (arm_load_exclusivedi): Likewise.
14789 (arm_load_acquire_exclusive<mode>): Likewise.
14790 (arm_load_acquire_exclusivesi): Likewise.
14791 (arm_load_acquire_exclusivedi): Likewise.
14792 (arm_store_exclusive<mode>): Likewise.
14793 (arm_store_exclusive<mode>): Likewise.
14794 (arm_store_release_exclusivedi): Likewise.
14795 (arm_store_release_exclusive<mode>): Likewise.
14796
15d16c8a
RB
147972013-06-06 Richard Biener <rguenther@suse.de>
14798
14799 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
14800 after LTO_null.
14801 (lto_tag_is_tree_code_p): Adjust.
14802 (lto_tag_is_gimple_code_p): Likewise.
14803 (lto_gimple_code_to_tag): Likewise.
14804 (lto_tag_to_gimple_code): Likewise.
14805 (lto_tree_code_to_tag): Likewise.
14806 (lto_tag_to_tree_code): Likewise.
14807 * data-streamer.h (streamer_write_hwi_in_range): Use
14808 uhwi streaming to stream the normalized range.
14809 (streamer_read_hwi_in_range): Likewise.
14810
17a7fc37
KT
148112013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14812
14813 * config/arm/arm.md (enabled_for_depr_it): New attribute.
14814 (predicable_short_it): Likewise.
14815 (predicated): Likewise.
14816 (enabled): Handle above.
14817 (define_cond_exec): Set predicated attribute to yes.
14818
b57ca59b
MS
148192013-06-05 Mike Stump <mikestump@comcast.net>
14820
14821 * gdbinit.in (__FUNCTION__): Add.
14822
c1e183a9
UB
148232013-06-05 Uros Bizjak <ubizjak@gmail.com>
14824
14825 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
14826 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
14827
0378bddb
JH
148282013-06-05 Jan Hubicka <jh@suse.cz>
14829
14830 * varasm.c (mark_decl_referenced): Revert the removal until targets
14831 are fixed.
14832
8f8a2057
DE
148332013-06-05 David Edelsohn <dje.gcc@gmail.com>
14834
14835 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
14836 instead of mark_decl_referenced.
14837
edb983b2
JH
148382013-06-05 Jan Hubicka <jh@suse.cz>
14839
14840 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
14841 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
14842 and symtab_used_from_object_file_p.
14843 (cgraph_make_node_local_1): Clear forced_by_abi.
14844 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
14845 * cgraph.h (symtab_node_base): Add forced_by_abi.
14846 (decide_is_variable_needed): Remove.
14847 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
14848 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
14849 (decide_is_symbol_needed): ... this one; handle symbols in general;
14850 always analyze virtuals; honnor forced_by_abi.
14851 (cgraph_finalize_function): Update.
14852 (varpool_finalize_decl): Update.
14853 (symbol_defined_and_needed): Remove.
14854 (analyze_functions): Update.
14855 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14856 output_refs, input_overwrite_node): Handle forced_by_abi.
14857 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
14858 (address_taken_from_non_vtable_p): ... this one.
14859 (comdat_can_be_unshared_p_1): New function.
14860 (cgraph_comdat_can_be_unshared_p): Rename to ...
14861 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
14862 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
14863 (function_and_variable_visibility): Clear forced_by_abi as needed.
14864 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
14865 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
14866 * symtab.c (dump_symtab_base): Dump forced_by_abi.
14867 * varpool.c (decide_is_variable_needed): Remove.
14868
9912dbe5
KT
148692013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14870
14871 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
14872 (arm_option_override): Override arm_restrict_it where appropriate.
14873 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
14874 * config/arm/arm.opt (mrestrict-it): New command-line option.
14875 * doc/invoke.texi: Document -mrestrict-it.
14876
34c136b6
DM
148772013-06-05 David Malcolm <dmalcolm@redhat.com>
14878
14879 * tsan.c (tsan_atomic_table): Make const.
14880
a367df53
RB
148812013-06-05 Richard Biener <rguenther@suse.de>
14882
14883 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
14884 index associated with the tree we are supposed to replace.
14885 * tree-streamer-out.c (pack_ts_base_value_fields): Output
14886 TREE_ASM_WRITTEN as zero for everything but SSA names.
14887
70d51a19
DM
148882013-06-05 David Malcolm <dmalcolm@redhat.com>
14889
14890 * tree-ssa-structalias.c (call_stmt_vars): Make static.
14891
b9bd2075
JH
148922013-06-04 Jan Hubicka <jh@suse.cz>
14893
14894 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
14895 (input_node, input_varpool_node): Handle correctly external same
14896 body aliases.
14897 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
14898 nodes at ltrans stage.
14899
aaae719d
JH
149002013-06-04 Jan Hubicka <jh@suse.cz>
14901
14902 * ipa-inline.c (update_caller_keys): Fix availability test.
14903 (update_callee_keys): Likewise.
14904 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
14905 to follow ELF standard.
14906
107eea2c
JU
149072013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
14908
14909 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
14910 (mips64r5900el-*-elf*): New configurations.
14911 * config/mips/mips-cpus.def (r5900): New processor.
14912 * config/mips/mips-tables.opt: Regenerate.
14913 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
14914 (mips_issue_rate): Handle PROCESSOR_R5900.
14915 (mips_reorg_process_insns): Force reorder mode for the R5900.
14916 * config/mips/mips.h (TARGET_MIPS5900): Define.
14917 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
14918 TARGET_MIPS5900.
14919 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
14920 TARGET_MIPS5900.
14921 * config/mips/mips.md (processor): Add r5900.
14922 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
14923
b7342d25
IB
149242013-06-04 Ian Bolton <ian.bolton@arm.com>
14925
14926 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
14927 into function to generate MOVI instruction.
c1e183a9 14928 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
14929 (aarch64_preferred_simd_mode): Turn into wrapper.
14930 (aarch64_output_scalar_simd_mov_immediate): New function.
14931 * config/aarch64/aarch64-protos.h: Add prototype for above.
14932
81c2dfb9
IB
149332013-06-04 Ian Bolton <ian.bolton@arm.com>
14934
14935 * config/aarch64/aarch64.c (simd_immediate_info): Remove
14936 element_char member.
14937 (sizetochar): Return signed char.
14938 (aarch64_simd_valid_immediate): Remove elchar and other
14939 unnecessary variables.
14940 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
14941 Calculate element_char as required.
14942 * config/aarch64/aarch64-protos.h: Update and move prototype
14943 for aarch64_output_simd_mov_immediate.
14944 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14945 Update arguments.
14946
48063b9d
IB
149472013-06-04 Ian Bolton <ian.bolton@arm.com>
14948
14949 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
14950 information completed by aarch64_simd_valid_immediate.
14951 (aarch64_legitimate_constant_p): Update arguments.
14952 (aarch64_simd_valid_immediate): Work with struct rather than many
14953 pointers.
14954 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
14955 (aarch64_simd_make_constant): Update arguments.
14956 (aarch64_output_simd_mov_immediate): Work with struct rather than
14957 many pointers. Output immediate directly rather than as operand.
14958 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14959 Update prototype.
14960 * config/aarch64/constraints.md (Dn): Update arguments.
14961
3ea63f60
IB
149622013-06-04 Ian Bolton <ian.bolton@arm.com>
14963
14964 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
14965 longer static.
14966 (aarch64_simd_immediate_valid_for_move): Remove.
14967 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
14968 (aarch64_simd_make_constant): Update call.
14969 (aarch64_output_simd_mov_immediate): Update call.
14970 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14971 Add prototype.
14972 * config/aarch64/constraints.md (Dn): Update call.
14973
d8edd899
IB
149742013-06-04 Ian Bolton <ian.bolton@arm.com>
14975
14976 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
14977 return type to bool for prototype.
14978 (aarch64_legitimate_constant_p): Check for true instead of not -1.
14979 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
14980 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
14981
44b20bb8
CM
149822013-06-04 Catherine Moore <clm@codesourcery.com>
14983
14984 * config/mips/mips.opt (meva): New.
c1e183a9 14985 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
14986 (ASM_SPEC): Handle -meva.
14987 * doc/invoke.texi (meva): Document.
14988
52befbd8
AM
149892013-06-04 Alan Modra <amodra@gmail.com>
14990
14991 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
14992 constant output.
14993
aadaf24e
KT
149942013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14995
14996 * rtl.def: Add extra fourth optional field to define_cond_exec.
14997 * gensupport.c (process_one_cond_exec): Process attributes from
14998 define_cond_exec.
14999 * doc/md.texi: Document fourth field in define_cond_exec.
15000
0cd9e9ee
EB
150012013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15002
15003 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15004 out the processing order as in store_bit_field_1.
15005
cb0f665d
JH
150062013-06-04 Jan Hubicka <jh@suse.cz>
15007
15008 PR middle-end/57500
15009 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15010 non-VAR_DECL node if it does not exist yet.
15011
53984b9b
RS
150122013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15013
15014 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15015 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15016 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15017 target_cpu_default setting.
15018
5d318fd4
TJ
150192013-06-03 Teresa Johnson <tejohnson@google.com>
15020
15021 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15022 default to -fopt-info=optimized instead of all.
15023 * doc/invoke.texi: Ditto.
15024 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15025 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15026 (execute_vect_slp): Emit BB vectorization success under
15027 MSG_OPTIMIZED_LOCATIONS.
15028 * tree-vect-slp.c (vect_slp_transform_bb): Change
15029 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15030 * tree-vect-loop.c (vect_transform_loop): Ditto.
15031
ec3af349
JM
150322013-06-03 Jason Merrill <jason@redhat.com>
15033
15034 PR c++/57415
15035 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15036 Use TARGET_EXPR for C++.
15037
1baf9159
JJ
150382013-06-03 Jakub Jelinek <jakub@redhat.com>
15039
15040 PR rtl-optimization/57268
0cd9e9ee 15041 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15042 if DEBUG_INSN_P (insn).
15043
15044 Reapply
15045 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15046
15047 PR rtl-optimization/57268
15048 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15049 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15050
0f1d3965
YR
150512013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15052
15053 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15054 (ix86_avoid_lea_for_addr): Likewise.
15055 (exact_dependency_1): Likewise.
15056 (ix86_adjust_cost): Likewise.
15057 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15058 removed.
15059 (do_reorder_for_imul): Fix typo, formatting and
15060 !reload_completed check removed.
15061 (ix86_sched_reorder): Fix typo and formatting.
15062 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15063 list.
15064
3bc30db4
SN
150652013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15066
15067 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15068
19cc6fac
EB
150692013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15070
15071 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15072 <STRING_CST>: Likewise.
15073 <VECTOR_CST>: Likewise.
15074
c68a6e08
JW
150752013-06-01 Janus Weil <janus@gcc.gnu.org>
15076 Mikael Morin <mikael@gcc.gnu.org>
15077
15078 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15079 * config.in: Regenerated.
15080 * configure: Regenerated.
15081
38e55e5c
JH
150822013-06-01 Jan Hubicka <jh@suse.cz>
15083
15084 PR middle-end/57366
15085 * cgraphunit.c (compile): When weakref is not supported,
15086 set up transparent aliases before final output pass.
15087 * varasm.c (assemble_alias): Do not try to do it here.
15088
eb51d2ff
JH
150892013-06-01 Jan Hubicka <jh@suse.cz>
15090
15091 PR middle-end/57467
15092 * passes.c (for_per_function): Skip unanalyzed functions.
15093
40a7fe1e
JH
150942013-06-01 Jan Hubicka <jh@suse.cz>
15095
15096 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15097 (lto_symtab_merge_symbols_1): ... this one.
15098 (lto_symtab_merge_cgraph_nodes): Rename to ...
15099 (lto_symtab_merge_symbols): ... this one; simplify.
15100 * cgraph.c (same_body_aliases_done): Rename to ...
15101 (cpp_implicit_aliases_done): ... this one.
15102 (cgraph_create_function_alias): Update.
15103 (cgraph_same_body_alias): Update.
c1e183a9 15104 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15105 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15106 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15107 (cgraph_node): Remove same_body_alias.
15108 (varpool_node): Remove alias_of and extra_name_alias.
15109 (same_body_aliases_done): Rename to ..
15110 (cpp_implicit_aliases_done): ... this one.
15111 (symtab_alias_ultimate_target): Add default parameter.
15112 (symtab_resolve_alias): New function.
15113 (fixup_same_cpp_alias_visibility): Declare.
15114 (cgraph_function_node): Add default parameter.
15115 (cgraph_node_asm_name): Likewise.
15116 (cgraph_function_or_thunk_node): Add default parameter; do
15117 not ICE when it is NULL.
15118 (varpool_variable_node): Likewise.
15119 * tree-emutls.c (create_emultls_var): Update.
15120 (ipa_lower_emutls): Update.
15121 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15122 (cgraph_reset_node): Reset alias info.
15123 (cgraph_finalize_function): Update.
15124 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15125 (analyze_function): Simplify.
15126 (cgraph_process_same_body_aliases): Simplify.
15127 (analyze_functions): Fixup same body aliases.
15128 (handle_alias_pairs): Simplify.
15129 (assemble_thunk): Update.
15130 (assemble_thunks_and_aliases): Update.
15131 (output_weakrefs): Rewrite.
15132 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15133 (lto_output_varpool_node): Likewise.
15134 (compute_ltrans_boundary): Remve assert.
15135 (get_alias_symbol): New functoin.
15136 (input_node): Rewrite alias handling.
15137 (input_varpool_node): Likewise.
15138 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15139 * ipa.c (process_references): Handle weakrefs correctly.
15140 (symtab_remove_unreachable_nodes): Likewise.
15141 * trans-mem.c (get_cg_data): Update.
15142 (ipa_tm_create_version_alias): Update.
15143 (ipa_tm_execute): Update.
15144 * symtab.c (dump_symtab_base): Dump aliases.
15145 (verify_symtab_base): Verify aliases.
15146 (symtab_node_availability): New function.
15147 (symtab_alias_ultimate_target): Simplify.
15148 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15149 handle all the fixup cases.
15150 (symtab_resolve_alias): New function.
15151 * passes.c (ipa_write_summaries): Handle weakrefs.
15152 * varpool.c (varpool_analyze_node): Simplify.
15153 (assemble_aliases): Update.
15154 (varpool_create_variable_alias): Simplify.
15155 (varpool_extra_name_alias): Simplify.
15156 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15157 (lto_symtab_merge_symbols): ... this one.
15158
21759881
DT
151592013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15160
15161 Revert
15162 PR rtl-optimization/57268
15163 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15164 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15165
daf4e940
TB
151662013-06-01 Tobias Burnus <burnus@net-b.de>
15167
15168 Partially reverted:
15169 2013-05-31 Tobias Burnus <burnus@net-b.de>
15170
15171 PR middle-end/57073
15172 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15173 further up.
15174
c359d8d0
DT
151752013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15176
15177 PR rtl-optimization/57268
15178 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15179 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15180
4172215d
EB
151812013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15182
15183 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15184 unordered comparison operators when -fno-trapping-math is in effect
15185 on the e500.
15186 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15187 and implement unordered comparison operators properly on the e500.
15188
a8c50132
EB
151892013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15190
15191 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15192 for constant scalar integers.
15193 (simplify_relational_operation_1): Likewise.
15194
44626634
SB
151952013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15196
15197 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15198 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15199 Fix comment.
15200
55805e54
YR
152012013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15202 Igor Zamyatin <igor.zamyatin@intel.com>
15203
15204 Silvermont (SLM) architecture performance tuning.
15205 * config/i386/i386.h (enum ix86_tune_indices): Add
15206 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15207 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15208
15209 * config/i386/i386.c (initial_ix86_tune_features)
15210 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15211 (ix86_lea_outperforms): Handle Silvermont tuning.
15212 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15213 call.
15214 (ix86_use_lea_for_mov): Likewise.
15215 (ix86_avoid_lea_for_addr): Likewise.
15216 (ix86_lea_for_add_ok): Likewise.
15217 (exact_dependency_1): New function.
15218 (exact_store_load_dependency): Likewise.
15219 (ix86_adjust_cost): Handle Silvermont tuning.
15220 (do_reoder_for_imul): Likewise.
15221 (swap_top_of_ready_list): New function.
15222 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15223
15224 * config/i386/i386.md (peepholes that split memory operand in fp
15225 converts): New.
15226
e19c9de2
MS
152272013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15228
15229 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15230 Remove un-necessary braces.
15231
38e6c9a6
MS
152322013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15233
15234 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15235 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15236
e3530904
TB
152372013-05-31 Tobias Burnus <burnus@net-b.de>
15238
15239 PR middle-end/57073
c1e183a9 15240 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15241
b6af05a9
KT
152422013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15243
15244 PR target/56315
15245 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15246 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15247 * config/arm/neon.md (iordi3_neon): Remove.
15248 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15249 * config/arm/predicates.md (imm_for_neon_logic_operand):
15250 Move to earlier in the file.
15251 (neon_logic_op2): Likewise.
15252 (arm_iordi_operand_neon): New predicate.
15253
f800c166
RB
152542013-05-31 Richard Biener <rguenther@suse.de>
15255
15256 PR tree-optimization/57478
15257 PR tree-optimization/57453
15258 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15259 are life as well.
15260
e571fa59
KP
152612013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15262
15263 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15264 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15265
0fa6e0ef
TB
152662013-05-30 Tobias Burnus <burnus@net-b.de>
15267 Thomas Koenig <tkoenig@gcc.gnu.org>
15268
15269 PR middle-end/57073
15270 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15271 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15272
4688ddf5
SB
152732013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15274
0fa6e0ef 15275 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15276
3b9ceb4b
VM
152772013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15278
15279 * target.def (register_usage_leveling_p): New hook.
15280 * targhooks.c (default_register_usage_leveling_p): New.
15281 * targhooks.h (default_register_usage_leveling_p): New prototype.
15282 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15283 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15284 * doc/tm.texi: Update.
15285 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15286
65f9e789
IB
152872013-05-30 Ian Bolton <ian.bolton@arm.com>
15288
15289 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15290 (*insv_reg<mode>): New define_insn.
15291
12211b99 152922013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15293
15294 PR rtl-optimization/57439
15295 * postreload.c (move2add_valid_value_p): Check that we have
15296 a zero subreg_regno_offset when accessing the register in
15297 the requested mode.
15298
0b871ccf
YR
152992013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15300 Igor Zamyatin <igor.zamyatin@intel.com>
15301
15302 Silvermont (SLM) architecture pipeline model, tuning and
15303 insn selection.
15304 * config.gcc: Add slm config options and target.
15305
15306 * config/i386/slm.md: New.
15307
15308 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15309
f43245d1 15310 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15311 PROCESSOR_SLM.
15312 (ix86_target_macros_internal): Likewise.
15313
f43245d1 15314 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15315 (m_SLM): New macro flag.
15316 (initial_ix86_tune_features): Set m_SLM.
15317 (x86_accumulate_outgoing_args): Likewise.
15318 (x86_arch_always_fancy_math_387): Likewise.
15319 (processor_target_table): Add slm cost.
15320 (cpu_names): Add slm cpu name.
15321 (x86_option_override_internal): Set SLM ISA.
15322 (ix86_issue_rate): New case PROCESSOR_SLM.
15323 (ia32_multipass_dfa_lookahead): Likewise.
15324 (fold_builtin_cpu): Add slm.
15325
15326 * config/i386/i386.h (TARGET_SLM): New target macro.
15327 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15328 (processor_type): Add PROCESSOR_SLM.
15329
15330 * config/i386/i386.md (cpu): Add new value "slm".
15331 (slm.md): Include slm.md.
15332
24d5b097
XG
153332013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15334 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15335
15336 * config/arm/arm-protos.h: Add and update function protos.
15337 * config/arm/arm.c (use_simple_return_p): New added.
15338 (thumb2_expand_return): Check simple_return flag.
15339 * config/arm/arm.md: Add simple_return and conditional simple_return.
15340 * config/arm/iterators.md: Add iterator for return and simple_return.
15341
c1cccc15
ZC
153422013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15343
15344 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15345 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15346 (arm_emit_vfp_multi_reg_pop): Likewise.
15347 (thumb2_emit_ldrd_pop): Likewise.
15348 (arm_expand_epilogue): Add misc REG_CFA notes.
15349 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15350
3a4f280b
LC
153512013-05-29 Lawrence Crowl <crowl@google.com>
15352
15353 * config/arm/t-arm: Update for below.
15354
15355 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15356 Change type to hash_table. Update dependent calls and types.
15357
15358 * config/i386/t-cygming: Update for below.
15359
15360 * config/i386/t-interix: Update for below.
15361
15362 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15363 Change type to hash_table. Update dependent calls and types.
15364 (i386_find_on_wrapper_list::wrappers): Likewise.
15365
15366 * config/ia64/t-ia64: Update for below.
15367
15368 * config/ia64/ia64.c (bundle_state_table):
15369 Change type to hash_table. Update dependent calls and types.
15370
15371 * config/mips/mips.c (mips_reorg_process_insns::htab):
15372 Change type to hash_table. Update dependent calls and types.
15373
15374 * config/sol2.c (solaris_comdat_htab):
15375 Change type to hash_table. Update dependent calls and types.
15376
15377 * config/t-sol2: Update for above.
15378
1388a0e3
TJ
153792013-05-29 Teresa Johnson <tejohnson@google.com>
15380
15381 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15382 functions are not yet marked as defined.
15383
a5965b52 153842013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15385 Pat Haugen <pthaugen@us.ibm.com>
15386 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15387
15388 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15389 instructions.
15390 (VEC_A): Likewise.
15391 (VEC_C): Likewise.
15392 (vrotl<mode>3): Likewise.
15393 (vashl<mode>3): Likewise.
15394 (vlshr<mode>3): Likewise.
15395 (vashr<mode>3): Likewise.
15396
15397 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15398 support for power8 V2DI builtins.
15399
15400 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15401 power8 V2DI builtins.
15402 (vupkhsw): Likewise.
15403 (vupklsw): Likewise.
15404 (vaddudm): Likewise.
15405 (vminsd): Likewise.
15406 (vmaxsd): Likewise.
15407 (vminud): Likewise.
15408 (vmaxud): Likewise.
15409 (vpkudum): Likewise.
15410 (vpksdss): Likewise.
15411 (vpkudus): Likewise.
15412 (vpksdus): Likewise.
15413 (vrld): Likewise.
15414 (vsld): Likewise.
15415 (vsrd): Likewise.
15416 (vsrad): Likewise.
15417 (vsubudm): Likewise.
15418 (vcmpequd): Likewise.
15419 (vcmpgtsd): Likewise.
15420 (vcmpgtud): Likewise.
15421 (vcmpequd_p): Likewise.
15422 (vcmpgtsd_p): Likewise.
15423 (vcmpgtud_p): Likewise.
15424 (vupkhsw): Likewise.
15425 (vupklsw): Likewise.
15426 (vaddudm): Likewise.
15427 (vmaxsd): Likewise.
15428 (vmaxud): Likewise.
15429 (vminsd): Likewise.
15430 (vminud): Likewise.
15431 (vpksdss): Likewise.
15432 (vpksdus): Likewise.
15433 (vpkudum): Likewise.
15434 (vpkudus): Likewise.
15435 (vrld): Likewise.
15436 (vsld): Likewise.
15437 (vsrad): Likewise.
15438 (vsrd): Likewise.
15439 (vsubudm): Likewise.
15440
15441 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15442 support for power8 V2DI instructions.
15443
15444 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15445 power8 V2DI instructions. Combine pack and unpack insns to use an
15446 iterator for each mode. Check whether a particular mode supports
15447 Altivec instructions instead of just checking TARGET_ALTIVEC.
15448 (UNSPEC_VPKUWUM): Likewise.
15449 (UNSPEC_VPKSHSS): Likewise.
15450 (UNSPEC_VPKSWSS): Likewise.
15451 (UNSPEC_VPKUHUS): Likewise.
15452 (UNSPEC_VPKSHUS): Likewise.
15453 (UNSPEC_VPKUWUS): Likewise.
15454 (UNSPEC_VPKSWUS): Likewise.
15455 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15456 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15457 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15458 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15459 (UNSPEC_VUPKHSB): Likewise.
15460 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15461 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15462 (UNSPEC_VUPKHSH): Likewise.
15463 (UNSPEC_VUPKLSB): Likewise.
15464 (UNSPEC_VUPKLSH): Likewise.
15465 (VI2): Likewise.
15466 (VI_char): Likewise.
15467 (VI_scalar): Likewise.
15468 (VI_unit): Likewise.
15469 (VP): Likewise.
15470 (VP_small): Likewise.
15471 (VP_small_lc): Likewise.
15472 (VU_char): Likewise.
15473 (add<mode>3): Likewise.
15474 (altivec_vaddcuw): Likewise.
15475 (altivec_vaddu<VI_char>s): Likewise.
15476 (altivec_vadds<VI_char>s): Likewise.
15477 (sub<mode>3): Likewise.
15478 (altivec_vsubcuw): Likewise.
15479 (altivec_vsubu<VI_char>s): Likewise.
15480 (altivec_vsubs<VI_char>s): Likewise.
15481 (altivec_vavgs<VI_char>): Likewise.
15482 (altivec_vcmpbfp): Likewise.
15483 (altivec_eq<mode>): Likewise.
15484 (altivec_gt<mode>): Likewise.
15485 (altivec_gtu<mode>): Likewise.
15486 (umax<mode>3): Likewise.
15487 (smax<mode>3): Likewise.
15488 (umin<mode>3): Likewise.
15489 (smin<mode>3): Likewise.
15490 (altivec_vpkuhum): Likewise.
15491 (altivec_vpkuwum): Likewise.
15492 (altivec_vpkshss): Likewise.
15493 (altivec_vpkswss): Likewise.
15494 (altivec_vpkuhus): Likewise.
15495 (altivec_vpkshus): Likewise.
15496 (altivec_vpkuwus): Likewise.
15497 (altivec_vpkswus): Likewise.
15498 (altivec_vpks<VI_char>ss): Likewise.
15499 (altivec_vpks<VI_char>us): Likewise.
15500 (altivec_vpku<VI_char>us): Likewise.
15501 (altivec_vpku<VI_char>um): Likewise.
15502 (altivec_vrl<VI_char>): Likewise.
15503 (altivec_vsl<VI_char>): Likewise.
15504 (altivec_vsr<VI_char>): Likewise.
15505 (altivec_vsra<VI_char>): Likewise.
15506 (altivec_vsldoi_<mode>): Likewise.
15507 (altivec_vupkhsb): Likewise.
15508 (altivec_vupkhs<VU_char>): Likewise.
15509 (altivec_vupkls<VU_char>): Likewise.
15510 (altivec_vupkhsh): Likewise.
15511 (altivec_vupklsb): Likewise.
15512 (altivec_vupklsh): Likewise.
15513 (altivec_vcmpequ<VI_char>_p): Likewise.
15514 (altivec_vcmpgts<VI_char>_p): Likewise.
15515 (altivec_vcmpgtu<VI_char>_p): Likewise.
15516 (abs<mode>2): Likewise.
15517 (vec_unpacks_hi_v16qi): Likewise.
15518 (vec_unpacks_hi_v8hi): Likewise.
15519 (vec_unpacks_lo_v16qi): Likewise.
15520 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15521 (vec_unpacks_lo_v8hi): Likewise.
15522 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15523 (vec_pack_trunc_v8h): Likewise.
15524 (vec_pack_trunc_v4si): Likewise.
15525 (vec_pack_trunc_<mode>): Likewise.
15526
15527 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15528 V2DI builtins.
15529 (vec_vmaxsd): Likewise.
15530 (vec_vmaxud): Likewise.
15531 (vec_vminsd): Likewise.
15532 (vec_vminud): Likewise.
15533 (vec_vpksdss): Likewise.
15534 (vec_vpksdus): Likewise.
15535 (vec_vpkudum): Likewise.
15536 (vec_vpkudus): Likewise.
15537 (vec_vrld): Likewise.
15538 (vec_vsld): Likewise.
15539 (vec_vsrad): Likewise.
15540 (vec_vsrd): Likewise.
15541 (vec_vsubudm): Likewise.
15542 (vec_vupkhsw): Likewise.
15543 (vec_vupklsw): Likewise.
15544
e70670cf
JH
155452013-05-29 Jan Hubicka <jh@suse.cz>
15546
15547 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15548 flags; reorder rest of fields in more consistent way.
15549 (varpool_node): Remove analyzed, finalized and alias.
15550 (cgraph_ndoe): Likewise.
15551 (symtab_alias_ultimate_target): New function.
15552 (cgraph_function_node): Move offline.
15553 (cgraph_reset_node): Declare.
15554 (cgraph_comdat_can_be_unshared_p): Remove.
15555 (varpool_remove_initializer): Declare.
15556 (varpool_first_defined_variable, varpool_next_defined_variable
15557 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15558 (cgraph_function_with_gimple_body_p): Update.
15559 (varpool_all_refs_explicit_p): Update.
15560 (symtab_alias_target): New function.
15561 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15562 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15563 (cgraph_function_or_thunk_node): Simplify using
15564 symtab_alias_ultimate_target.
e70670cf
JH
15565 (varpool_variable_node): Likewise.
15566 * cgraph.c (cgraph_create_function_alias): Update.
15567 (cgraph_add_thunk): Update.
15568 (cgraph_remove_node): Update.
15569 (dump_cgraph_node): Do not dump removed flags.
15570 (cgraph_function_body_availability): Update.
15571 (cgraph_propagate_frequency): Update.
15572 (verify_cgraph_node): Check sanity of local flag.
15573 (cgraph_function_node): Move here from cgraph.h; revamp for
15574 cgraph_function_or_thunk_node.
15575 * lto-symtab.c (lto_varpool_replace_node): Update.
15576 (lto_symtab_resolve_can_prevail_p): Update.
15577 (lto_symtab_merge_cgraph_nodes): Update.
15578 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15579 propagate_constants_accross_call, devirtualization_time_bonus,
15580 ipcp_propagate_stage): Update.
15581 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15582 * ipa-inline-transform.c (clone_inlined_nodes,
15583 preserve_function_body_p): Update.
e70670cf
JH
15584 * ipa-reference.c (propagate): Update.
15585 (write_node_summary_p): Update.
15586 * toplev.c (wrapup_global_declaration_2): Update.
15587 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15588 (analyze_function) ... this one.
15589 (cgraph_process_new_functions): Update.
15590 (cgraph_reset_node): Export.
15591 (cgraph_finalize_function): Update.
15592 (cgraph_add_new_function): Update.
15593 (process_function_and_variable_attributes): Update.
15594 (varpool_finalize_decl): Update.
15595 (symbol_finalized): Remove.
15596 (symbol_finalized_and_needed): Rename to ...
15597 (symbol_defined_and_needed): ... update.
15598 (cgraph_analyze_functions): Update.
15599 (handle_alias_pairs): Update.
15600 (mark_functions_to_output): Update.
15601 (assemble_thunk): Update.
15602 (output_in_order): Update.
15603 (output_weakrefs): Update.
15604 (finalize_compilation_unit): Update.
15605 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15606 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15607 input_node, input_varpool_node): Update.
15608 * dbxout.c (dbxout_expand_expr): Update.
15609 * cgraphclones.c (cgraph_clone_node): Update.
15610 (cgraph_copy_node_for_versioning): Update.
15611 (cgraph_materialize_clone): Update.
15612 (cgraph_materialize_all_clones): Update.
15613 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15614 propagate_pure_const, propagate_nothrow): Update.
15615 * lto-streamer-out.c (lto_output, write_symbol): Update.
15616 * ipa-utils.c (ipa_reverse_postorder): Update.
15617 * ipa-inline.c (can_inline_edge_p): Update.
15618 (update_caller_keys, ipa_inline): Update.
15619 * dwarf2out.c (reference_to_unused,
15620 premark_types_used_by_global_vars_helper): Update.
15621 * tree-eh.c (tree_could_trap_p): Update.
15622 * ipa-split.c (consider_split, execute_split_functions): Update.
15623 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15624 has_addr_references_p): Update; move ahead in file for better
15625 readability.
e70670cf
JH
15626 (process_references): Simplify.
15627 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15628 bodies are removed.
15629 (cgraph_comdat_can_be_unshared_p): Make static.
15630 (cgraph_externally_visible_p): Update.
15631 (varpool_externally_visible_p): Update.
15632 (function_and_variable_visibility): Update.
15633 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15634 ipa_tm_mark_force_output_node): Update.
15635 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15636 estimate_edge_devirt_benefit, inline_generate_summary,
15637 inline_write_summary): Update.
15638 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15639 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
15640 (ipa_print_node_params, ipa_prop_read_section,
15641 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
15642 * varasm.c (mark_decl_referenced): Update.
15643 (assemble_alias, dump_tm_clone_pairs): Update.
15644 * tree-inline.c (copy_bb): Update.
15645 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15646 Update.
15647 * symtab.c (dump_symtab_base): Print new flags.
15648 (verify_symtab_base): Verify new flags.
15649 (symtab_alias_ultimate_target): New function.
15650 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15651 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15652 Update.
c1e183a9
UB
15653 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15654 Update.
e70670cf
JH
15655 * i386.c (ix86_get_function_versions_dispatcher,
15656 ix86_generate_version_dispatcher_body): Update.
15657 (fold_builtin_cpu): Use varpool_add_new_variable.
15658 * varpool.c (varpool_remove_initializer): Break out from ...
15659 (varpool_remove_node): ... this one.
15660 (dump_varpool_node, varpool_node_for_asm,
15661 cgraph_variable_initializer_availability, varpool_analyze_node,
15662 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
15663 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15664 Update.
e70670cf 15665
182802ad
JH
156662013-05-29 Jan Hubicka <jh@suse.cz>
15667
15668 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15669
8190b609
ER
156702013-05-29 Easwaran Raman <eraman@google.com>
15671
15672 PR tree-optimization/57442
15673 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15674 when control exits the main loop.
15675
69f5aa9b
SKS
156762013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15677
15678 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15679 and RX600.
c1e183a9 15680 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
15681 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15682 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15683 option.
15684
4b847da9
BS
156852013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15686
15687 PR tree-optimization/57441
15688 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15689 Don't limit size of incr_vec to number of candidates.
15690
4fc43c39
SE
156912013-05-29 Steve Ellcey <sellcey@imgtec.com>
15692
15693 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15694 and mips16 directories.
c1e183a9 15695 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
15696 (MULTILIB_DIRNAMES): Ditto.
15697 (MULTILIB_EXCEPTIONS): Add new exceptions.
15698 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15699 (MULTILIB_DIRNAMES): Ditto.
15700 (MULTILIB_EXCEPTIONS): Add new exceptions.
15701
12211b99 157022012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
15703 Marcus Shawcroft <marcus.shawcroft@arm.com>
15704
15705 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15706 SYMBOL_TINY_ABSOLUTE.
15707 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
15708 SYMBOL_TINY_ABSOLUTE.
15709 (aarch64_expand_mov_immediate): Likewise.
15710 (aarch64_classify_symbol): Likewise.
15711 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
15712 Permit SYMBOL_TINY_ABSOLUTE.
15713 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
15714
12211b99 157152013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
15716 Marcus Shawcroft <marcus.shawcroft@arm.com>
15717
15718 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
15719 Refactor if/switch. Replace gcc_assert with if.
15720
c0186656
GG
157212013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15722
15723 * config/i386/i386.c (initial_ix86_tune_features): Enable
15724 FP Reassociation for AMD bdver1 and bdver2.
15725
d20188f3
MJ
157262013-05-29 Martin Jambor <mjambor@suse.cz>
15727
15728 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
15729 and IMAGPART_EXPR do not occur within other handled_components.
15730
292cba13
RB
157312013-05-29 Richard Biener <rguenther@suse.de>
15732
15733 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
15734 access on whether the use is in the BB we currently try to
15735 vectorize.
15736 (vect_bb_vectorization_profitable_p): Pass the BB we currently
15737 vectorize to vect_bb_slp_scalar_cost.
15738
6eddf228
RB
157392013-05-29 Richard Biener <rguenther@suse.de>
15740
15741 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
15742 computing scalar cost offsetted by stmts that are kept live
15743 by scalar uses.
15744 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
15745 for computation of scalar cost.
15746
7df36117
SE
157472013-05-28 Steve Ellcey <sellcey@mips.com>
15748
15749 * config/mips/mips-cpus.def (mips32r2): Change processor type.
15750
36536d79
BI
157512013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
15752
15753 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
15754 array notation built-in reduction functions.
15755 * doc/passes.texi (Passes): Added documentation about changes done
15756 for Cilk Plus.
15757 * doc/invoke.texi (C Dialect Options): Added documentation about
15758 the -fcilkplus flag.
15759 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
15760 (BUILTINS_DEF): Depend on cilkplus.def.
15761 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
15762 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
15763 * cilkplus.def: New file.
15764
12211b99 157652013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
15766
15767 PR rtl-optimization/57439
15768 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
15769
9daf6dbb
ER
157702013-05-28 Easwaran Raman <eraman@google.com>
15771
15772 PR tree-optimization/57337
15773 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
15774 (find_insert_point): Correctly identify the insertion point
15775 when two statements with the same UID is compared.
15776
fbd7e877
RB
157772013-05-28 Richard Biener <rguenther@suse.de>
15778
15779 PR tree-optimization/56787
15780 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
15781 from the list of data references.
15782 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
15783 clobbers.
15784 (vect_analyze_loop_operations): Likewise.
15785 (vect_transform_loop): Remove clobbers.
15786
bbba1117
MJ
157872013-05-28 Martin Jambor <mjambor@suse.cz>
15788
15789 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
15790 and REALPART_EXPRs have scalar type.
15791
bd388c2a
RB
157922013-05-28 Richard Biener <rguenther@suse.de>
15793
15794 PR tree-optimization/57411
15795 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
15796 virtual operands.
15797 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
15798 virtual operand propagation.
15799
2f56a311
EB
158002013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15801
15802 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
15803 destination register for bmasksi_vis.
15804 (vector_init_bshuffle): Likewise.
15805 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
15806
5c3eacbb
EB
158072013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15808
15809 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
15810 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
15811 mode if the instruction isn't available in the original mode.
15812 * config/sparc/sparc.opt (mfix-ut699): New option.
15813 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
15814 (divdf3): Turn into expander.
15815 (divdf3_nofix): New insn.
15816 (divdf3_fix): Likewise.
15817 (divsf3): Disable if -mfix-ut699.
15818 (sqrtdf2): Turn into expander.
15819 (sqrtdf2_nofix): New insn.
15820 (sqrtdf2_fix): Likewise.
15821 (sqrtsf2): Disable if -mfix-ut699.
15822
a1756c0a
RB
158232013-05-27 Richard Biener <rguenther@suse.de>
15824
15825 PR middle-end/57412
15826 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
15827 block for the new loop.
15828
5a892248
RB
158292013-05-27 Richard Biener <rguenther@suse.de>
15830
15831 PR tree-optimization/57343
15832 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
15833 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
15834 (number_of_iterations_cond): Do not build the folded tree.
15835
d1de852b
RB
158362013-05-27 Richard Biener <rguenther@suse.de>
15837
15838 Revert
15839 PR middle-end/57381
15840 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15841 OEP_CONSTANT_ADDRESS_OF retained.
15842
15843 PR tree-optimization/57417
15844 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
15845 for unchanged base.
15846 (set_ssa_val_to): Compare addresses using
15847 get_addr_base_and_unit_offset.
15848
12211b99 158492013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
15850
15851 PR rtl-optimization/56833
15852 * postreload.c (move2add_record_mode): New function.
15853 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
15854 (move2add_use_add2_insn): Use move2add_record_sym_value.
15855 (move2add_use_add3_insn): Likewise.
15856 (reload_cse_move2add): Use move2add_valid_value_p and
15857 move2add_record_mode. Invalidate call-clobbered and REG_INC
15858 affected regs by setting reg_mode to VOIDmode.
15859 (move2add_note_store): Don't pretend the inside of a SUBREG is
15860 the actual destination. Invalidate single/leading registers by
15861 setting reg_mode to VOIDmode.
15862 Use move2add_record_sym_value, move2add_valid_value_p and
15863 move2add_record_mode.
15864
b03be25f
RB
158652013-05-27 Richard Biener <rguenther@suse.de>
15866
15867 PR tree-optimization/57396
15868 * tree-affine.c (double_int_constant_multiple_p): Properly
15869 return false for val == 0 and div != 0.
15870
44e88db2
RS
158712013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15872
15873 * config/mips/mips.h: Use #elif in preprocessor conditions.
15874
3b859704
RS
158752013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15876
15877 PR target/53916
15878 * config/mips/constraints.md (kl): New constraint.
15879 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
15880 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
15881 constraint for operand 0. Split after CSE for MIPS16. Emit a move
15882 from LO for MIPS16.
15883 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
15884
c979d5f5
RS
158852013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15886
15887 PR target/55777
15888 * config/mips/mips.c (mips_can_inline_p): New function.
15889 (TARGET_CAN_INLINE_P): Define.
15890
8e90de43
SB
158912013-05-25 Steven Bosscher <steven@gcc.gnu.org>
15892
15893 * sched-int.h (ds_t, dw_t): Make unsigned int.
15894 Fix documentation that describes how all the ds_t bits are used.
15895 Reserve the last bit for delayed-branch scheduling.
15896 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
15897 (BITS_PER_DEP_WEAK): Fix definition and documentation.
15898 (gen_dep_weak_1): Remove prototype.
15899 * sched-deps.c (get_dep_weak_1): Make static.
15900 * target.def (speculate_insn, needs_block_p, gen_spec_check,
15901 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
15902 * doc/tm.texi: Regenerate.
15903 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
15904
cb5cb194
SB
159052013-05-24 Steven Bosscher <steven@gcc.gnu.org>
15906
15907 PR debug/56950
15908 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
15909
5bd93ff6
NS
159102013-05-24 Nathan Sidwell <nathan@codesourcery.com>
15911 Sandra Loosemore <sandra@codesourcery.com>
15912
15913 * config.gcc (powerpc-*): Allow native for with-cpu.
15914
2343af65
JL
159152013-05-24 Jeff Law <law@redhat.com>
15916
15917 PR tree-optimization/57124
15918 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
15919 conversion feeding a condition if the range has an overflow
15920 if -fstrict-overflow. Add warnings for when we do make the
15921 transformation.
15922
3ad695b9
DC
159232013-05-24 Dehao Chen <dehao@google.com>
15924
04960246 15925 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
15926 (locus_discrim_hasher): Likewise.
15927 (locus_discrim_hasher::hash): Likewise.
15928 (locus_discrim_hasher::equal): Likewise.
15929
82338059
MJ
159302013-05-24 Martin Jambor <mjambor@suse.cz>
15931
15932 PR tree-optimization/57294
15933 * cgraph.h (ipa_record_stmt_references): Declare.
15934 * cgraphbuild.c (ipa_record_stmt_references): New function.
15935 (build_cgraph_edges): Use ipa_record_stmt_references.
15936 (rebuild_cgraph_edges): Likewise.
15937 (cgraph_rebuild_references): Likewise.
15938 * ipa-prop.c (ipa_modify_call_arguments): Discard references
15939 associated with the old statement and build references from the
15940 newly built statements.
15941 * ipa-ref.c (ipa_remove_stmt_references): New function.
15942 * ipa-ref.h (ipa_remove_stmt_references): Declare.
15943
1ccd4874
VM
159442013-05-24 Vladimir Makarov <vmakarov@redhat.com>
15945
55805e54 15946 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 15947 mem-mem moves.
55805e54 15948 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 15949 too.
55805e54 15950 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
15951 secondary memory moves.
15952 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
15953 reg set up in the current insn.
15954
25e25c73
DC
159552013-05-24 Dehao Chen <dehao@google.com>
15956
04960246 15957 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
15958 hash function.
15959 (locus_descrim_hasher::equal): Likewise.
04960246 15960 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
15961 (make_edges): Likewise.
15962 (next_discriminator_for_locus): Likewise.
15963 (same_line_p): Likewise.
15964 (assign_discriminators): Likewise.
15965 (make_cond_expr_edges): Likewise.
15966 (make_gimple_switch_edges): Likewise.
15967 (make_goto_expr_edges): Likewise.
15968 (make_gimple_asm_edges): Likewise.
15969
50d38551
IB
159702013-05-24 Ian Bolton <ian.bolton@arm.com>
15971
15972 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
15973 X format specifier to only display bottom 16 bits.
15974 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
15975 immediate to match for operand 2, since it will be masked.
15976
aea0101d
RB
159772013-05-24 Richard Biener <rguenther@suse.de>
15978
15979 PR tree-optimization/57287
15980 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
15981 all SSA names that occur in abnormal PHIs.
15982
634e03d3
AI
159832013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15984
15985 PR tree-ssa/57385
15986 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
15987 that index is not negative.
15988
b17c024f
EB
159892013-05-24 Eric Botcazou <ebotcazou@adacore.com>
15990
15991 PR rtl-optimization/55177
15992 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
15993 (simplify_byte_swapping_operation): New.
15994 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
15995 (simplify_relational_operation_1): Deal with BSWAP.
15996
46aeac1b
RH
159972013-05-23 Richard Henderson <rth@redhat.com>
15998
15999 PR target/56742
16000 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16001 (ix86_reorg): Call it.
16002
70cc1536
UB
160032013-05-23 Uros Bizjak <ubizjak@gmail.com>
16004
16005 PR target/57379
16006 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16007 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16008 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16009
b3851501
CB
160102013-05-23 Christian Bruel <christian.bruel@st.com>
16011
16012 PR debug/57351
16013 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16014
12211b99 160152013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16016 Marcus Shawcroft <marcus.shawcroft@arm.com>
16017
16018 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16019 * config/aarch64/constraints.md (Usa): Remove.
16020 * doc/md.texi (AArch64 Usa): Remove.
16021
12211b99 160222013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16023 Marcus Shawcroft <marcus.shawcroft@arm.com>
16024
16025 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16026 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16027 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16028 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16029
12211b99 160302013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16031
16032 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16033 instruction (AdvSIMD).
16034 * config/aarch64/aarch64-builtins.c
16035 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16036 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16037
76c36cb1 160382013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16039
16040 PR middle-end/57347
16041 * tree.h (contains_bitfld_component_ref_p): Declare.
16042 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16043 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16044 caller.
7d2fb524
MJ
16045 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16046 not access a bit-field. Assert all final offsets are byte-aligned.
16047
ce521ae6
RB
160482013-05-23 Richard Biener <rguenther@suse.de>
16049
16050 PR tree-optimization/57380
16051 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16052 least one invariant or re-used load.
16053 * passes.c (init_optimization_passes): Move pass_phiprop before
16054 pass_forwprop.
16055
75c7257f
JG
160562013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16057
16058 * config/aarch64/aarch64-simd.md
16059 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16060
af6d44b5
RB
160612013-05-23 Richard Biener <rguenther@suse.de>
16062
16063 PR middle-end/57381
16064 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16065 OEP_CONSTANT_ADDRESS_OF retained.
16066
bd3647bf
JJ
160672013-05-23 Jakub Jelinek <jakub@redhat.com>
16068
16069 PR middle-end/57344
70cc1536
UB
16070 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16071 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16072
a55757ea
RB
160732013-05-23 Richard Biener <rguenther@suse.de>
16074
16075 PR rtl-optimization/57341
16076 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16077 instead of true_dependence.
16078
cfb00b41
DM
160792013-05-22 David Malcolm <dmalcolm@redhat.com>
16080
dd1c676f
DM
16081 * bb-reorder.c (branch_threshold): Make const.
16082 (exec_threshold): Ditto.
cfb00b41 16083
f62511da 160842013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16085 Pat Haugen <pthaugen@us.ibm.com>
16086 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16087
16088 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16089 documentation for the power8 crypto builtins.
16090
16091 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16092
16093 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16094 macros for defining power8 builtin functions.
16095 (BU_P8V_AV_2): Likewise.
16096 (BU_P8V_AV_P): Likewise.
16097 (BU_P8V_VSX_1): Likewise.
16098 (BU_P8V_OVERLOAD_1): Likewise.
16099 (BU_P8V_OVERLOAD_2): Likewise.
16100 (BU_CRYPTO_1): Likewise.
16101 (BU_CRYPTO_2): Likewise.
16102 (BU_CRYPTO_3): Likewise.
16103 (BU_CRYPTO_OVERLOAD_1): Likewise.
16104 (BU_CRYPTO_OVERLOAD_2): Likewise.
16105 (XSCVSPDP): Fix typo, point to the correct instruction.
16106 (VCIPHER): Add power8 crypto builtins.
16107 (VCIPHERLAST): Likewise.
16108 (VNCIPHER): Likewise.
16109 (VNCIPHERLAST): Likewise.
16110 (VPMSUMB): Likewise.
16111 (VPMSUMH): Likewise.
16112 (VPMSUMW): Likewise.
16113 (VPERMXOR_V2DI): Likewise.
16114 (VPERMXOR_V4SI: Likewise.
16115 (VPERMXOR_V8HI: Likewise.
16116 (VPERMXOR_V16QI: Likewise.
16117 (VSHASIGMAW): Likewise.
16118 (VSHASIGMAD): Likewise.
16119 (VPMSUM): Likewise.
16120 (VPERMXOR): Likewise.
16121 (VSHASIGMA): Likewise.
16122
16123 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16124 __CRYPTO__ if the crypto instructions are available.
16125 (altivec_overloaded_builtins): Add support for overloaded power8
16126 builtins.
16127
16128 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16129 support for power8 crypto builtins.
16130 (builtin_function_type): Likewise.
16131 (altivec_init_builtins): Add support for builtins that take vector
16132 long long (V2DI) arguments.
16133
16134 * config/rs6000/crypto.md: New file, define power8 crypto
16135 instructions.
16136
161372013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16138 Pat Haugen <pthaugen@us.ibm.com>
16139 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16140
16141 * doc/invoke.texi (Option Summary): Add power8 options.
16142 (RS/6000 and PowerPC Options): Likewise.
16143
16144 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16145 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16146 wm, wn, wr documentation.
16147
f43245d1 16148 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16149 registers if direct move instructions are enabled.
16150 (wn): New constraint for no registers.
16151 (wq): New constraint for quad word even GPR registers.
16152 (wr): New constraint if 64-bit instructions are enabled.
16153 (wv): New constraint if power8 vector instructions are enabled.
16154 (wQ): New constraint for quad word memory locations.
16155
f43245d1 16156 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16157 constraint for 0..15 for crypto instructions.
16158 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16159 as GPR and floating point registers.
16160 (int_reg_operand): New predicate to match only GPR registers.
16161 (base_reg_operand): New predicate to match base registers.
16162 (quad_int_reg_operand): New predicate to match even GPR registers
16163 for quad memory operations.
16164 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16165 operations in both GPR and VSX registers.
16166 (quad_memory_operand): New predicate for quad memory operations.
16167 (reg_or_indexed_operand): New predicate for direct move support.
16168
f43245d1 16169 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16170 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16171 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16172 (POWERPC_MASKS): Add power8 options.
16173 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16174 various options.
16175
f43245d1 16176 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16177 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16178
f43245d1 16179 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16180 (-mpower8-fusion): New power8 options.
16181 (-mpower8-fusion-sign): Likewise.
16182 (-mpower8-vector): Likewise.
16183 (-mcrypto): Likewise.
16184 (-mdirect-move): Likewise.
16185 (-mquad-memory): Likewise.
16186
f43245d1 16187 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16188 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16189 registers.
70cc1536 16190 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16191 (rs6000_debug_vector_unit): Add p8_vector.
16192 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16193 definitions. Also print fusion state.
16194 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16195 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16196 (rs6000_option_override_internal): Add support for power8.
16197 (rs6000_common_init_builtins): Add debugging for skipped builtins
16198 if -mdebug=builtin.
16199 (rs6000_adjust_cost): Add power8 support.
16200 (rs6000_issue_rate): Likewise.
16201 (insn_must_be_first_in_group): Likewise.
16202 (insn_must_be_last_in_group): Likewise.
16203 (force_new_group): Likewise.
16204 (rs6000_register_move_cost): Likewise.
16205 (rs6000_opt_masks): Likewise.
16206
16207 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16208 power8 capable assembler, default to power7 options.
16209 (TARGET_DIRECT_MOVE): Likewise.
16210 (TARGET_CRYPTO): Likewise.
16211 (TARGET_P8_VECTOR): Likewise.
16212 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16213 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16214 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16215 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16216 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16217 (TARGET_XSCVDPSPN): Likewise.
16218 (TARGET_XSCVSPDPN): Likewsie.
16219 (TARGET_SYNC_HI_QI): Likewise.
16220 (TARGET_SYNC_TI): Likewise.
16221 (MASK_CRYPTO): Likewise.
16222 (MASK_DIRECT_MOVE): Likewise.
16223 (MASK_P8_FUSION): Likewise.
16224 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16225 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16226 temporary used by some of the direct move instructions to get two FP
16227 temporary registers does not force creation of a stack frame.
f62511da
MM
16228 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16229 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16230 that any VSX registers are tieable, even if they are also an
16231 Altivec vector mode.
16232 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16233 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16234 (RS6000_BTM_CRYPTO): Likewise.
16235 (RS6000_BTM_COMMON): Likewise.
16236
16237 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16238 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16239 (enum rs6000_vector): Add power8 vector support.
16240
73a1a707
RR
162412013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16242
16243 PR target/19599
16244 PR target/57340
16245 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16246 (any_sibcall_could_use_r3): this and handle indirect calls.
16247 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16248
d28073d4
BS
162492013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16250
16251 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16252
bee0b10c
RB
162532013-05-22 Richard Biener <rguenther@suse.de>
16254
16255 PR middle-end/57349
16256 * profile.c (branch_prob): Do not split blocks that are
16257 abnormally receiving from ECF_RETURNS_TWICE functions.
16258
98409b51
RS
162592013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16260
16261 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16262 address mode. Move pointer mode initialization to the same place.
16263
c0602ab8
MZ
162642013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16265
16266 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16267 while it has any effect.
16268
4f7a634e
ER
162692013-05-21 Easwaran Raman <eraman@google.com>
16270
16271 PR tree-optimization/57322
9daf6dbb
ER
16272 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16273 UID of the statement added to the BB to be 1.
4f7a634e 16274
a4ce1258
JJ
162752013-05-21 Jakub Jelinek <jakub@redhat.com>
16276
16277 PR tree-optimization/57331
70cc1536
UB
16278 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16279 of conversion from pointer type to integral type with integer.
a4ce1258 16280
1b14621a
MJ
162812013-05-21 Martin Jambor <mjambor@suse.cz>
16282
16283 PR lto/57289
16284 * ipa-prop.c (ipa_read_node_info): Process param_used and
16285 controlled_uses in the same order as when writing.
16286
e60661f0
MG
162872013-05-21 Magnus Granberg <baldrick@free.fr>
16288
16289 PR plugins/56754
ee49aa34 16290 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16291
4a61be9a
RB
162922013-05-21 Richard Biener <rguenther@suse.de>
16293
16294 PR tree-optimization/57318
16295 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16296 estimate stmts with side-effects as likely eliminated.
16297
c52da5f7
RB
162982013-05-21 Richard Biener <rguenther@suse.de>
16299
16300 PR tree-optimization/57330
16301 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16302 preserve the call stmts fntype.
16303
7ec67e2a
RB
163042013-05-21 Richard Biener <rguenther@suse.de>
16305
16306 PR tree-optimization/57303
16307 * tree-ssa-sink.c (statement_sink_location): Improve killing
16308 stmt detection and properly handle self-assignments.
16309
b112d513
CB
163102013-05-21 Christian Bruel <christian.bruel@st.com>
16311
55805e54
YR
16312 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16313 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16314 registers. Set register size out of the PARALLEL loop.
16315
14c2ec26
OE
163162013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16317
16318 PR target/56547
16319 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16320 (*fmasf4, *fmasf4_media): New insns.
16321
da734fa1
RS
163222013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16323
16324 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16325 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16326 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16327 (mips_idiv_insns): Update the comments to say that the returned
16328 instruction counts are in units of BASE_INSN_LENGTH.
16329 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16330 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16331 using 2 rather than 4 as the length of indirect MIPS16 and
16332 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16333 length of a NOP. Don't divide MIPS16 lengths by 2.
16334 (mips16_split_long_branches): Assume a branch is long if the
16335 length is greater than 4 rather than 8.
16336 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16337 rather than multiplying them by 2. Multiply instruction counts
16338 by BASE_INSN_LENGTH rather than 4.
16339 (*jump_mips16, tls_get_tp_mips16_<mode>)
16340 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16341
13719e8b
RS
163422013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16343
16344 * config/mips/mips.md (extended_mips16): Remove branch case.
16345 (length): Remove duplicated extended_mips16 test.
16346
c3850d14
RS
163472013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16348
16349 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16350
8da2e059
RS
163512013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16352
16353 * recog.h (Recog_data): Rename to...
16354 (recog_data_d): ...this.
16355 (recog_data): Update accordingly.
16356 * recog.c (recog_data): Likewise.
16357 * reload.c (save_recog_data): Likewise.
16358 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16359 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16360
2df013f3
JB
163612013-05-17 Julian Brown <julian@codesourcery.com>
16362
16363 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16364 found in a REG_EQUAL note, invalidate it.
16365
371e77e3 163662013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16367
16368 * tree-ssa-reassoc.c (find_insert_point): New function.
16369 (insert_stmt_after): Likewise.
16370 (get_def_stmt): Likewise.
16371 (ensure_ops_are_available): Likewise.
16372 (not_dominated_by): Likewise.
16373 (rewrite_expr_tree): Do not move statements beyond what is
16374 necessary. Remove call to swap_ops_for_binary_stmt...
16375 (reassociate_bb): ... and move it here.
16376 (build_and_add_sum): Assign UIDs for new statements.
16377 (linearize_expr): Likewise.
16378 (do_reassoc): Renumber gimple statement UIDs.
16379
e01c7cca
JH
163802013-05-17 Jan Hubicka <jh@suse.cz>
16381
16382 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16383 weakrefs.
16384 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16385 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16386 weakrefs.
e01c7cca
JH
16387 (output_weakrefs): Update.
16388
c3272a92
PCC
163892013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16390 Martin Jambor <mjambor@suse.cz>
16391
16392 PR middle-end/57276
16393 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16394 value that corresponds to the given aggval is found in values vector.
16395
11c2aa39
UB
163962013-05-17 Uros Bizjak <ubizjak@gmail.com>
16397
16398 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16399 sse, sse2, sse3, ssse3 and sse4a flags to options.
16400
abecc8c6
DM
164012013-05-17 David Malcolm <dmalcolm@redhat.com>
16402
16403 * gengtype-state.c: (s_expr_writer): New class, to handle
16404 prettifying of output layout of s-expressions.
16405 (state_writer): New class, to write out gtype.state.
16406 (state_written_type_count): Move this variable into member data of
16407 state_writer.
16408 (s_expr_writer::s_expr_writer): New code: constructor for new class
16409 (state_writer::state_writer(): ditto
16410 (s_expr_writer::write_new_line): New function
16411 (s_expr_writer::write_any_indent): ditto
16412 (s_expr_writer::begin_s_expr): ditto
16413 (s_expr_writer::end_s_expr): ditto
16414 (write_state_fileloc): convert to method of state_writer...
16415 (state_writer:: write_state_fileloc): ...and use methods of
16416 s_expr_writer to write indentation into the gtype.state output file
16417 to visually represent the hierarchical structure of the list
16418 structures
16419 (write_state_fields): ditto, renaming to...
16420 (state_writer::write_state_fields)
16421 (write_state_a_string): ditto, renaming to...
16422 (state_writer::write_state_a_string)
16423 (write_state_string_option): ditto, renaming to...
16424 (state_writer::write_state_string_option)
16425 (write_state_type_option): ditto, renaming to...
16426 (state_writer::write_state_type_option)
16427 (write_state_nested_option): ditto, renaming to...
16428 (state_writer::write_state_nested_option)
16429 (write_state_option): ditto, renaming to...
16430 (state_writer::write_state_option)
16431 (write_state_options): ditto, renaming to...
16432 (state_writer::write_state_options)
16433 (write_state_lang_bitmap): ditto, renaming to...
16434 (state_writer::write_state_lang_bitmap)
16435 (write_state_version): ditto, renaming to...
16436 (state_writer::write_state_version)
16437 (write_state_scalar_type): ditto, renaming to...
16438 (state_writer::write_state_scalar_type)
16439 (write_state_string_type): ditto, renaming to...
16440 (state_writer::write_state_string_type)
16441 (write_state_undefined_type): ditto, renaming to...
16442 (state_writer::write_state_undefined_type)
16443 (write_state_struct_union_type): ditto, renaming to...
16444 (state_writer::write_state_struct_union_type)
16445 (write_state_struct_type): ditto, renaming to...
16446 (state_writer::write_state_struct_type)
16447 (write_state_user_struct_type): ditto, renaming to...
16448 (state_writer::write_state_user_struct_type)
16449 (write_state_lang_struct_type): ditto, renaming to...
16450 (state_writer::write_state_lang_struct_type)
16451 (write_state_param_struct_type): ditto, renaming to...
16452 (state_writer::write_state_param_struct_type)
16453 (write_state_pointer_type): ditto, renaming to...
16454 (state_writer::write_state_pointer_type)
16455 (write_state_array_type): ditto, renaming to...
16456 (state_writer::write_state_array_type)
16457 (write_state_gc_used): ditto, renaming to...
16458 (state_writer::write_state_gc_used)
16459 (write_state_common_type_content): ditto, renaming to...
16460 (state_writer::write_state_common_type_content)
16461 (write_state_type): ditto, renaming to...
16462 (state_writer::write_state_type)
16463 (write_state_pair_list): ditto, renaming to...
16464 (state_writer::write_state_pair_list)
16465 (write_state_pair): ditto, renaming to...
16466 (state_writer::write_state_pair)
16467 (write_state_typedefs): ditto, renaming to...
16468 (state_writer::write_state_typedefs)
16469 (write_state_structures): ditto, renaming to...
16470 (state_writer::write_state_structures)
16471 (write_state_param_structs): ditto, renaming to...
16472 (state_writer::write_state_param_structs)
16473 (write_state_variables): ditto, renaming to...
16474 (state_writer::write_state_variables)
16475 (write_state_srcdir): ditto, renaming to...
16476 (state_writer::write_state_srcdir)
16477 (write_state_files_list): ditto, renaming to...
16478 (state_writer::write_state_files_list)
16479 (write_state_languages): ditto, renaming to...
16480 (state_writer::write_state_languages)
16481 (write_state): create a state_writer instance and use it when
16482 writing out the state file
16483
d6545f29
MS
164842013-05-17 Mike Stump <mikestump@comcast.net>
16485
816a3f73 16486 PR rtl-optimization/57304
d6545f29
MS
16487 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16488 accessing DF_REF_REAL_LOC.
16489
38c821cf
JJ
164902013-05-17 Jakub Jelinek <jakub@redhat.com>
16491
16492 PR rtl-optimization/57281
16493 PR rtl-optimization/57300
16494 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16495 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16496 what the other splitter did if the registers are dead.
16497
2a293391
RB
164982013-05-17 Richard Biener <rguenther@suse.de>
16499
16500 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16501 MEM_REF offsets.
16502
17042d2b
JJ
165032013-05-17 Jakub Jelinek <jakub@redhat.com>
16504
16505 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16506 linking.
16507
5b115c1f
MP
165082013-05-17 Marek Polacek <polacek@redhat.com>
16509
11c2aa39
UB
16510 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16511 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16512
52d84413
JJ
165132013-05-17 Jakub Jelinek <jakub@redhat.com>
16514
68119618
JJ
16515 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16516 vect_external_def oprnd1 with loop_vinfo, try to emit
16517 optional cast, negation and and stmts on the loop preheader
16518 edge instead of into the pattern def seq.
16519
52d84413
JJ
16520 PR tree-optimization/57051
16521 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16522 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16523
17b962bd
NC
165242013-05-16 Nick Clifton <nickc@redhat.com>
16525
16526 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16527 (rl78_is_naked_func): New function.
56aefbf7
UB
16528 (rl78_expand_prologue): Skip prologue generation for naked functions.
16529 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16530 * doc/extend.texi (naked): Add RL78 to the list of processors
16531 that supports this attribute.
16532
b1a0f84e
JL
165332013-05-16 Jeff Law <law@redhat.com>
16534
16535 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16536
af0e415b
UB
165372013-05-16 Uros Bizjak <ubizjak@gmail.com>
16538
16539 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16540 cache parameters using detect_caches_amd also for CYRIX,
16541 NSC and TM2 signatures.
16542
19db293a
UB
165432013-05-16 Uros Bizjak <ubizjak@gmail.com>
16544 Dzianis Kahanovich <mahatma@eu.by>
16545
16546 PR target/45359
16547 PR target/46396
16548 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16549 VIA/Centaur processors and determine their cache parameters
16550 using detect_caches_amd.
16551
251a41b9
TJ
165522013-05-16 Teresa Johnson <tejohnson@google.com>
16553
16554 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16555 (rtl_verify_edges): New function.
16556 (rtl_verify_bb_insns): Ditto.
16557 (rtl_verify_bb_pointers): Ditto.
16558 (rtl_verify_bb_insn_chain): Ditto.
16559 (rtl_verify_fallthru): Ditto.
16560 (rtl_verify_bb_layout): Ditto.
16561 (rtl_verify_flow_info_1): Outline checks into new functions.
16562 (rtl_verify_flow_info): Ditto.
16563
f14540b6
SE
165642013-05-16 Steve Ellcey <sellcey@imgtec.com>
16565
16566 * cfghooks.c (copy_bbs): Add update_dominance argument.
16567 * cfghooks.h (copy_bbs): Update prototype.
16568 * tree-cfg.c (gimple_duplicate_sese_region):
16569 Add update_dominance argument.
16570 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16571 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16572 gimple_duplicate_sese_region call.
16573 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16574 Update copy_bbs call.
16575 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16576 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16577
7e9a3abb
JJ
165782013-05-16 Jakub Jelinek <jakub@redhat.com>
16579
16580 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16581 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16582 vect_recog_rotate_pattern.
16583 (vect_recog_rotate_pattern): New function.
16584
427b248d
JM
165852013-05-16 Jason Merrill <jason@redhat.com>
16586
16587 * Makefile.in (LLINKER): New variable.
16588 (mostlyclean): Remove link mutex.
16589 * configure.ac: Handle --enable-link-mutex.
16590 * lock-and-run.sh: New script.
16591
b871e3d2
RR
165922013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16593
16594 PR target/19599
16595 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16596 for NULL decl.
16597
ce858126
RO
165982013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16599
16600 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16601
798d3d04
GY
166022013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16603
16604 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16605 * config/arm/arm.c (next_consecutive_mem): New function.
16606 (gen_movmem_ldrd_strd): Likewise.
16607 * config/arm/arm.md (movmemqi): Update condition and code.
16608 (unaligned_loaddi, unaligned_storedi): New patterns.
16609
0baddc45
RO
166102013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16611
16612 * config.gcc: Obsolete *-*-solaris2.9*.
16613 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16614
aa9d5bcf
RB
166152013-05-16 Richard Biener <rguenther@suse.de>
16616
16617 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16618 earlier, after GRAPHITE transforms and IV canonicalization.
16619
5a0f4dd3
JJ
166202013-05-16 Jakub Jelinek <jakub@redhat.com>
16621
16622 * omp-low.c (extract_omp_for_data): For collapsed loops,
16623 if at least one of the loops is known at compile time to
16624 iterate zero times, set count to 0.
16625 (expand_omp_regimplify_p): New function.
16626 (expand_omp_for_generic): For collapsed loops, if at least
16627 one of the loops isn't known to iterate at least once,
16628 add runtime check with setting count to 0.
16629 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16630 For unsigned types if it isn't known at compile time that
16631 the loop will iterate at least once, add runtime check to bypass
16632 the whole loop if initial condition isn't true.
16633
e3753785
NS
166342013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16635
16636 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16637
43bb4dd1
MG
166382013-05-16 Marc Glisse <marc.glisse@inria.fr>
16639
16640 PR middle-end/57286
16641 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16642 transformations to avoid an infinite loop.
16643
3571dde6
MP
166442013-05-16 Marek Polacek <polacek@redhat.com>
16645
16646 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16647
b8b3f0ca
LE
166482013-05-15 Leif Ekblad <leif@rdos.net>
16649
16650 * config/i386/i386.c (ix86_decompose_address): Use
16651 DEFAULT_TLS_SEG_REG to access TLS segment register.
16652 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16653 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16654 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16655
e299a383
RS
166562013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16657
16658 PR target/57260
16659 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16660 sibling calls to functions that would normally be lazily bound,
16661 unless $gp is call-clobbered.
16662
e7208ea3
UB
166632013-05-15 Uros Bizjak <ubizjak@gmail.com>
16664
19db293a 16665 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 16666 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
16667 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16668 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
16669 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16670 of TARGET_3DNOW.
16671 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16672
e7413f3d
AS
166732013-05-15 Andreas Schwab <schwab@suse.de>
16674
16675 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16676 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16677 third operand.
16678
ad4db775
TJ
166792013-05-15 Teresa Johnson <tejohnson@google.com>
16680
16681 * loop-unroll.c (report_unroll_peel): Check decision before
16682 emitting unroll/peel message.
16683
af205f67
TJ
166842013-05-15 Teresa Johnson <tejohnson@google.com>
16685
16686 * function.h (has_bb_partition): New rtl_data flag.
16687 (bb_reorder_complete): Ditto.
16688 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16689 instead of flag_reorder_blocks_and_partition.
16690 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16691 with some enhancements.
16692 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16693 * bb-reorder.c (connect_traces): Check for has_bb_partition
16694 instead of flag_reorder_blocks_and_partition.
16695 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16696 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16697 verify_hot_cold_block_grouping.
16698 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16699
9adcfa3c
RR
167002013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16701
16702 PR target/19599
16703 * config/arm/predicates.md (call_insn_operand): New predicate.
16704 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16705 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
16706 if insn is not a tail call.
16707 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
16708 registers.
16709 * config/arm/arm.h (enum reg_class): New caller save register class.
16710 (REG_CLASS_NAMES): Likewise.
16711 (REG_CLASS_CONTENTS): Likewise.
16712 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
16713 without decls.
16714
ccb3ad87
RB
167152013-05-15 Richard Biener <rguenther@suse.de>
16716
16717 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
16718 of MSG_OPTIMIZED_LOCATIONS.
16719 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
16720 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
16721 message.
16722 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
16723 of MSG_OPTIMIZED_LOCATIONS.
16724 (execute_vect_slp): Likewise.
16725 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
16726 (vect_create_cond_for_alias_checks): Likewise.
16727 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
16728 (vect_recog_widen_mult_pattern): Likewise.
16729 (vect_recog_widen_sum_pattern): Likewise.
16730 (vect_recog_over_widening_pattern): Likewise.
16731 (vect_recog_widen_shift_pattern): Likewise.
16732 (vect_recog_vector_vector_shift_pattern): Likewise.
16733 (vect_recog_divmod_pattern): Likewise.
16734 (vect_recog_mixed_size_cond_pattern): Likewise.
16735 (vect_recog_bool_pattern): Likewise.
16736 (vect_pattern_recog_1): Likewise.
16737
48b1474e
MJ
167382013-05-15 Martin Jambor <mjambor@suse.cz>
16739
16740 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
16741 non-functions to builtin_unreachable.
16742 * ipa-inline-transform.c (inline_call): Do not assert estimates were
16743 correct when new direct edges were discovered.
16744
9de04252
MJ
167452013-05-15 Martin Jambor <mjambor@suse.cz>
16746
16747 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
16748 header, print symbol order instead of node uid, print more information
16749 about indirect edge targets.
16750 (ipa_make_edge_direct_to_target): Print symbol order instead of node
16751 uids.
16752 (ipa_make_edge_direct_to_target): Likewise.
16753 (remove_described_reference): Likewise.
16754 (propagate_controlled_uses): Likewise.
16755 (ipa_print_node_params): Also print symbol order.
16756 (ipcp_transform_function): Print symbol order instead of node uids.
16757 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
16758 (cgraph_get_create_real_symbol_node): Likewise.
16759 * ipa-cp.c (print_lattice): Likewise.
16760 (print_all_lattices): Likewise.
16761 (determine_versionability): Likewise.
16762 (initialize_node_lattices): Likewise.
16763 (estimate_local_effects): Likewise.
16764 (update_profiling_info): Likewise.
16765 (create_specialized_node): Likewise.
16766 (perhaps_add_new_callers): Likewise.
16767 (decide_about_value): Likewise.
16768 (decide_whether_version_node): Likewise.
16769 (identify_dead_nodes): Likewise.
16770 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
16771 (dump_inline_summary): Likewise.
16772 (estimate_node_size_and_time): Likewise.
16773 (inline_analyze_function): Likewise.
16774 * ipa-inline.c (report_inline_failed_reason): Likewise.
16775 (want_early_inline_function_p): Likewise.
16776 (edge_badness): Likewise.
16777 (update_edge_key): Likewise.
16778 (inline_small_functions): Likewise. Add dumping of order to two other
16779 dumps.
16780 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
16781 instead of node uids.
16782 (propagate_pure_const): Likewise.
16783 (propagate_pure_const): Likewise.
16784 * ipa-utils.c (dump_cgraph_node_set): Likewise.
16785 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
16786 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
16787 of node uids.
16788 * tree-pretty-print.c (dump_function_header): Likewise.
16789 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
16790 Print symbol order instead of node uids.
16791
1dd03b91
AK
167922013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16793
16794 * config/s390/s390.c (s390_register_move_cost): Don't impose the
16795 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
16796
fdf6a7b9
RB
167972013-05-15 Richard Biener <rguenther@suse.de>
16798
16799 PR tree-optimization/57275
16800 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
16801 return value for fail to do runtime alias checks for gather loads.
16802
2d6e4603
JH
168032013-05-15 Jan Hubicka <jh@suse.cz>
16804
16805 PR lto/57038
16806 PR lto/47375
e7208ea3
UB
16807 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
16808 weakrefs are not external.
16809 (lto_symtab_merge_decls): Fix thinko when dealing with
16810 non-lto_symtab decls.
2d6e4603
JH
16811 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
16812 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
16813 * varpool.c (dump_varpool_node): Dump more flags.
16814
83f44b39
GG
168152013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16816
16817 * config/i386/i386.c (processor_alias_table): Add instruction
16818 FSGSBASE for AMD bdver3 architecture.
16819
2e55d062
JJ
168202013-05-14 Jakub Jelinek <jakub@redhat.com>
16821
16822 * tree.c (warn_deprecated_use): Print file:line using locus color.
16823 * diagnostic.c (diagnostic_report_current_module): Print file:line
16824 and file:line:column using locus color.
16825
0bfdb81e
MS
168262013-05-14 Mike Stump <mikestump@comcast.net>
16827
16828 * gdbinit.in: Add __null.
16829
a508ef22
MS
168302013-05-14 Mike Stump <mikestump@comcast.net>
16831
16832 * recog.h: Rename struct recog_data to Recog_data.
16833 * recog.c: Likewise.
16834 * reload.c (can_reload_into): Likewise.
16835 * config/picochip/picochip.c: Likewise.
16836
e7180acb
MS
168372013-05-14 Mike Stump <mikestump@comcast.net>
16838
16839 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
16840
61216c26
SB
168412013-05-14 Steven Bosscher <steven@gcc.gnu.org>
16842
fd6beed4
SB
16843 * resource.h (struct resources): Remove unch_memory member.
16844 (CLEAR_RESOURCE): Don't clear unch_memory.
16845 * resource.c (mark_referenced_resources): Don't set it.
16846 (mark_set_resources): Likewise.
16847 (mark_target_live_regs): Don't clear it.
16848 (init_resource_info): Likewise.
16849 * reorg.c (resource_conflicts_p): Don't compare it.
16850 (redundant_insn): Don't set it.
16851
61216c26
SB
16852 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
16853 Remove prototypes.
16854 * emit-rtl.c (next_label): Remove unused function.
16855 (skip_consecutive_labels, link_cc0_insns): Move to ...
16856 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
16857 only place where these functions are used, and make them static.
16858
418d1b87
MG
168592013-05-14 Marc Glisse <marc.glisse@inria.fr>
16860
16861 * fold-const.c (fold_negate_expr): Handle vectors.
16862 (fold_truth_not_expr): Make it static.
16863 (fold_invert_truthvalue): New static function.
16864 (invert_truthvalue_loc): Handle vectors. Do not call
16865 fold_truth_not_expr directly.
16866 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
16867 <TRUTH_NOT_EXPR>: Do not cast to boolean.
16868 (fold_comparison): Handle vector constants.
16869 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
16870 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
16871 * tree.h (fold_truth_not_expr): Remove declaration.
16872
fc21784d
JG
168732013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
16874
16875 * config/aarch64/aarch64-simd.md
16876 (aarch64_vcond_internal<mode>): Rename to...
16877 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
16878 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
16879 float modes. Clarify all iterator modes.
16880 (vcond<mode><mode>): Use new name for vcond expanders.
16881 (vcond<v_cmp_result><mode>): Likewise.
16882 (vcondu<mode><mode>: Likewise.
16883 * config/aarch64/iterators.md (VDQF_COND): New.
16884
d4c52634
MG
168852013-05-14 Marc Glisse <marc.glisse@inria.fr>
16886
16887 PR bootstrap/57266
16888 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
16889 variable for the shift amount. Check that we shift by non-negative
16890 amounts.
16891
2b261262
CLT
168922013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
16893
16894 PR target/42017
16895 * config/arm/arm.h (EPILOGUE_USES): Only return true
16896 for LR_REGNUM after epilogue_completed.
16897
12211b99 168982013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
16899
16900 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 16901 is error_mark_node.
6e022d7b 16902
56cf7859
RO
169032013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16904
16905 PR target/57261
16906 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
16907 and Solaris 11+/x86 with gld.
16908 * configure: Regenerate.
16909
75776c6d
JJ
169102013-05-14 Jakub Jelinek <jakub@redhat.com>
16911
16912 * expmed.c (expand_shift_1): Canonicalize rotates by
16913 constant bitsize / 2 to bitsize - 1.
7f998021 16914 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
16915 case ROTATERT>: Likewise.
16916
16917 Revert:
16918 2013-05-10 Jakub Jelinek <jakub@redhat.com>
16919
16920 * config/i386/i386.md (rotateinv): New code attr.
16921 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16922 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16923 roll $31, %eax, etc.
16924
df35498a
RB
169252013-05-14 Richard Biener <rguenther@suse.de>
16926
16927 PR middle-end/57235
16928 * tree-eh.c (sink_clobbers): Give up for successors with
16929 multiple predecessors and no virtual uses.
16930
cc6e7ece
EB
169312013-05-14 Eric Botcazou <ebotcazou@adacore.com>
16932
16933 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
16934 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
16935
f778dd4d
JJ
169362013-05-14 Jakub Jelinek <jakub@redhat.com>
16937
16938 PR middle-end/57251
16939 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
16940 the case when both op0 and op1 have VOIDmode.
16941
bad4df9b
KP
169422013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16943
16944 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
16945 in multiply-accumulate mode.
16946
56f3e9ac
GW
169472013-05-13 Guozhi Wei <carrot@google.com>
16948
16949 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
16950
a3d7ab92
KT
169512013-05-13 Kai Tietz <ktietz@redhat.com>
16952
16953 PR target/56975
16954 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 16955 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 16956 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 16957 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
16958 (ix86_expand_prologue): Likewise.
16959 (ix86_expand_split_stack_prologue): Likewise.
16960 (legitimate_pic_address_disp_p): Likewise.
16961 (legitimize_pic_address): Likewise.
16962 (legitimize_tls_address): Likewise.
16963 (legitimize_pe_coff_symbol): Likewise.
16964 (output_pic_addr_const): Likewise.
16965 (construct_plt_address): Likewise.
16966 (ix86_expand_call): Likewise.
16967 (x86_output_mi_thunk): Likewise.
16968 (x86_function_profiler): Likewise.
16969
c59b7e28
SN
169702013-05-13 Sofiane Naci <sofiane.naci@arm.com>
16971
16972 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
16973 similar switch cases.
16974 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
16975 (aarch64_simd_mov_to_<mode>low): Delete.
16976 (aarch64_simd_mov_to_<mode>high): Delete.
16977 (move_lo_quad_<mode>): Add w<-r alternative.
16978 (aarch64_simd_move_hi_quad_<mode>): Likewise.
16979 (aarch64_simd_mov_from_*): Update type attribute.
16980 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
16981 statement.
16982
5f28524a
JH
169832013-05-13 Jan Hubicka <jh@suse.cz>
16984
16985 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
16986 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
16987 ix86_expand_epilogue, emit_i387_cw_initialization,
16988 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
16989 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 16990
ae6fa899
JJ
169912013-05-13 Jakub Jelinek <jakub@redhat.com>
16992
16993 PR tree-optimization/45216
16994 PR tree-optimization/57157
16995 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
16996 the (-Y) & (B - 1) variant if OP is |.
16997 * expmed.c (expand_shift_1): For rotations by const0_rtx just
16998 return shifted. Use (-op1) & (prec - 1) as other_amount
16999 instead of prec - op1.
17000
4502fe8d
MJ
170012013-05-13 Martin Jambor <mjambor@suse.cz>
17002
17003 PR middle-end/42371
17004 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17005 (ipa_constant_data): New type.
17006 (ipa_jump_func): Use ipa_constant_data to hold information about
17007 constant jump functions.
17008 (ipa_get_jf_constant): Adjust to jump function type changes.
17009 (ipa_get_jf_constant_rdesc): New function.
17010 (ipa_param_descriptor): New field controlled_uses.
17011 (ipa_get_controlled_uses): New function.
17012 (ipa_set_controlled_uses): Likewise.
17013 * ipa-ref.h (ipa_find_reference): Declare.
17014 * ipa-prop.c (ipa_cst_ref_desc): New type.
17015 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17016 changes.
17017 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17018 New parameter cs. Adjust all callers.
17019 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17020 (remove_described_reference): New function.
17021 (jfunc_rdesc_usable): Likewise.
17022 (try_make_edge_direct_simple_call): Decrement controlled use count,
17023 attempt to remove reference if it hits zero.
17024 (combine_controlled_uses_counters): New function.
17025 (propagate_controlled_uses): Likewise.
17026 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17027 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17028 (ipa_print_node_params): Print described use counter.
17029 (ipa_write_jump_function): Adjust to jump function type changes.
17030 (ipa_read_jump_function): New parameter CS, pass it to
17031 ipa_set_jf_constant. Adjust caller.
17032 (ipa_write_node_info): Stream controlled use count
17033 (ipa_read_node_info): Likewise.
17034 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17035 asserting.
17036 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17037 count. Remove cloning-added reference if it reaches zero.
17038 * ipa-ref.c (ipa_find_reference): New function.
17039
0864bfc2
GG
170402013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17041
e7208ea3 17042 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17043 alignment values for AMD BD and BT architectures.
17044
640bfeb2
MG
170452013-05-13 Marc Glisse <marc.glisse@inria.fr>
17046
17047 * tree-vect-generic.c (uniform_vector_p): Move ...
17048 * tree.c (uniform_vector_p): ... here.
17049 * tree.h (uniform_vector_p): Declare it.
17050 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17051 into a scalar.
17052
3a60f32b
JJ
170532013-05-13 Jakub Jelinek <jakub@redhat.com>
17054
198fe1bf
JJ
17055 PR tree-optimization/57230
17056 * tree-ssa-strlen.c (handle_char_store): Record length for
17057 array store from STRING_CST.
17058
3a60f32b
JJ
17059 PR tree-optimization/57230
17060 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17061 check.
17062
566be57c
JR
170632013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17064
17065 * config/epiphany/epiphany.c (epiphany_init): Check size of
17066 NUM_MODES_FOR_MODE_SWITCHING.
17067 (epiphany_expand_prologue):
17068 Remove CONFIG_REGNUM initial value handling code.
17069 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17070 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17071 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17072 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17073 Don't return 1 for FP_MODE_NONE.
17074 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17075 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17076 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17077 * config/epiphany/epiphany.md (save_config): New pattern.
17078
0f2c2331
UB
170792013-05-12 Uros Bizjak <ubizjak@gmail.com>
17080
17081 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17082
5b3f93c7
UB
170832013-05-10 Uros Bizjak <ubizjak@gmail.com>
17084
17085 * config/i386/i386.md (memory): Handle sseishft1.
17086 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17087 (*vec_extractv2di_1): Ditto.
17088
1f873f0e
VM
170892013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17090
17091 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17092 saved registers.
17093
341427fa 170942013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17095
17096 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17097 Add mthumb/march=armv7-a multilib.
17098 Add mthumb/march=armv7-r multilib.
17099 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17100
9e69bdde
RC
171012013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17102
17103 * config/v850/t-rtems: Add more multilibs.
17104
9ff09a22
RB
171052013-05-10 Richard Biener <rguenther@suse.de>
17106
17107 PR tree-optimization/57214
17108 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17109 not propagate from SSA names that occur in abnormal PHI nodes.
17110
a5e0cd1d
MG
171112013-05-10 Marc Glisse <marc.glisse@inria.fr>
17112
17113 * stor-layout.c (element_precision): New function.
17114 * machmode.h (element_precision): Declare it.
17115 * tree.c (build_minus_one_cst): New function.
17116 (element_precision): Likewise.
17117 * tree.h (build_minus_one_cst): Declare new function.
17118 (element_precision): Likewise.
17119 * fold-const.c (operand_equal_p): Use element_precision.
17120 (fold_binary_loc): Handle vector types.
17121 * convert.c (convert_to_integer): Use element_precision.
17122 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17123 separately.
17124
cb2558bc
RS
171252013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17126
17127 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17128 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17129 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17130 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17131 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17132 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17133 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17134 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17135 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17136 (Uuw8): New constraints.
17137 (Usb4): Move into alphabetical order.
17138 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17139 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17140 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17141 previously unnamed patterns.
17142 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17143 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17144 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17145 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17146 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17147 of specific lengths.
17148
cb3b8d33
JJ
171492013-05-10 Jakub Jelinek <jakub@redhat.com>
17150
6f93c008
JJ
17151 * config/i386/i386.md (rotateinv): New code attr.
17152 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17153 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17154 roll $31, %eax, etc.
17155
cb3b8d33
JJ
17156 PR tree-optimization/45216
17157 PR tree-optimization/57157
17158 * tree-ssa-forwprop.c (simplify_rotate): New function.
17159 (ssa_forward_propagate_and_combine): Call it.
17160
afb119be
RB
171612013-05-10 Richard Biener <rguenther@suse.de>
17162
17163 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17164 disable peeling when we version for aliasing.
17165 (vector_alignment_reachable_p): Honor explicit user alignment.
17166 (vect_supportable_dr_alignment): Likewise.
17167 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17168 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17169 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17170 then peeling to arrange for the cost-model check to come first.
17171
01ae4861
AM
171722013-05-10 Alan Modra <amodra@gmail.com>
17173
17174 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17175 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17176 * configure: Regenerate.
17177
ebc9a431
AM
171782013-05-10 Alan Modra <amodra@gmail.com>
17179
17180 PR target/55033
17181 * varasm.c (default_elf_select_section): Move !DECL_P check..
17182 (get_named_section): ..to here before calling get_section_name.
17183 Adjust assertion.
17184 (default_section_type_flags): Add DECL_P check.
17185 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17186 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17187
d4bca93c
JR
171882013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17189
17190 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17191 When using gen_stack_adjust_str with a register offset, add a
17192 REG_FRAME_RELATED_EXPR note.
17193
60ca9a65
UB
171942013-05-09 Uros Bizjak <ubizjak@gmail.com>
17195
17196 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17197 (*vec_extractv4si_zext_mem): Ditto.
17198 (*vec_extractv2di): Add 0->x and x->x alternatives.
17199 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17200 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17201
a3409c02
JM
172022013-05-09 Jason Merrill <jason@redhat.com>
17203
0138d6b2
JM
17204 N3639 C++1y VLA support
17205 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17206 DECL_VALUE_EXPR.
17207
a3409c02
JM
17208 * tree.c (build_constructor_va): New.
17209 * tree.h: Declare it.
17210
66e6b990
MJ
172112013-05-09 Martin Jambor <mjambor@suse.cz>
17212
17213 PR lto/57084
17214 * gimple-fold.c (canonicalize_constructor_val): Call
17215 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17216
64cfa6c0
JH
172172013-05-09 Jan Hubicka <jh@suse.cz>
17218 Richard Biener <rguenther@suse.de>
17219
17220 PR lto/54095
17221 * symtab.c (symtab_make_decl_local): Do not add private names.
17222
c3167b00
JH
172232013-05-09 Jan Hubicka <jh@suse.cz>
17224
17225 PR lto/54095
17226 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17227 (unlink_from_assembler_name_hash): Likewise.
17228 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17229 symtab_unregister_node, symtab_initialize_asm_name_hash,
17230 change_decl_assembler_name): Update.
17231
12dc6974
SN
172322013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17233
17234 * config/aarch64/aarch64.md: New movtf split.
17235 (*movtf_aarch64): Update.
17236 (aarch64_movdi_tilow): Handle TF modes and rename to
17237 aarch64_movdi_<mode>low.
17238 (aarch64_movdi_tihigh): Handle TF modes and rename to
17239 aarch64_movdi_<mode>high
17240 (aarch64_movtihigh_di): Handle TF modes and rename to
17241 aarch64_mov<mode>high_di
17242 (aarch64_movtilow_di): Handle TF modes and rename to
17243 aarch64_mov<mode>low_di
17244 (aarch64_movtilow_tilow): Remove spurious whitespace.
17245 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17246 splits.
17247 (aarch64_print_operand): Update.
17248
227eb343
AM
172492013-05-09 Alan Modra <amodra@gmail.com>
17250
17251 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17252 powerpc64le.
17253 * configure: Regenerate.
17254
0b013847
UB
172552013-05-08 Uros Bizjak <ubizjak@gmail.com>
17256
17257 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17258 splitter preparation statements.
17259 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17260 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17261 adjust_address_nv.
17262
1dc3d6e9
BS
172632013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17264
17265 * gimple-ssa-strength-reduction.c (count_candidates): Change
17266 return value to int.
17267 (analyze_candidates_and_replace): Change type of length to int.
17268
e61e7d28
UB
172692013-05-08 Uros Bizjak <ubizjak@gmail.com>
17270
17271 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17272 (*vec_extract<mode>): Use VI12_128 mode iterator.
17273 (*vec_extract<mode>_mem): Ditto.
17274 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17275 attribute.
17276
4fbfcf44
DN
172772013-05-08 Diego Novillo <dnovillo@google.com>
17278
17279 PR bootstrap/54659
17280
17281 Revert:
4fbfcf44
DN
17282 2012-08-17 Diego Novillo <dnovillo@google.com>
17283
e61e7d28
UB
17284 PR bootstrap/54281
17285 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17286 * config.in: Regenerate.
17287 * configure: Regenerate.
17288 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17289
702d8703
JH
172902013-05-08 Jan Hubicka <jh@suse.cz>
17291
17292 PR lto/54095
17293 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17294 * cgraph.h (symtab_node_base): Add unique_name.
17295 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17296 input_overwrite_node, input_varpool_node): Stream unique_name.
17297 * cgraphclones.c (cgraph_create_virtual_clone,
17298 cgraph_function_versioning): Set unique_name.
17299 * ipa.c (function_and_variable_visibility): Set unique_name.
17300
8b28cf47
BS
173012013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17302
17303 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17304 (alloc_cand_and_find_basis): Restrict conditional candidate
17305 processing to CAND_MULTs.
17306
e86074fd
JH
173072013-05-08 Jan Hubicka <jh@suse.cz>
17308
17309 PR lto/54095
17310 lto-symtab.c (lto_symtab_symbol_p): New function.
17311 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17312 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17313 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17314 Skip static symbols.
17315
44398cbe
PC
173162013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17317
17318 PR tree-optimization/57200
17319 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17320 Only call inform if the preceding warning_at returns true.
17321
f6bc1c4a
HS
173222013-05-07 Han Shen <shenhan@google.com>
17323
17324 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17325 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17326 * common.opt (fstack-protector-strong): New option.
17327 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17328 * doc/invoke.texi (Optimization Options): Document
17329 "-fstack-protector-strong".
17330 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17331
4ffecb1f
SB
173322013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17333
17334 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17335
5a107a0f
VM
173362013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17337
17338 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17339 it is not lhs of the insn.
17340 (setup_reg_equiv): Remove insn having equiv memory which it is not
17341 lhs of the insn.
17342 * lra-constraints.c (process_address): Try to improve generation
17343 code for address base + disp.
17344 (lra_constraints): Make correct the code for checking insn setting
17345 up backward equivalence. Remove insn only if it is in the init
17346 insn list.
17347 * lra-eliminations.c (update_reg_eliminate): Change return value.
17348 (lra_eliminate): Use the result.
17349
3f5783ea
UB
173502013-05-07 Uros Bizjak <ubizjak@gmail.com>
17351
17352 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17353 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17354 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17355 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17356 register target operands.
17357 (*vec_extractv8hi_sse2): New pattern.
17358 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17359 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17360 (*vec_extract<mode>_mem): New insn and split pattern.
17361
8a5800b8
CL
173622013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17363
17364 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17365 (TARGET_ASAN_SHADOW_OFFSET): Define.
17366 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17367 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17368
7bf55a70
BS
173692013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17370
17371 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17372 (incr_vec_index): Return -1 if increment not found.
17373 (create_add_on_incoming_edge): Assert if increment not found.
17374 (record_increment): Limit number of increments recorded.
17375 (all_phi_incrs_profitable): Return false if an increment not found.
17376 (replace_profitable_candidates): Don't process increments that were
17377 not recorded.
17378 (analyze_candidates_and_replace): Limit size of incr_vec.
17379
3f8825c0
RB
173802013-05-07 Richard Biener <rguenther@suse.de>
17381
17382 * calls.c (special_function_p): setjmp-like functions are leaf.
17383 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17384 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17385
fd4842cd
SN
173862013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17387
17388 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17389 (aarch64_simd_mov<mode>): New expander.
17390 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17391 (aarch64_simd_mov_to_<mode>high): Likewise.
17392 (aarch64_simd_mov_from_<mode>low): Likewise.
17393 (aarch64_simd_mov_from_<mode>high): Likewise.
17394 (aarch64_dup_lane<mode>): Update.
17395 (aarch64_dup_lanedi): New instruction pattern.
17396 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17397 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17398
a7a7d10e
BS
173992013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17400
17401 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17402 (replace_mult_candidate): Remove unnecessary argument; remove
17403 unnecessary parameter from call to introduce_cast_before_cand.
17404 (replace_unconditional_candidate): Remove unnecessary parameter
17405 from call to replace_mult_candidate.
17406 (replace_conditional_candidate): Likewise.
17407 (insert_initializers): Use make_temp_ssa_name.
17408 (introduce_cast_before_cand): Remove unnecessary argument; use
17409 make_temp_ssa_name.
17410 (replace_one_candidate): Remove unnecessary argument; remove
17411 unnecessary parameter from calls to introduce_cast_before_cand.
17412 (replace_profitable_candidates): Remove unnecessary parameters
17413 from calls to replace_one_candidate.
17414
29105868
BS
174152013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17416
17417 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17418 phi def as possibly hiding a basis for a CAND_ADD whose operands
17419 have been commuted in the analysis.
17420 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17421
4095f9fa
N
174222013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17423
17424 * config/aarch64/aarch64.md
17425 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17426 shift value between 0-4.
17427
39e843e8
RB
174282013-05-07 Richard Biener <rguenther@suse.de>
17429
17430 * double-int.h (rshift): New overload.
17431 * double-int.c (rshift): New function.
17432 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17433 (create_reference_ops_from_ref): Remove.
17434 (vn_reference_insert): Use shared ops for constructing the
17435 reference and copy it.
17436
0a1a83cb
RB
174372013-05-07 Richard Biener <rguenther@suse.de>
17438
17439 PR middle-end/57190
17440 * tree-eh.c (sink_clobbers): Properly propagate
17441 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17442
43303d6f
JJ
174432013-05-07 Jakub Jelinek <jakub@redhat.com>
17444
ba7e83f8
JJ
17445 PR tree-optimization/57149
17446 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17447 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17448 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17449 uninit_undefined_value_p instead of ssa_undefined_value_p.
17450
43303d6f
JJ
17451 PR debug/57184
17452 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17453 for modifier == EXPAND_INITIALIZER.
17454
14523c25
AB
174552013-05-07 Anton Blanchard <anton@samba.org>
17456
17457 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17458 for powerpc64 little endian.
17459 * configure: Regenerate.
17460
cb7c8be9
GS
174612013-05-06 Graham Stott <grahams@btinternet.com>
17462
17463 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17464 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17465 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17466 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17467
174682013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17469
17470 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17471 codes which allow non-lvalues.
17472
9a0ee7b0
MG
174732013-05-06 Marc Glisse <marc.glisse@inria.fr>
17474
17475 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17476 components are all 1s.
17477 (integer_minus_onep): New function.
17478 * tree.h (integer_minus_onep): Declare it.
17479 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17480 integer_minus_onep instead of integer_all_onesp.
17481
f2c17ea9
OE
174822013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17483
17484 PR target/52933
17485 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17486 variations of these patterns.
17487
f75e6a51
UB
174882013-05-06 Uros Bizjak <ubizjak@gmail.com>
17489
17490 * config/i386/i386.md (isa): Add x64_sse4 member.
17491 (enabled): Handle x64_sse4.
17492 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17493 instruction for 64bit SSE4_1 targets. Update insn attributes.
17494 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17495 instruction for SSE4_1 targets. Update insn attributes.
17496 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17497 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17498 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17499 const_1 selector.
17500 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17501 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17502 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17503
a986d468
OE
175042013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17505
17506 PR target/57108
17507 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17508
382522cb
MK
175092013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17510
17511 * final.c (do_assembler_dialects): Don't handle curly braces and
17512 vertical bar escaped by % as dialect delimiters.
17513 (output_asm_insn): Print curly braces and vertical bar if escaped
17514 by % and ASSEMBLER_DIALECT defined.
17515 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17516 * doc/tm.texi: Regenerated.
17517
fb0d5c60
SB
175182013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17519
fb0d5c60
SB
17520 * config/mips/mips.c: Include tree-pass.h.
17521 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17522 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17523 (pass_mips_machine_reorg2): New machine specific pass.
17524 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17525 (mips_option_override): Register the new pass.
17526 * rtl.h (cleanup_barriers): Remove prototype.
17527 (dbr_schedule): Likewise.
17528 * jump.c (cleanup_barriers): Make static.
17529 * reorg.c (dbr_schedule): Likewise.
17530
aa06a978
RB
175312013-05-06 Richard Biener <rguenther@suse.de>
17532
17533 PR tree-optimization/57185
17534 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17535 SSA names properly.
17536
0b953bec
UB
175372013-05-06 Uros Bizjak <ubizjak@gmail.com>
17538
17539 PR target/57106
17540 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17541 between "first_arg" and "insn", not "last" and "insn".
17542
28708525
WS
175432013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17544
17545 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17546 (find_candidates_in_block): Re-enable slsr_process_phi.
17547 (create_phi_basis): Fix double counting of candidate adjustment.
17548
0107dca2
RB
175492013-05-06 Richard Biener <rguenther@suse.de>
17550
17551 PR middle-end/57147
17552 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17553 the edge is also fallthru, preserve it and just clear the
17554 abnormal flag.
17555 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17556 also complex, preserve that and just clear the fallthru flag.
17557 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17558 update virtual operands.
17559
470d4d13
AM
175602013-05-06 Alan Modra <amodra@gmail.com>
17561
17562 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17563 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17564 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17565 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17566 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17567 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17568
8f1dbf8d
AM
175692013-05-06 Alan Modra <amodra@gmail.com>
17570
17571 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17572 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17573 (DEFAULT_ASM_ENDIAN): Define.
17574 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17575 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17576 Update -K PIC clause from sysv4.h.
17577 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17578 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17579
54890767
AM
175802013-05-06 Alan Modra <amodra@gmail.com>
17581
17582 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17583 twice for little-endian.
17584 (ashrdi3_no_power, ashrdi3): Support little-endian.
17585
2353515d
OE
175862013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17587
17588 PR target/55303
17589 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17590 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17591 related expanders.
17592 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17593 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17594 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17595 New predicates.
17596
33e67557
SB
175972013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17598 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17599
17600 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17601 * config/pa/pa.opt: Make mbig-switch a no-op.
17602 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17603 (CASE_VECTOR_MODE): Always return SImode.
17604 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17605 for the !TARGET_BIG_SWITCH case.
17606 * config/pa/pa-linux.h: Likewise.
17607 * config/pa/pa-openbsd.h: Likewise.
17608 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17609 * config/pa/pa.md (short_jump): Remove define_insn.
17610 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17611 (casesi0): Remove define_insn.
17612 (type): Remove btable_branch.
17613 (pa_combine_type): Likewise.
17614 (in_nullified_branch_delay): Likewise.
17615 (in_call_delay): Likewise.
17616 (define_delay): Likewise.
17617 (define_insn_reservation "Z3"): Likewise.
17618 (define_insn_reservation "Z4"): Likewise.
17619 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17620 (pa_adjust_insn_length): Remove adjustment for btable branches.
17621 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17622 and mno-big-switch
17623
3095685e
UB
176242013-05-05 Uros Bizjak <ubizjak@gmail.com>
17625
17626 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17627 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17628 Add m->r,x alternatives.
17629 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17630 splitters using SWI48x mode iterator.
17631 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17632 TARGET_64BIT. Add m->x alternative.
17633 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17634 Add o->x alternative. Enable for TARGET_SSE.
17635 (sse_storeq): Remove expander.
17636 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17637 with memory input operand.
17638 (*vec_extractv2di_1 splitter): New.
17639 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17640 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17641
4b36ae28
SB
176422013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17643
17644 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17645 (INT_LOWPART): Delete.
17646 (extract_MB): Adjust.
17647 (extract_ME): Adjust.
17648 (print_operand): Adjust.
17649
da226db2
SB
176502013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17651
17652 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17653 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17654 (reg_or_logical_cint_operand, easy_fp_constant,
17655 logical_const_operand): Delete "CONST_DOUBLE" case.
17656 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17657 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 17658 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
17659 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17660 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17661 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17662 test.
17663 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17664 CONST_DOUBLE DImode/VOIDmode case.
17665 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17666 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17667 CONST_DOUBLE VOIDmode case.
17668 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17669 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17670 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17671 Delete CONST_DOUBLE case.
17672 (splitters for mov FMOVE64 const_double): Delete
17673 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17674 "HOST_BITS_PER_WIDE_INT >= 64" test.
17675 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17676 case.
17677 (mov DI const_double): Delete.
17678
40de22d6
JJ
176792013-05-04 Jakub Jelinek <jakub@redhat.com>
17680
17681 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17682 on op shows all bits zero in mode of a lowpart subreg, return zero.
17683
5ec6aff2
MM
176842013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17685
17686 PR target/57150
17687 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17688 to save TFmode registers and DImode to save TImode registers for
17689 caller save operations.
17690 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17691 mark being partially clobbered since they only use the first
17692 double word.
17693
17694 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17695 and TDmode only use the upper 64-bits of each VSX register.
17696
2cefad90
BS
176972013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17698
17699 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17700 (find_candidates_in_block): Disable slsr_process_phi.
17701
d6d7eee1
GW
177022013-05-03 Guozhi Wei <carrot@google.com>
17703
17704 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
17705 constructor to ...
17706 (build_init_ctor): ... here.
d6d7eee1 17707
9b92d12b
BS
177082013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17709
17710 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
17711 (slsr_cand_d): Redefine def_phi.
17712 (stride_status, phi_adjust_status, count_phis_status): New enums.
17713 (find_phi_def): New.
17714 (find_basis_for_base_expr): New.
17715 (find_basis_for_candidate): Handle hidden bases.
17716 (alloc_cand_and_find_basis): Handle phi candidates.
17717 (slsr_process_phi): New.
17718 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
17719 (create_mul_imm_cand): Likewise.
17720 (create_add_ssa_cand): Exclude phi base candidates.
17721 (create_add_imm_cand): Likewise.
17722 (slsr_process_cast): Likewise.
17723 (slsr_process_copy): Likewise.
17724 (find_candidates_in_block): Handle phi candidates.
17725 (dump_candidate): Likewise.
17726 (unconditional_cands): Delete.
17727 (unconditional_cands_with_known_stride_p): Delete.
17728 (phi_dependent_cand_p): New.
17729 (cand_increment): Handle phi-dependent candidates.
17730 (replace_dependent): Delete.
17731 (replace_mult_candidate): New.
17732 (replace_unconditional_candidate): New.
17733 (incr_vec_index): Move to avoid forward reference.
17734 (create_add_on_incoming_edge): New.
17735 (create_phi_basis): New.
17736 (replace_dependents): Delete.
17737 (replace_conditional_candidate): New.
17738 (phi_add_costs): New.
17739 (replace_uncond_cands_and_profitable_phis): New.
17740 (record_increment): Handle phi adjustments.
17741 (record_phi_increments): New.
17742 (record_increments): Handle phi adjustments.
17743 (phi_incr_cost): New.
17744 (lowest_cost_path): Handle phis.
17745 (total_savings): Likewise.
17746 (analyze_increments): Likewise.
17747 (ncd_with_phi): New.
17748 (ncd_of_cand_and_phis): New.
17749 (nearest_common_dominator_for_cands): Handle phi increments.
17750 (all_phi_incrs_profitable): New.
17751 (replace_profitable_candidates): Handle phi-dependent candidates.
17752 (analyze_candidates_and_replace): Likewise.
17753
68f073d4
TJ
177542013-05-03 Teresa Johnson <tejohnson@google.com>
17755
17756 PR bootstrap/57154
17757 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
17758 do not exceed REG_BR_PROB_BASE.
17759
a4ee7cb9
JL
177602013-05-03 Jeff Law <law@redhat.com>
17761
ade67f70 17762 PR tree-optimization/57144
a4ee7cb9
JL
17763 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
17764 operand of the condition will bit into the new type when eliminating
17765 a cast feeding a condition.
17766
47954c4e
JJ
177672013-05-03 Jakub Jelinek <jakub@redhat.com>
17768
17769 PR rtl-optimization/57130
3095685e
UB
17770 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
17771 of COMPARE as in_code to the recursive call if needed.
47954c4e 17772
3c21604f
UB
177732013-05-03 Uros Bizjak <ubizjak@gmail.com>
17774
17775 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
17776 (enabled): Handle new members.
17777 * config/i386/sse.md (*vec_concatv2si): Merge from
17778 *vec_concatv2si_sse2 and vec_concatv2si_sse.
17779 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
17780
12211b99 177812013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
17782
17783 PR tree-optimization/57027
17784 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
17785 for fnms opportunity, check we got the prerequisite kind
17786 of tree / gimple before using accessor functions.
17787
07bfc9ec
RB
177882013-05-03 Richard Biener <rguenther@suse.de>
17789
17790 * double-int.h (lshift): New overload without precision
17791 and arith argument.
17792 (operator *=, operator +=, operator -=): Move ...
17793 * double-int.c (operator *=, operator +=, operator -=): ... here
17794 and implement more efficiently.
17795 (mul_double_with_sign): Remove.
17796 (lshift_double): Adjust to take unsinged shift argument, push
17797 dispatching code to callers.
17798 (mul_double_wide_with_sign): Add early out for callers that
17799 are not interested in high parts or overflow.
17800 (lshift): New function.
17801 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
17802 dispatch code here.
17803 (lrotate, rrotate): Use logical shifts.
17804 * expr.c (get_inner_reference): Use lshift.
17805 * fixed-value.c (do_fixed_divide): Likewise.
17806 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17807 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17808 (indirect_refs_may_alias_p): Likewise.
17809 (stmt_kills_ref_p_1): Likewise.
17810
7769bb64
VP
178112013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17812
17813 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
17814
1d0c8e5c
VP
178152013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17816
17817 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
17818 scalar form of FABD instruction.
17819
f15feaf9
VM
178202013-05-02 Vladimir Makarov <vmakarov@redhat.com>
17821
17822 * lra-constraints.c (process_alt_operands): Add checking alt
17823 number to choose the best alternative.
17824
d90e76d4
RB
178252013-05-02 Richard Biener <rguenther@suse.de>
17826
17827 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
17828 bitmap and its handling.
17829 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
17830
9f8e7a96
RB
178312013-05-02 Richard Biener <rguenther@suse.de>
17832
17833 PR middle-end/57140
17834 * tree-inline.c (copy_loops): Properly handle removed loops.
17835 (copy_cfg_body): Mark destination loops for fixup if source
17836 loops needed fixup.
17837
f3a81b39
GY
178382013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
17839
17840 PR target/56732
17841 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
17842 generating simple_return for naked functions.
17843
7b920a9a
MJ
178442013-05-02 Martin Jambor <mjambor@suse.cz>
17845
17846 PR middle-end/56988
17847 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
17848 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
17849 flags match.
17850 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
17851 ipa_agg_replacement_value structures.
17852 (known_aggs_to_agg_replacement_list): Likewise.
17853 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
17854 (read_agg_replacement_chain): Likewise.
17855 (ipcp_transform_function): Also check that by_ref flags match.
17856
2c41c19d
RB
178572013-05-02 Richard Biener <rguenther@suse.de>
17858
17859 * graphds.h (struct graph): Add obstack member.
17860 * graphds.c (new_graph): Initialize obstack and allocate
17861 vertices from it.
17862 (add_edge): Allocate edge from the obstack.
3c21604f 17863 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 17864
8b47039c
TJ
178652013-05-02 Teresa Johnson <tejohnson@google.com>
17866
17867 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
17868 divides.
17869 * cfg.c (update_bb_profile_for_threading): Ditto.
17870 * tree-inline.c (copy_bb): Ditto.
17871 (copy_edges_for_bb): Ditto.
17872 (initialize_cfun): Ditto.
17873 (copy_cfg_body): Ditto.
17874 (expand_call_inline): Ditto.
17875 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
17876 (estimate_node_size_and_time): Ditto.
17877 (inline_merge_summary): Ditto.
17878 * cgraphclones.c (cgraph_clone_edge): Ditto.
17879 (cgraph_clone_node): Ditto.
17880 * sched-rgn.c (compute_dom_prob_ps): Ditto.
17881 (compute_trg_info): Ditto.
17882
da65928c
IB
178832013-05-02 Ian Bolton <ian.bolton@arm.com>
17884
17885 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
17886 S reg when fp attribute set.
17887 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
17888
add3c965
IB
178892013-05-02 Ian Bolton <ian.bolton@arm.com>
17890
17891 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
17892 New pattern.
17893 (*and_one_cmplsi3_compare0_uxtw): Likewise.
17894 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
17895 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17896
fdd43ac4
RB
178972013-05-02 Richard Biener <rguenther@suse.de>
17898
17899 * tree-scalar-evolution.c (scev_info_hasher): Remove.
17900 (struct instantiate_cache_entry): New type.
17901 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
17902 (struct instantiate_cache_type): New type.
17903 (set_instantiated_value, get_instantiated_value): Remove.
17904 (get_instantiated_value_entry): New function.
17905 (instantiate_scev_name): Use the new cache and adjust.
17906 (instantiate_scev_poly): Adjust.
17907 (instantiate_scev_binary): Likewise.
17908 (instantiate_array_ref): Likewise.
17909 (instantiate_scev_convert): Likewise.
17910 (instantiate_scev_not): Likewise.
17911 (instantiate_scev_3): Likewise.
17912 (instantiate_scev_2): Likewise.
17913 (instantiate_scev_r): Likewise.
17914 (instantiate_scev): Likewise.
17915 (resolve_mixers): Likewise.
17916
36ff9dfb
VM
179172013-05-01 Vladimir Makarov <vmakarov@redhat.com>
17918
17919 PR target/57091
17920 * lra-constraints.c (best_small_class_operands_num): Remove.
17921 (process_alt_operands): Remove small_class_operands_num. Take
17922 small classes operands into losers and only if the operand is not
17923 matched. Modify debugging output.
17924 (curr_insn_transform): Remove best_small_class_operands_num.
17925 Print insn name.
17926
36054fab
JG
179272013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17928
17929 * config/aarch64/aarch64-builtins.c
17930 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
17931 * config/aarch64/aarch64-simd-builtins.def
17932 (reduc_splus_): Add new modes.
17933 (reduc_uplus_): New.
17934 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
17935 (reduc_uplus_v4sf): Likewise.
17936 (reduc_splus_v4sf): Likewise.
17937 (aarch64_addv<mode>): Likewise.
17938 (reduc_uplus_<mode>): Likewise.
17939 (reduc_splus_<mode>): Likewise.
17940 (aarch64_addvv2di): Likewise.
17941 (reduc_uplus_v2di): Likewise.
17942 (reduc_splus_v2di): Likewise.
17943 (aarch64_addvv2si): Likewise.
17944 (reduc_uplus_v2si): Likewise.
17945 (reduc_splus_v2si): Likewise.
17946 (reduc_<sur>plus_<mode>): New.
17947 (reduc_<sur>plus_v2di): Likewise.
17948 (reduc_<sur>plus_v2si): Likewise.
17949 (reduc_<sur>plus_v4sf): Likewise.
17950 (aarch64_addpv4sf): Likewise.
17951 * config/aarch64/arm_neon.h
17952 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
17953 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
17954 add UNSPEC_SADDV, UNSPEC_UADDV.
17955 (SUADDV): New.
17956 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
17957
6dce23a8
JG
179582013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17959
17960 * config/aarch64/arm_neon.h
17961 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
17962
1598945b
JG
179632013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17964
17965 * config/aarch64/aarch64-builtins
17966 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
17967
998eaf97
JG
179682013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17969
17970 * config/aarch64/aarch64-simd-builtins.def
17971 (reduc_smax_): New.
17972 (reduc_smin_): Likewise.
17973 (reduc_umax_): Likewise.
17974 (reduc_umin_): Likewise.
17975 (reduc_smax_nan_): Likewise.
17976 (reduc_smin_nan_): Likewise.
17977 (fmax): Remove.
17978 (fmin): Likewise.
17979 (smax): Update for V2SF, V4SF and V2DF modes.
17980 (smin): Likewise.
17981 (smax_nan): New.
17982 (smin_nan): Likewise.
17983 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
17984 (<su><maxmin><mode>3): ...This, refactor.
17985 (s<maxmin><mode>3): New.
17986 (<maxmin_uns><mode>3): Likewise.
17987 (reduc_<maxmin_uns>_<mode>): Refactor.
17988 (reduc_<maxmin_uns>_v4sf): Likewise.
17989 (reduc_<maxmin_uns>_v2si): Likewise.
17990 (aarch64_<fmaxmin><mode>: Remove.
17991 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
17992 new builtin names.
17993 (vmin<q>_f<32,64>): Likewise.
17994 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
17995 (FMAXMIN): New.
17996 (su): Add mappings for smax, smin, umax, umin.
17997 (maxmin): New.
17998 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
17999 (FMAXMIN): Rename as...
18000 (FMAXMIN_UNS): ...This.
18001 (maxminv): Remove.
18002 (fmaxminv): Likewise.
18003 (fmaxmin): Likewise.
18004 (maxmin_uns): New.
18005 (maxmin_uns_op): Likewise.
18006
bd11644e
JG
180072013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18008
18009 * config/aarch64/arm_neon.h
18010 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18011 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18012 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18013
75dd5ace
JG
180142013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18015
18016 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18017 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18018
7c19979f
JG
180192013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18020
18021 * config/aarch64/aarch64-simd.md
18022 (vcond<mode>_internal): Handle special cases for constant masks.
18023 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18024 (vcondu<mode><mode>): Likewise.
18025 (vcond<v_cmp_result><mode>): New.
18026
bb60efd9
JG
180272013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18028
18029 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18030 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18031 * config/aarch64/aarch64-simd-builtins.def
18032 (cmeq): Update to BUILTIN_VALLDI.
18033 (cmgt): Likewise.
18034 (cmge): Likewise.
18035 (cmle): Likewise.
18036 (cmlt): Likewise.
18037 * config/aarch64/arm_neon.h
18038 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18039 to builtins or C as appropriate.
18040
889b9412
JG
180412013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18042
18043 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18044 (cmgeu): ...This.
18045 (cmhi): Rename to...
18046 (cmgtu): ...This.
18047 * config/aarch64/aarch64-simd.md
18048 (simd_mode): Add SF.
18049 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18050 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18051 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18052 (cstore<mode>_neg): ...This.
18053 * config/aarch64/iterators.md
18054 (VALLF): new.
18055 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18056 (COMPARISONS): New.
18057 (UCOMPARISONS): Likewise.
18058 (optab): Add missing comparisons.
18059 (n_optab): New.
18060 (cmp_1): Likewise.
18061 (cmp_2): Likewise.
18062 (CMP): Likewise.
18063 (cmp): Remove.
18064 (VCMP_S): Likewise.
18065 (VCMP_U): Likewise.
18066 (V_cmp_result): Add DF, SF modes.
18067 (v_cmp_result): Likewise.
18068 (v): Likewise.
18069 (vmtype): Likewise.
18070 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18071
0a7dbb76
GY
180722013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18073
18074 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18075 define_insn to define_insn_and_split.
18076 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18077 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18078 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18079 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18080 (thumb2_negscc): Likewise.
18081
fb614ca6
GY
180822013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18083
18084 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18085
9e64a0bf
GY
180862013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18087
18088 * config/arm/thumb2.md: Remove trailing whitespaces.
18089
d6b28156
RS
180902013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18091
18092 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18093 Use gen_int_mode rather than GEN_INT.
18094
f91674c3
L
180952013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18096
b0dec607 18097 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18098 debug_gimple_stmt.
18099
3551257c
RB
181002013-04-30 Richard Biener <rguenther@suse.de>
18101
18102 PR middle-end/57122
3c21604f 18103 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18104
4c1aff1c
RB
181052013-04-30 Richard Biener <rguenther@suse.de>
18106
18107 PR middle-end/57107
18108 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18109
54b8379a
AB
181102013-04-30 Andrey Belevantsev <abel@ispras.ru>
18111
18112 PR rtl-optimization/56957
18113 PR rtl-optimization/57105
54b8379a
AB
18114 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18115 variable. Use just INSN_UID for determining whether an insn
18116 should be only disconnected from the insn stream.
18117 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18118
abc27962
JJ
181192013-04-30 Jakub Jelinek <jakub@redhat.com>
18120
18121 PR tree-optimization/57104
18122 * tsan.c (instrument_expr): Don't instrument accesses to
18123 DECL_HARD_REGISTER VAR_DECLs.
18124
0fc822d0
RB
181252013-04-30 Richard Biener <rguenther@suse.de>
18126
18127 * function.h (loops_for_fn): New inline function.
18128 (set_loops_for_fn): Likewise.
18129 * cfgloop.h (place_new_loop): Add struct function parameter.
18130 (get_loop): Likewise.
18131 (get_loops): Likewise.
18132 (number_of_loops): Likewise.
18133 (fel_next): Adjust.
18134 (fel_init): Likewise.
18135 * cfg.c (get_loop_copy): Adjust.
18136 * cfgloop.c (flow_loops_dump): Likewise.
18137 (record_loop_exits): Likewise.
18138 (verify_loop_structure): Likewise.
18139 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18140 (estimate_reg_pressure_cost): Likewise.
18141 (mark_loop_exit_edges): Likewise.
18142 * cfgloopmanip.c (place_new_loop): Likewise.
18143 (add_loop): Likewise.
18144 (duplicate_loop): Likewise.
18145 * graph.c (draw_cfg_nodes): Likewise.
18146 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18147 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18148 (extract_affine_chrec): Likewise.
18149 (build_scop_iteration_domain): Likewise.
18150 * graphite.c (graphite_initialize): Likewise.
18151 * ira-build.c (create_loop_tree_nodes): Likewise.
18152 (more_one_region_p): Likewise.
18153 (rebuild_regno_allocno_maps): Likewise.
18154 (mark_loops_for_removal): Likewise.
18155 (mark_all_loops_for_removal): Likewise.
18156 (remove_unnecessary_regions): Likewise.
18157 (ira_build): Likewise.
18158 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18159 * loop-init.c (fix_loop_structure): Likewise.
18160 (gate_rtl_move_loop_invariants): Likewise.
18161 (gate_rtl_unswitch): Likewise.
18162 (gate_rtl_unroll_and_peel_loops): Likewise.
18163 (rtl_doloop): Likewise.
18164 * lto-streamer-in.c (input_cfg): Likewise.
18165 * lto-streamer-out.c (output_cfg): Likewise.
18166 * modulo-sched.c (sms_schedule): Likewise.
18167 * predict.c (tree_estimate_probability): Likewise.
18168 (tree_estimate_probability_driver): Likewise.
18169 (estimate_loops): Likewise.
18170 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18171 (move_sese_region_to_fn): Likewise.
18172 (debug_loop_num): Likewise.
18173 * tree-chrec.c (chrec_evaluate): Likewise.
18174 (hide_evolution_in_other_loops_than_loop): Likewise.
18175 (chrec_component_in_loop_num): Likewise.
18176 (reset_evolution_in_loop): Likewise.
18177 (evolution_function_is_invariant_rec_p): Likewise.
18178 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18179 * tree-inline.c (copy_loops): Likewise.
18180 (copy_cfg_body): Likewise.
18181 (tree_function_versioning): Likewise.
18182 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18183 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18184 Likewise.
18185 (add_to_evolution_1): Likewise.
18186 (scev_const_prop): Likewise.
18187 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18188 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18189 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18190 (tree_ssa_lim_initialize): Likewise.
18191 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18192 (verify_loop_closed_ssa): Likewise.
18193 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18194 (tree_ssa_loop_im): Likewise.
18195 (tree_ssa_loop_unswitch): Likewise.
18196 (tree_vectorize): Likewise.
18197 (check_data_deps): Likewise.
18198 (tree_ssa_loop_ivcanon): Likewise.
18199 (tree_ssa_loop_bounds): Likewise.
18200 (tree_complete_unroll): Likewise.
18201 (tree_complete_unroll_inner): Likewise.
18202 (tree_parallelize_loops): Likewise.
18203 (tree_ssa_loop_prefetch): Likewise.
18204 (tree_ssa_loop_ivopts): Likewise.
18205 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18206 * tree-vectorizer.c (vectorize_loops): Likewise.
18207
37953bd3
MF
182082013-04-29 Mike Frysinger <vapier@gentoo.org>
18209
18210 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18211 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18212 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18213 with EABI_LINK_SPEC.
18214
f9ed28db
UB
182152013-04-29 Uros Bizjak <ubizjak@gmail.com>
18216
18217 PR target/44578
18218 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18219 alternative.
18220
deca73f5
VM
182212013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18222
18223 PR target/57097
37953bd3 18224 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18225 using memory for pseudos. Print cost dump for alternatives.
18226 Modify cost values for conflicts with early clobbers.
18227 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18228
fdca7d03
UB
182292013-04-29 Uros Bizjak <ubizjak@gmail.com>
18230
18231 PR target/57098
18232 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18233
0b064172
IB
182342013-04-29 Ian Bolton <ian.bolton@arm.com>
18235
18236 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18237 from/to S register.
18238 (movdi_aarch64): Support LDR/STR from/to D register.
18239
473cec55
IB
182402013-04-29 Ian Bolton <ian.bolton@arm.com>
18241
18242 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18243 or higher by default.
18244
a6f30e66
RB
182452013-04-29 Richard Biener <rguenther@suse.de>
18246
18247 PR middle-end/57075
18248 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18249 even if not adding abnormal edges for calls that can make
18250 abnormal gotos.
18251
0c2b2040
RB
182522013-04-29 Richard Biener <rguenther@suse.de>
18253
18254 PR middle-end/57103
18255 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18256 TREE_BLOCK.
18257 (move_stmt_r): Remove redundant checking.
18258
f41f80f9
TJ
182592013-04-29 Teresa Johnson <tejohnson@google.com>
18260
18261 PR bootstrap/57077
18262 * basic-block.h (apply_scale): New function.
18263 (apply_probability): Use apply_scale.
18264 * gimple-streamer-in.c (input_bb): Ditto.
18265 * lto-streamer-in.c (input_cfg): Ditto.
18266 * lto-cgraph.c (merge_profile_summaries): Ditto.
18267 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18268 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18269 (copy_edges_for_bb): Ditto.
18270 (copy_cfg_body): Ditto.
18271
315bbd2e
TV
182722013-04-29 Tom de Vries <tom@codesourcery.com>
18273
18274 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18275 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18276 (tail_merge_optimize): Handle current_loops == NULL.
18277
ebbd90d8
JL
182782013-04-26 Jeff Law <law@redhat.com>
18279
18280 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18281 (simplify_cond_using_ranges): Generalize code to simplify
18282 COND_EXPRs where one argument is a constant and the other
18283 is an SSA_NAME created by an integral type conversion.
18284
8b9b57eb
KT
182852013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18286
18287 * config/arm/arm.md (store_minmaxsi): Use only when
18288 optimize_insn_for_size_p.
18289
9498e5dc
CB
182902013-04-29 Christian Bruel <christian.bruel@st.com>
18291
18292 PR target/57108
18293 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18294
6093bc06
RB
182952013-04-29 Richard Biener <rguenther@suse.de>
18296
18297 PR middle-end/57089
fdca7d03
UB
18298 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18299 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18300 (expand_omp_for_generic): Properly add loops.
18301 (expand_omp_for_static_nochunk): Likewise.
18302 (expand_omp_for_static_chunk): Likewise.
18303 (expand_omp_for): For the degenerate case fixup loops.
18304 (expand_omp_sections): Fix default bb placement in loops.
18305 (expand_omp_atomic_pipeline): Properly add loops.
18306
84aacbfd
KT
183072013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18308
18309 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18310
8dee4479
TV
183112013-04-29 Tom de Vries <tom@codesourcery.com>
18312
18313 * tree-ssa-tail-merge.c: Update header comment.
18314
47934dc4
JG
183152013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18316
18317 * config/aarch64/arm_neon.h
18318 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18319 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18320 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18321 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18322 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18323 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18324 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18325 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18326
384be29f
JG
183272013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18328
18329 * config/aarch64/aarch64-simd.md
18330 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18331 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18332 fix_trunc, fixuns_trunc.
18333 (ftrunc<VDQF:mode>2): New.
18334 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18335 (fix_trunc_optab): New.
18336
0386b123
JG
183372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18338
18339 * config/aarch64/aarch64-builtins.c
18340 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18341 iceilf, lround, iroundf.
18342
00fcb892
UB
183432013-04-29 Uros Bizjak <ubizjak@gmail.com>
18344
18345 PR target/54349
18346 * config/i386/i386.h (enum ix86_tune_indices)
18347 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18348 New, split from X86_TUNE_INTER_UNIT_MOVES.
18349 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18350 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18351 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18352 (TARGET_INTER_UNIT_MOVES): Remove.
18353 * config/i386/i386.c (initial_ix86_tune_features): Update.
18354 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18355 (ix86_expand_convert_uns_didf_sse): Use
18356 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18357 (ix86_expand_vector_init_one_nonzero): Ditto.
18358 (ix86_expand_vector_init_interleave): Ditto.
18359 (inline_secondary_memory_needed): Return true for moves from SSE class
18360 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18361 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18362 * config/i386/constraints.md (Yi, Ym): Depend on
18363 TARGET_INTER_UNIT_MOVES_TO_VEC.
18364 (Yj, Yn): New constraints.
18365 * config/i386/i386.md (*movdi_internal): Change constraints of
18366 operand 1 from Yi to Yj and from Ym to Yn.
18367 (*movsi_internal): Ditto.
18368 (*movdf_internal): Ditto.
18369 (*movsf_internal): Ditto.
18370 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18371 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18372 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18373 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18374 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18375 * config/i386/sse.md (movdi_to_sse): Ditto.
18376 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18377 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18378 TARGET_INTER_UNIT_MOVES.
18379 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18380 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18381 instead of TARGET_INTER_UNIT_MOVES.
18382 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18383 operand 1 from Yi to Yj and from Ym to Yn.
18384
4c871069
JG
183852013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18386
18387 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18388 (float_truncate_hi_): Likewise.
18389 (float_extend_lo_): Likewise.
18390 (float_truncate_lo_): Likewise.
18391 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18392 (aarch64_float_extend_lo_v2df): Likewise.
18393 (vec_unpacks_hi_v4sf): Likewise.
18394 (aarch64_float_truncate_lo_v2sf): Likewise.
18395 (aarch64_float_truncate_hi_v4sf): Likewise.
18396 (vec_pack_trunc_v2df): Likewise.
18397 (vec_pack_trunc_df): Likewise.
18398
1709ff9b
JG
183992013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18400
18401 * config/aarch64/aarch64-builtins.c
18402 (aarch64_fold_builtin): Fold float conversions.
18403 * config/aarch64/aarch64-simd-builtins.def
18404 (floatv2si, floatv4si, floatv2di): New.
18405 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18406 * config/aarch64/aarch64-simd.md
18407 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18408 * config/aarch64/iterators.md (FLOATUORS): New.
18409 (optab): Add float, floatuns.
18410 (su_optab): Likewise.
18411
ce966824
JG
184122013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18413
18414 * config/aarch64/aarch64-builtins.c
18415 (aarch64_builtin_vectorized_function): Use new names for
18416 fcvt builtins.
18417 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18418 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18419 (fcvtzu): Split as...
18420 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18421 (fcvtas): Split as...
18422 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18423 (fcvtau): Split as...
18424 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18425 (fcvtps): Split as...
18426 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18427 (fcvtpu): Split as...
18428 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18429 (fcvtms): Split as...
18430 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18431 (fcvtmu): Split as...
18432 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18433 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18434 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18435 (lfrintnusf, lfrintnudf): Likewise.
18436 * config/aarch64/aarch64-simd.md
18437 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18438 define_insn.
18439 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18440 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18441 (fcvt_pattern): Likewise.
18442
b9de24fe
JG
184432013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18444
18445 * config/aarch64/aarch64-simd.md
18446 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18447 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18448
77a205be
JG
184492013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18450
18451 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18452 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18453 (vrnd<a,m,n,p>_f32): Implement using builtins.
18454 (vrnd<i,x><q>_f<32, 64>): New.
18455
0659ce6f
JG
184562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18457
18458 * config/aarch64/aarch64-builtins.c
18459 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18460 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18461 (frintz): Rename to...
18462 (btrunc): ...this.
18463 (frintp): Rename to...
18464 (ceil): ...this.
18465 (frintm): Rename to...
18466 (floor): ...this.
18467 (frinti): Rename to...
18468 (nearbyint): ...this.
18469 (frintx): Rename to...
18470 (rint): ...this.
18471 (frinta): Rename to...
18472 (round): ...this.
18473 * config/aarch64/aarch64-simd.md
18474 (aarch64_frint<frint_suffix><mode>): Delete.
18475 (<frint_pattern><mode>2): Convert to insn.
18476 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18477 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18478 (frint_pattern): Likewise.
18479 (frint_suffix): Likewise.
18480
ea78906a
RB
184812013-04-29 Richard Biener <rguenther@suse.de>
18482
18483 PR tree-optimization/57081
18484 * loop-init.c: Include tree-flow.h.
18485 (loop_optimizer_finalize): Free number of iteration estimates.
18486 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18487
baee1763
JJ
184882013-04-29 Jakub Jelinek <jakub@redhat.com>
18489
94dc5332
JJ
18490 PR tree-optimization/57083
18491 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18492 non-singleton shift count range, zero extend low_bound for uns case.
18493
baee1763
JJ
18494 * config/i386/predicates.md (general_vector_operand): New predicate.
18495 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18496 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18497 if they aren't nonimmediate operands. If their original values
18498 satisfy const_vector_equal_evenodd_p, don't shift them.
18499 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18500 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18501 if not nonimmediate_operand.
18502 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18503 instead of register_operand.
18504 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18505
a9073727 185062013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18507
18508 * stor-layout.c (finalize_size_functions): Allocate a structure and
18509 reset cfun before dumping the functions.
18510
ba8011e6
JJ
185112013-04-27 Jakub Jelinek <jakub@redhat.com>
18512
d6fde69e
JJ
18513 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18514
ba8011e6
JJ
18515 PR target/56866
18516 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18517 use xop_pmacsdqh if uns_p.
18518 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18519 the immediate rotate count.
18520
2c62cbaa
VM
185212013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18522
18523 * rtl.h (struct rtx_def): Add comment for field jump.
18524 (LRA_SUBREG_P): New macro.
18525 * recog.c (register_operand): Check LRA_SUBREG_P.
18526 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18527 stack frame.
18528 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18529 (lra_final_code_change): Skip subreg change for operators.
18530 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18531 if there are no operand changes.
18532 * lra-constraints.c (curr_insn_set): New.
18533 (match_reload): Set LRA_SUBREG_P.
18534 (emit_spill_move): Ditto.
18535 (check_and_process_move): Use curr_insn_set. Process only single
18536 set insns. Don't initialize sec_mem_p and change_p.
18537 (simplify_operand_subreg): Use LRA_SUBREG_P.
18538 (reg_in_class_p): New function.
18539 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18540 of #ifdef. Add code to remove cycling.
18541 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18542 non-null disp. Reload inner instead of disp when base and index
18543 are null. Try to put lo_sum into register.
18544 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18545 (check_and_process_move): Move code for move cost check to
18546 simple_move_p. Remove equiv_substitution.
18547 (simple_move_p): New function.
18548 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18549 curr_insn_set. Call check_and_process_move only for single set
18550 insns. Use the new function. Move call of check_and_process_move
18551 after operand equiv substitution and address process.
18552
e7d764f3
JJ
185532013-04-26 Jakub Jelinek <jakub@redhat.com>
18554
18555 PR go/57045
18556 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18557 with nonlocal goto receivers or returns twice calls, ignore
18558 unininitialized values from abnormal edges to nl goto receiver
18559 or returns twice call.
18560
41e10689
JJ
185612013-04-26 Jakub Jelinek <jakub@redhat.com>
18562
18563 PR tree-optimization/57051
18564 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18565 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18566 bitsize.
18567
d7ed20db
RB
185682013-04-26 Richard Biener <rguenther@suse.de>
18569
18570 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18571 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18572 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18573 (fixup_loop_arrays_after_move): New function.
18574 (move_sese_region_to_fn): Properly outline the loop tree parts
18575 of the SESE region.
18576
df93505e
UB
185772013-04-26 Uros Bizjak <ubizjak@gmail.com>
18578
18579 * config/i386/i386.md (type, unit): Fix long lines.
18580
dd366ec3
RB
185812013-04-26 Richard Biener <rguenther@suse.de>
18582
18583 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18584 (lto-streamer-out.o): Likewise.
18585 * cfgloop.c (init_loops_structure): Export, add struct function
18586 argument and adjust.
18587 (flow_loops_find): Adjust.
18588 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18589 (init_loops_structure): Declare.
18590 * lto-streamer-in.c: Include cfgloop.h.
18591 (input_cfg): Input the loop tree.
18592 * lto-streamer-out.c: Include cfgloop.h.
18593 (output_cfg): Output the loop tree.
18594 (output_struct_function_base): Do not drop PROP_loops.
18595
a9e0d843
RB
185962013-03-26 Richard Biener <rguenther@suse.de>
18597
18598 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18599 (pass_build_cfg): Provide PROP_loops.
18600 (move_sese_region_to_fn): Remove loops that are outlined into fn
18601 for now.
18602 * tree-inline.c: Include cfgloop.h.
18603 (initialize_cfun): Do not drop PROP_loops.
18604 (copy_loops): New function.
18605 (copy_cfg_body): Copy loop structure.
18606 (tree_function_versioning): Initialize destination loop tree.
18607 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18608 (pass_parallelize_loops): Do IL verification.
18609 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18610 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18611 the CFG make sure we fixup loops as well.
18612 * tree-ssa-tail-merge.c: Include cfgloop.h.
18613 (replace_block_by): When merging loop latches mark loops for fixup.
18614 * lto-streamer-out.c (output_struct_function_base): Drop
18615 PROP_loops for now.
18616 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18617 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18618 * ipa-split.c: Include cfgloop.h.
18619 (split_function): Add the new return block to the loop tree root.
18620 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18621 whether we have removed the forwarder block.
18622 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18623 * cfgloop.h (place_new_loop): Declare.
18624 * cfgloopmanip.c (place_new_loop): Export.
18625 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18626 (tree-switch-conversion.o): Likewise.
18627 (tree-complex.o): Likewise.
18628 (tree-inline.o): Likewise.
18629 (tree-ssa-tailmerge.o): Likewise.
18630 (ipa-split.o): Likewise.
18631 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18632 (tree-ssa-copy.o): Likewise.
18633 * tree-switch-conversion.c: Include cfgloop.h
18634 (process_switch): If we emit a bit-test cascade, schedule loops
18635 for fixup.
18636 * tree-complex.c: Include cfgloop.h.
18637 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18638 * asan.c: Include cfgloop.h.
18639 (create_cond_insert_point): Properly add new basic-blocks to
18640 loops, schedule loop fixup.
18641 * cfgloop.c (verify_loop_structure): Check that looks are not
18642 marked for fixup.
18643 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18644 to loops.
18645 (expand_omp_for_generic): Likewise.
18646 (expand_omp_sections): Likewise.
18647 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18648 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18649 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18650 is initialized, not when loops are present.
18651 * tree-parloops.c (parallelize_loops): Remove checking here.
18652 * passes.c (init_optimization_passes): Schedule a copy-propagation
18653 pass before complete unrolling of inner loops.
18654
e78e8a0b
JJ
186552013-04-26 Jakub Jelinek <jakub@redhat.com>
18656
a2e836b2
JJ
18657 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18658 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18659 (colorize_init): Add argument to _WIN32 version.
18660 * toplev.c: Include diagnostic-color.h.
18661 (process_options): Default to -fdiagnostics-color=auto if
18662 GCC_COLORS env var is in the environment.
18663 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
18664 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18665 env var is in the environment, the default is auto rather than never.
a2e836b2 18666
e78e8a0b
JJ
18667 * diagnostic.h (file_name_as_prefix): Add context argument.
18668 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18669 the string as locus.
18670 * langhooks.c (lhd_print_error_function): Adjust caller.
18671
013e5ef9
LC
186722013-04-25 Lawrence Crowl <crowl@google.com>
18673
18674 * var-tracking.c (shared_hash_def::htab):
18675 Change type to hash_table. Update dependent calls and types.
18676
4a8fb1a1
LC
186772013-04-25 Lawrence Crowl <crowl@google.com>
18678
18679 * Makefile.in: Update as needed below.
18680
18681 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18682 Move declaration to after the type's method definitons.
18683
18684 * attribs.c (htab_t scoped_attributes::attribute_hash):
18685 Change type to hash_table. Update dependent calls and types.
18686
18687 * bitmap.c (htab_t bitmap_desc_hash):
18688 Change type to hash_table. Update dependent calls and types.
18689
18690 * cselib.c (htab_t cselib_hash_table):
18691 Change type to hash_table. Update dependent calls and types.
18692
18693 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18694 (hash_string_slot_node): Move implementation into lto-streamer.h
18695 struct string_slot_hasher.
18696 (eq_string_slot_node): Likewise.
18697
18698 * data-streamer-out.c: Update output_block::string_hash_table
18699 dependent calls and types.
18700
18701 * dwarf2cfi.c (htab_t trace_index):
18702 Change type to hash_table. Update dependent calls and types.
18703
18704 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18705 Change type to hash_table. Update dependent calls and types.
18706 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
18707 (htab_t optimize_external_refs::map): Likewise.
18708 (htab_t output_comp_unit::extern_map): Likewise.
18709 (htab_t output_comdat_type_unit::extern_map): Likewise.
18710 (htab_t output_macinfo::macinfo_htab): Likewise.
18711 (htab_t optimize_location_lists::htab): Likewise.
18712 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
18713
18714 * except.c (htab_t ehspec_hash_type):
18715 Change type to hash_table. Update dependent calls and types.
18716 (assign_filter_values::ttypes): Likewise.
18717 (assign_filter_values::ehspec): Likewise.
18718 (sjlj_assign_call_site_values::ar_hash): Likewise.
18719 (convert_to_eh_region_ranges::ar_hash): Likewise.
18720
18721 * gcse.c (htab_t pre_ldst_table):
18722 Change type to hash_table. Update dependent calls and types.
18723
18724 * ggc-common.c (htab_t saving_htab):
18725 Change type to hash_table. Update dependent calls and types.
18726 (htab_t loc_hash): Likewise.
18727 (htab_t ptr_hash): Likewise.
18728 (call_count): Rename ggc_call_count.
18729 (call_alloc): Rename ggc_call_alloc.
18730 (loc_descriptor): Rename make_loc_descriptor.
18731 (add_statistics): Rename ggc_add_statistics.
18732
18733 * ggc-common.c (saving_htab):
18734 Change type to hash_table. Update dependent calls and types.
18735
18736 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
18737 (push_gimplify_context): Likewise.
18738 (pop_gimplify_context): Likewise.
18739 (struct gimple_temp_hash_elt): Added.
18740 (struct gimplify_hasher): Likewise.
18741 (struct gimplify_ctx.temp_htab):
18742 Change type to hash_table. Update dependent calls and types.
18743
18744 * gimple-fold.c: Include gimplify-ctx.h.
18745
18746 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
18747 Change type to hash_table. Update dependent calls and types.
18748 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
18749 avoid potential global name collision.
18750
18751 * gimplify.c: Include gimplify-ctx.h.
18752 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
18753 (htab_t gimplify_ctx::temp_htab):
18754 Update dependent calls and types for new type hash_table.
18755 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
18756 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
18757
18758 * gimplify-ctx.h: New.
18759 (struct gimple_temp_hash_elt): Move from gimplify.c.
18760 (class gimplify_hasher): New.
18761 (struct gimplify_ctx): Move from gimple.h.
18762 (htab_t gimplify_ctx::temp_htab):
18763 Change type to hash_table. Update dependent calls and types.
18764
18765 * graphite-clast-to-gimple.c: Include graphite-htab.h.
18766 (htab_t ivs_params::newivs_index):
18767 Change type to hash_table. Update dependent calls and types.
18768 (htab_t ivs_params::params_index): Likewise.
18769 (htab_t print_generated_program::params_index): Likewise.
18770 (htab_t gloog::newivs_index): Likewise.
18771 (htab_t gloog::params_index): Likewise.
18772
18773 * graphite.c: Include graphite-htab.h.
18774 4htab_t graphite_transform_loops::bb_pbb_mapping):
18775 Change type to hash_table. Update dependent calls and types.
18776
18777 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
18778 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
18779 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
18780
18781 * graphite-dependences.c: Include graphite-htab.h.
18782 (loop_is_parallel_p): Change hash table type of parameter.
18783
18784 * graphite-htab.h: New.
18785 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
18786 (extern find_pbb_via_hash): Move from graphite-poly.h.
18787 (extern loop_is_parallel_p): Move from graphite-poly.h.
18788 (extern get_loop_body_pbbs): Move from graphite-poly.h.
18789
18790 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
18791 (extern loop_is_parallel_p): Move to graphite-htab.h.
18792 (extern get_loop_body_pbbs): Move to graphite-htab.h.
18793
18794 * haifa-sched.c (htab_t delay_htab):
18795 Change type to hash_table. Update dependent calls and types.
18796 (htab_t delay_htab_i2): Likewise.
18797
18798 * ira-color.c (htab_t allocno_hard_regs_htab):
18799 Change type to hash_table. Update dependent calls and types.
18800
18801 * ira-costs.c (htab_t cost_classes_htab):
18802 Change type to hash_table. Update dependent calls and types.
18803
18804 * loop-invariant.c (htab_t merge_identical_invariants::eq):
18805 Change type to hash_table. Update dependent calls and types.
18806
18807 * loop-iv.c (htab_t bivs):
18808 Change type to hash_table. Update dependent calls and types.
18809
18810 * loop-unroll.c (htab_t opt_info::insns_to_split):
18811 Change type to hash_table. Update dependent calls and types.
18812 (htab_t opt_info::insns_with_var_to_expand): Likewise.
18813
18814 * lto-streamer.h (struct string_slot): Move from data-streamer.h
18815 (struct string_slot_hasher): New.
18816 (htab_t output_block::string_hash_table):
18817 Change type to hash_table. Update dependent calls and types.
18818
18819 * lto-streamer-in.c (freeing_string_slot_hasher): New.
18820 (htab_t file_name_hash_table):
18821 Change type to hash_table. Update dependent calls and types.
18822
18823 * lto-streamer-out.c: Update output_block::string_hash_table dependent
18824 calls and types.
18825
18826 * lto-streamer.c (htab_t tree_htab):
18827 Change type to hash_table. Update dependent calls and types.
18828
18829 * omp-low.c: Include gimplify-ctx.h.
18830
18831 * passes.c (htab_t name_to_pass_map):
18832 Change type to hash_table. Update dependent calls and types.
18833 (pass_traverse): Rename to passes_pass_traverse.
18834
18835 * plugin.c (htab_t event_tab):
18836 Change type to hash_table. Update dependent calls and types.
18837
18838 * postreload-gcse.c (htab_t expr_table):
18839 Change type to hash_table. Update dependent calls and types.
18840 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
18841
18842 * sese.c (debug_rename_map_1): Make extern.
18843 (htab_t copy_bb_and_scalar_dependences::rename_map):
18844 Change type to hash_table. Update dependent calls and types.
18845
18846 * sese.h (extern debug_rename_map): Move to .c file.
18847
18848 * store-motion.c (htab_t store_motion_mems_table):
18849 Change type to hash_table. Update dependent calls and types.
18850
18851 * trans-mem.c (htab_t tm_new_mem_hash):
18852 Change type to hash_table. Update dependent calls and types.
18853
18854 * tree-browser.c (htab_t TB_up_ht):
18855 Change type to hash_table. Update dependent calls and types.
18856
18857 * tree-cfg.c (htab_t discriminator_per_locus):
18858 Change type to hash_table. Update dependent calls and types.
18859
18860 * tree-complex.c: Include tree-hasher.h
18861 (htab_t complex_variable_components):
18862 Change type to hash_table. Update dependent calls and types.
18863
18864 * tree-eh.c (htab_t finally_tree):
18865 Change type to hash_table. Update dependent calls and types.
18866
18867 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
18868 struct int_tree_hasher.
18869 (extern int_tree_map_eq): Likewise.
18870 (uid_decl_map_hash): Removed.
18871 (extern decl_tree_map_eq): Likewise.
18872
18873 * tree-hasher.h: New.
18874 (struct int_tree_hasher): New.
18875 (typedef int_tree_htab_type): New.
18876
18877 * tree-inline.c: Include gimplify-ctx.h.
18878
18879 * tree-mudflap.c: Include gimplify-ctx.h.
18880
18881 * tree-parloops.c: Include tree-hasher.h.
18882 (htab_t eliminate_local_variables_stmt::decl_address):
18883 Change type to hash_table. Update dependent calls and types.
18884 (htab_t separate_decls_in_region::decl_copies): Likewise.
18885
18886 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
18887 Change type to hash_table. Update dependent calls and types.
18888
18889 * tree-sra.c (candidates):
18890 Change type to hash_table. Update dependent calls and types.
18891
18892 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
18893 in tree-flow.h.
18894 (int_tree_map_hash): Likewise.
18895
18896 * tree-ssa-dom.c (htab_t avail_exprs):
18897 Change type to hash_table. Update dependent calls and types.
18898
18899 * tree-ssa-live.c (var_map_base_init::tree_to_index):
18900 Change type to hash_table. Update dependent calls and types.
18901
18902 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
18903 Change type to hash_table. Update dependent calls and types.
18904
18905 * tree-ssa-phiopt.c (seen_ssa_names):
18906 Change type to hash_table. Update dependent calls and types.
18907
18908 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
18909 Change type to hash_table. Update dependent calls and types.
18910
18911 * tree-ssa-uncprop.c (equiv):
18912 Change type to hash_table. Update dependent calls and types.
18913
c5a44004
JJ
189142013-04-25 Jakub Jelinek <jakub@redhat.com>
18915
18916 PR rtl-optimization/57003
18917 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
18918 call note_stores with kill_clobbered_value callback again after
18919 killing regs_invalidated_by_call.
18920
09962a4a
JG
189212013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18922
18923 * config/aarch64/aarch64-simd.md
18924 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
18925 (aarch64_simd_bsl<mode>): Likewise.
18926 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
18927
ea28bb0b
MP
189282013-04-25 Marek Polacek <polacek@redhat.com>
18929
18930 PR tree-optimization/57066
3c21604f 18931 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 18932
96659611
JG
189332013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
18934
18935 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
18936
9697e620
JG
189372013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18938
18939 * config/aarch64/aarch64-builtins.c
18940 (aarch64_fold_builtin): New.
18941 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
18942 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
18943 * config/aarch64/aarch64-simd-builtins.def (abs): New.
18944 * config/aarch64/arm_neon.h
18945 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
18946
0ac198d3
JG
189472013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18948 Tejas Belagod <tejas.belagod@arm.com>
18949
18950 * config/aarch64/aarch64-builtins.c
18951 (aarch64_gimple_fold_builtin): New.
18952 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
18953 * config/aarch64/aarch64-simd-builtins.def (addv): New.
18954 * config/aarch64/aarch64-simd.md (addpv4sf): New.
18955 (addvv4sf): Update.
18956 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
18957
58cff58c
N
189582013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18959
df93505e 18960 * config/aarch64/aarch64.md
58cff58c
N
18961 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
18962
7e0228bf
N
189632013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18964
18965 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
18966 (*ngcsi_uxtw): New pattern.
18967
5819f96f 189682013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 18969 Julian Brown <julian@codesourcery.com>
5819f96f
KT
18970
18971 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
18972 (TB_DREG): Add T_V4HF.
18973 (v4hf_UP): New macro.
18974 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 18975 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
18976 Handle initialisation of V4HF. Adjust initialisation of reinterpret
18977 built-ins.
df93505e 18978 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
18979 (arm_vector_mode_supported_p): Handle V4HF.
18980 (arm_mangle_map): Handle V4HFmode.
18981 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
18982 * config/arm/arm_neon_builtins.def: Add entries for
18983 vcvtv4hfv4sf, vcvtv4sfv4hf.
18984 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
18985 (neon_vcvtv4hfv4sf): Likewise.
18986 * config/arm/neon-gen.ml: Handle half-precision floating point
18987 features.
18988 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
18989 * config/arm/arm_neon.h: Regenerate.
18990 * config/arm/neon.ml (type elts): Add F16.
18991 (type vectype): Add T_float16x4, T_floatHF.
18992 (type vecmode): Add V4HF.
18993 (type features): Add Requires_FP_bit feature.
18994 (elt_width): Handle F16.
18995 (elt_class): Likewise.
18996 (elt_of_class_width): Likewise.
18997 (mode_of_elt): Refactor.
18998 (type_for_elt): Handle F16, fix error messages.
18999 (vectype_size): Handle T_float16x4.
19000 (vcvt_sh): New function.
19001 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19002 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19003 (string_of_mode): Handle V4HF.
19004 * doc/arm-neon-intrinsics.texi: Regenerate.
19005
1ef395e4
JG
190062013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19007
19008 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19009 format specifier in 'X' case.
19010
41c34e94
AM
190112013-04-25 Alan Modra <amodra@gmail.com>
19012
19013 PR target/57052
19014 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19015 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19016 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19017 Repeat for many other rotate/shift and mask patterns using subregs.
19018 Name lshiftrt insns.
19019 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19020 on WORDS_BIG_ENDIAN.
19021
b9a7eb5d
AM
190222013-04-25 Alan Modra <amodra@gmail.com>
19023
19024 * config.gcc: Support little-endian powerpc-linux targets.
19025 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19026 (LINK_OS_LINUX_SPEC): Define.
19027 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19028 Preserve MASK_LITTLE_ENDIAN.
19029 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19030 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19031 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19032 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19033 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19034 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19035 Correct fp word order for little-endian. Don't shift toc entries
19036 smaller than a word for little-endian.
19037 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19038 (bswapdi2 splits): Correct low-part subreg for little-endian.
19039 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19040 low/high where such is correct only for be.
19041 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19042 little-endian for -mcall-aixdesc.
19043
87f73374
AM
190442013-04-25 Alan Modra <amodra@gmail.com>
19045
19046 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19047 replace_equiv_address_nv.
19048
cabf91cd
AM
190492013-04-25 Alan Modra <amodra@gmail.com>
19050
19051 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19052
0ae24cc8
VM
190532013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19054
19055 Revert:
19056 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19057 * rtl.h (struct rtx_def): ...
cabf91cd 19058
77bce07c
VM
190592013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19060
19061 PR rtl-optimizations/57046
19062 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19063 for multi-reg splits.
19064
0db63e7f
L
190652013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19066
19067 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19068
3362b6b6
SA
190692013-04-24 Sterling Augustine <saugustine@google.com>
19070
19071 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19072 (comp_dir_string, debug_str_dwo_section): New.
19073 (DEBUG_STR_DWO_SECTION): Rename to ...
19074 (DEBUG_DWO_STR_SECTION): ... this.
19075 (DEBUG_NORM_STR_SECTION): Delete.
19076 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19077 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19078 (find_AT_string): Move most logic to ...
19079 (find_AT_string_in_table): ... here. New.
19080 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19081 add_skeleton_AT_string. Delete logic.
19082 (output_skeleton_debug_sections): Remove call to
19083 add_top_level_skeleton_die_attrs.
19084 (add_comp_dir_attribute): Move logic to comp_dir_string.
19085 (dwarf2out_init): Initialize debug_str_dwo_section.
19086 (output_indirect_string): Call find_string_form.
19087 (output_indirect_strings): Rewrite.
19088 (prune_unused_types): Empty skeleton_debug_str_hash.
19089 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19090 (dwarf2out_finish): Call output_indirect_strings.
19091
e93e18e9
PC
190922013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19093
19094 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19095
f6ce35ac
VM
190962013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19097
cabf91cd 19098 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19099 (LRA_SUBREG_P): New macro.
19100 * recog.c (register_operand): Check LRA_SUBREG_P.
19101 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19102 stack frame.
19103 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19104 (lra_final_code_change): Skip subreg change for operators.
19105 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19106 if there are no operand changes.
19107 * lra-constraints.c (curr_insn_set): New.
19108 (match_reload): Set LRA_SUBREG_P.
19109 (emit_spill_move): Ditto.
19110 (check_and_process_move): Use curr_insn_set. Process only single
19111 set insns. Don't initialize sec_mem_p and change_p.
19112 (simplify_operand_subreg): Use LRA_SUBREG_P.
19113 (reg_in_class_p): New function.
19114 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19115 of #ifdef. Add code to remove cycling.
19116 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19117 non-null disp. Reload inner instead of disp when base and index
19118 are null. Try to put lo_sum into register.
19119 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19120 (check_and_process_move): Move code for move cost check to
f6ce35ac 19121 simple_move_p. Remove equiv_substitution.
cabf91cd 19122 (simple_move_p): New function.
f6ce35ac
VM
19123 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19124 curr_insn_set. Call check_and_process_move only for single set
19125 insns. Use the new function. Move call of check_and_process_move
19126 after operand equiv substitution and address process.
19127
38047d90
JG
191282013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19129
19130 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19131 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19132 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19133
13f39b2e
PC
191342013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19135
19136 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19137
97c116dc
MP
191382013-04-24 Marek Polacek <polacek@redhat.com>
19139
19140 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19141 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19142 (select_loops_exit_conditions): Likewise.
19143 (number_of_iterations_for_all_loops): Likewise.
19144 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19145 (scev_analysis): Likewise.
19146
83082391 191472013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19148 Chao-ying Fu <fu@mips.com>
83082391 19149
cabf91cd
AM
19150 * config/mips/micromips.md (jraddiusp): New pattern.
19151 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19152 instruction if possible.
83082391 19153
19e34aa2
AM
191542013-04-24 Alan Modra <amodra@gmail.com>
19155
19156 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19157
fdb6603c
JB
191582013-04-24 Julian Brown <julian@codesourcery.com>
19159 Chung-Lin Tang <cltang@codesourcery.com>
19160
19161 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19162 dependency behavior in enumeration type DIE generation. Add TODO note
19163 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19164
bf190e8d
LC
191652013-04-23 Lawrence Crowl <crowl@google.com>
19166
19167 * Makefile.in: Update as needed below.
19168
19169 * hash-table.h (class hash_table):
19170 Correct many methods with parameter types compare_type to the correct
19171 value_type. (Correct code was unlikely to notice the change.)
19172 (hash_table::elements_with_deleted) New.
19173 (class hashtable::iterator): New.
19174 (hashtable::begin()): New.
19175 (hashtable::end()): New.
19176 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19177
19178 * statistics.c (statistics_hashes):
19179 Change type to hash_table. Update dependent calls and types.
19180
19181 * tree-into-ssa.c (var_infos):
19182 Change type to hash_table. Update dependent calls and types.
19183
19184 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19185 Change type to hash_table. Update dependent calls and types.
19186
19187 * tree-ssa-loop-im.c (struct mem_ref.refs):
19188 Change type to hash_table. Update dependent calls and types.
19189
19190 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19191 Change type to hash_table. Update dependent calls and types.
19192
19193 * tree-ssa-sccvn.c (vn_tables_s::nary):
19194 Change type to hash_table. Update dependent calls and types.
19195 (vn_tables_s::phis): Likewise.
19196 (vn_tables_s::references): Likewise.
19197
19198 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19199 (vn_reference_eq): Update parameter and return types.
19200
19201 * tree-ssa-structalias.c (pointer_equiv_class_table):
19202 Change type to hash_table. Update dependent calls and types.
19203 (location_equiv_class_table): Likewise.
19204
19205 * tree-vect-data-refs.c: Consequential changes for making
19206 peeling a hash_table.
19207
19208 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19209 (destroy_loop_vec_info): Dependent hash_table update.
19210
19211 * tree-vectorizer.h (peeling_htab):
19212 Change type to hash_table. Update dependent calls and types.
19213
d70a81dd
SC
192142013-04-23 Shiva Chen <shiva0217@gmail.com>
19215
cabf91cd
AM
19216 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19217 to check the register content is equal or not.
19218 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19219 to assign register content record.
19220 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19221 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19222 * lra-int.h (struct lra_reg): Add offset member.
19223 (lra_reg_val_equal_p): New static inline function.
19224 (lra_update_reg_val_offset): New static inline function.
19225 (lra_assign_reg_val): New static inline function.
19226 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19227 to assign register content record.
19228 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19229
b894a1f3
CM
192302013-04-23 Catherine Moore <clm@codesourcery.com>
19231
19232 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19233 operands. Record compression.
19234
ecd14de9
XDL
192352013-04-23 Xinliang David Li <davidxl@google.com>
19236
19237 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19238
92e776e9
RB
192392013-04-23 Richard Biener <rguenther@suse.de>
19240
19241 PR middle-end/57036
19242 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19243 parameter, only add abnormal goto edges from the copied body
19244 if the call could perform abnormal gotos.
19245 (copy_cfg_body): Adjust.
19246
a15ee567
SN
192472013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19248
19249 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19250
08c52234
AS
192512013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19252
19253 * coretypes.h (gimple_stmt_iterator): Add struct to make
19254 compatible with C.
19255
999c1171
RB
192562013-04-23 Richard Biener <rguenther@suse.de>
19257
19258 PR tree-optimization/57026
19259 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19260 from SSA names occuring in abnormal PHI nodes.
19261
53669259
AK
192622013-04-22 Andi Kleen <ak@linux.intel.com>
19263
19264 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19265
1a0ad150
AK
192662013-04-22 Andi Kleen <ak@linux.intel.com>
19267
19268 * lto/lto.c (print_lto_report_1): Declare early.
19269 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19270
057f8f20
AK
192712013-04-22 Andi Kleen <ak@linux.intel.com>
19272
19273 * common.opt (-flto-report-wpa): Add.
19274 * doc/invoke.texi (-flto-report-wpa): Add.
19275 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19276 (lto_main): dito.
19277
473b1e05
XDL
192782013-04-22 Xinliang David Li <davidxl@google.com>
19279
19280 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19281 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19282 * Makefile.in: New dependency
19283
cabf91cd 19284 David Daney <ddaney.cavm@gmail.com>
b1485a33 19285
cabf91cd
AM
19286 * configure.ac (gcc_cv_as_micromips_support): Use the
19287 --fatal-warnings option.
19288 * configure: Regenerate.
b1485a33 19289
829d0168
MP
192902013-04-22 Marek Polacek <polacek@redhat.com>
19291
19292 PR sanitizer/56990
19293 * tsan.c (instrument_expr): Don't instrument expression
19294 in case its size is zero.
19295
6d9b7208
UB
192962013-04-22 Uros Bizjak <ubizjak@gmail.com>
19297
19298 PR target/57032
19299 Revert:
19300 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19301
19302 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19303
ea679d55
JG
193042013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19305
19306 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19307 (gimple_stmt_iterator): New typedef.
19308 * gimple.h (gimple_stmt_iterator): Rename to...
19309 (gimple_stmt_iterator_d): ... This.
19310 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19311 trees be valid for GIMPLE and GENERIC.
19312 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19313 * gimple-fold.c (gimple_fold_call): Call target hook
19314 gimple_fold_builtin.
19315 * hooks.c (hook_bool_gsiptr_false): New.
19316 * hooks.h (hook_bool_gsiptr_false): New.
19317 * target.def (fold_stmt): New.
19318 * doc/tm.texi: Regenerate.
19319
88a581da
VM
193202013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19321
19322 PR target/57018
19323 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19324 a set sp if no stack realignment.
19325
92be22dc
NC
193262013-04-22 Nick Clifton <nickc@redhat.com>
19327
19328 * config.gcc (tilegx-linux): Extend extra_objs rather than
19329 overwriting it.
19330 (tilepro-linux): Likewise.
19331
0ddec79f
JG
193322013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19333
19334 * config/aarch64/aarch64-builtins.c
19335 (CF): Remove.
19336 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19337 (VAR<1-12>): Add MAP parameter.
19338 (BUILTIN_*): Likewise.
19339 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19340 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19341 (aarch64_ushl_n<mode>): Likewise.
19342 (aarch64_sshr_n<mode>): Likewise.
19343 (aarch64_ushr_n<mode>): Likewise.
19344 (aarch64_<maxmin><mode>): Likewise.
19345 (aarch64_sqrt<mode>): Likewise.
19346 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19347 (vshr<q>_n_*): Likewise.
19348
0050faf8
JG
193492013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19350
19351 * config/aarch64/aarch64-builtins.c
19352 (aarch64_simd_builtin_type_mode): Handle SF types.
19353 (sf_UP): Define.
19354 (BUILTIN_GPF): Define.
19355 (aarch64_init_simd_builtins): Handle SF types.
19356 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19357 (frecps): Likewise.
19358 (frecpx): Likewise.
19359 * config/aarch64/aarch64-simd.md
19360 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19361 (aarch64_frecpe<mode>): New.
19362 (aarch64_frecps<mode>): Likewise.
19363 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19364 (v8type): Add frecp<esx>.
19365 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19366 (aarch64_frecps<mode>): Likewise.
19367 * config/aarch64/iterators.md (FRECP): New.
19368 (frecp_suffix): Likewise.
19369 * config/aarch64/arm_neon.h
19370 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19371
0fad3dbc 193722013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19373
19374 PR target/56995
19375 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19376 (REG_CLASS_NAMES): Idem.
19377 (REG_CLASS_CONTENTS): Idem.
19378 (REGCLASS_HAS_FP_REG): Idem.
19379 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19380 (sh_conditional_register_usage): Idem.
19381
3e8a33f9
JL
193822013-04-21 Jeff Law <law@redhat.com>
19383
19384 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19385 (ssa_forward_propagate_and_combine): Use it.
19386
f38e1b0a
VM
193872013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19388
19389 * lra.c: Update the flow chart diagram.
19390
682303da
VM
193912013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19392
19393 PR rtl-optimization/56847
19394 * lra-constraints.c (process_alt_operands): Discourage alternative
19395 with non-matche doffsettable memory constraint fro memory with
19396 known offset.
19397
f6b64c35
RB
193982013-04-19 Richard Biener <rguenther@suse.de>
19399
19400 PR tree-optimization/56982
19401 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19402 function.
19403 * gimplify.c (gimplify_call_expr): Notice special calls.
19404 (gimplify_modify_expr): Likewise.
19405 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19406 abnormal control flow receivers.
19407 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19408 in the same way as cfun->has_nonlocal_labels.
19409 (gimple_purge_dead_abnormal_call_edges): Likewise.
19410 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19411 receivers start a basic-block.
19412
01d8bf07
RB
194132013-04-19 Richard Biener <rguenther@suse.de>
19414
19415 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19416 member ...
19417 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19418 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19419 (SLP_TREE_LOAD_PERMUTATION): Add.
19420 (vect_transform_slp_perm_load): Adjust prototype.
19421 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19422 (vect_free_slp_instance): Likewise.
19423 (vect_create_new_slp_node): Likewise.
19424 (vect_supported_slp_permutation_p): Remove.
19425 (vect_slp_rearrange_stmts): Adjust.
19426 (vect_supported_load_permutation_p): Likewise. Inline
19427 vect_supported_slp_permutation_p here.
19428 (vect_analyze_slp_instance): Compute load permutations per
19429 slp node instead of per instance.
19430 (vect_get_slp_defs): Adjust.
19431 (vect_transform_slp_perm_load): Likewise.
19432 (vect_schedule_slp_instance): Remove redundant code.
19433 (vect_schedule_slp): Remove hack for PR56270, add it ...
19434 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19435 CSE loads for SLP. Adjust.
19436
ede22fc3
GY
194372013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19438
19439 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19440 spelling in two comments.
19441
67bc84fb
GY
194422013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19443
19444 PR target/56797
19445 * config/arm/arm.c (load_multiple_sequence): Require SP
19446 as base register for loads if SP is in the register list.
19447
e248d83f
MJ
194482013-04-19 Martin Jambor <mjambor@suse.cz>
19449
19450 PR tree-optimization/56718
19451 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19452 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19453 and made public. Adjusted all callers.
19454 (ipa_intraprocedural_devirtualization): New function.
19455 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19456 (ipa_intraprocedural_devirtualization): Likewise.
19457 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19458
4891e8f8
RB
194592013-04-19 Richard Biener <rguenther@suse.de>
19460
19461 PR tree-optimization/57000
19462 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19463
dad89f7c
TG
194642013-04-19 Terry Guo <terry.guo@arm.com>
19465
19466 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19467 Replace with ...
19468 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19469 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19470 (cortex_m4_fmacs): Use new reservations.
19471 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19472
72ea0d47
VM
194732013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19474
f1e6512c 19475 PR rtl-optimization/56999
72ea0d47
VM
19476 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19477 related code.
19478 (lra_coalesce): Remove split_origin_bitmap and related code.
19479 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19480 ranges if necessary.
19481
780a5b71
UB
194822013-04-18 Uros Bizjak <ubizjak@gmail.com>
19483
19484 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19485 New array.
19486 (ix86_expand_call): Remove clobbered_registers array and use
19487 x86_64_ms_sysv_extra_clobbered_registers instead.
19488 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19489 Declare here.
19490 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19491 predicate.
19492 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19493 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19494 (*call_value_rex64_ms_sysv): Ditto.
19495
6f5a366a
CC
194962013-04-18 Cary Coutant <ccoutant@google.com>
19497
19498 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19499 parent instead of die_mark.
19500
475b8f37
DN
195012013-04-18 Diego Novillo <dnovillo@google.com>
19502
19503 * gimple.c (create_gimple_tmp): New.
19504 (get_expr_type): New.
19505 (build_assign): New.
19506 (build_type_cast): New.
19507 * gimple.h (enum ssa_mode): Define.
19508 (gimple_seq_set_location): New.
19509 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19510 to use build_assign and build_type_cast.
475b8f37 19511
08940f33
RB
195122013-04-18 Richard Biener <rguenther@suse.de>
19513
19514 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19515 handle negative step. Remove redundant checks.
19516 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19517 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19518 for negative step and grouped loads fail to vectorize.
19519
0e0f87d4
SB
195202013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19521
19522 * emit-rtl.c (reset_insn_used_flags): New function.
19523 (reset_all_used_flags): Use it.
19524 (verify_insn_sharing): New function.
19525 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19526
4c445590
JJ
195272013-04-18 Jakub Jelinek <jakub@redhat.com>
19528
19529 PR tree-optimization/56984
19530 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19531 and (x >> M) >= N don't register any assertion if N << M is the
19532 minimum value.
19533
6873ecab
SB
195342013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19535
19536 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19537 do not delete_insn insns that have not yet been emitted, only
19538 unlink them with remove_insn.
19539 * df-scan.c (df_insn_delete): Revert r197492.
19540
3ccb989e
SB
195412013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19542
19543 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19544 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19545
195462013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19547
19548 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19549 define_insn_and_split.
19550 (and_scc,ior_scc,negscc): Likewise.
19551 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19552
3ccb989e 195532013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19554
19555 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19556 can benefit from using a sequence of LDRD instructions in epilogue
19557 instead of a single LDM instruction.
19558
6d10a203
MLI
195592013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19560
19561 PR 45688
19562 * doc/extend.texi: Fix typo.
19563
6983e6b5
RB
195642013-04-17 Richard Biener <rguenther@suse.de>
19565
19566 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19567 (vect_build_slp_tree): ... here.
19568 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19569 match. Remove special-casing of mismatched complex loads.
19570 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19571 re-try the match with swapped commutative operands.
19572 (vect_supported_load_permutation_p): Remove special-casing of
19573 mismatched complex loads.
19574 (vect_analyze_slp_instance): Adjust.
19575
ef23e6a2
RB
195762013-04-17 Richard Biener <rguenther@suse.de>
19577
19578 PR rtl-optimization/56921
19579 * cfgloop.h (struct loop): Add simple_loop_desc member.
19580 (struct niter_desc): Mark with GTY(()).
19581 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19582 * loop-iv.c (get_simple_loop_desc): Likewise.
19583 (free_simple_loop_desc): Likewise.
19584
19585 Revert
19586 2013-04-16 Richard Biener <rguenther@suse.de>
19587
19588 PR rtl-optimization/56921
19589 * loop-init.c (pass_rtl_move_loop_invariants): Add
19590 TODO_do_not_ggc_collect to todo_flags_finish.
19591 (pass_rtl_unswitch): Same.
19592 (pass_rtl_unroll_and_peel_loops): Same.
19593 (pass_rtl_doloop): Same.
19594
fc6f94f5
EB
195952013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19596
19597 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19598 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19599 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19600 references.
19601 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19602 * tree-streamer.c (record_common_node): Adjust reference in comment.
19603
10a88311
TG
196042013-04-17 Terry Guo <terry.guo@arm.com>
19605
19606 * config/arm/cortex-m4.md: Add a new bypass.
19607
6d9b7208 196082013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19609
19610 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19611 New pattern.
19612 (*subs_<optab><mode>_multp2): New pattern.
19613 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19614 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19615
6d9b7208 196162013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19617
19618 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19619 (*subs_mul_imm_<mode>): New pattern.
19620
18a6701e
DE
196212013-04-16 David Edelsohn <dje.gcc@gmail.com>
19622
19623 PR target/56948
19624 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19625 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19626 (vsx_movti_32bit): Change j->wa to O->wa.
19627
07c37b2f
RB
196282013-04-16 Richard Biener <rguenther@suse.de>
19629
19630 PR rtl-optimization/56921
19631 * loop-init.c (pass_rtl_move_loop_invariants): Add
19632 TODO_do_not_ggc_collect to todo_flags_finish.
19633 (pass_rtl_unswitch): Same.
19634 (pass_rtl_unroll_and_peel_loops): Same.
19635 (pass_rtl_doloop): Same.
19636
0e0f87d4 196372013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
19638
19639 * config/arm/arm.c (emit_multi_reg_push): New declaration
19640 for an existing function.
19641 (arm_emit_strd_push): New function.
19642 (arm_expand_prologue): Used here.
19643 (arm_emit_ldrd_pop): New function.
19644 (arm_expand_epilogue): Used here.
19645 (arm_get_frame_offsets): Update condition.
19646 (arm_emit_multi_reg_pop): Add a special case for load of a single
19647 register with writeback.
19648
5e8e2af4
UB
196492013-04-16 Uros Bizjak <ubizjak@gmail.com>
19650
19651 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19652 description.
19653
9fd9ccf7
RB
196542013-04-16 Richard Biener <rguenther@suse.de>
19655
19656 PR tree-optimization/56756
19657 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19658 (first_mem_ref_loc): New.
19659 (execute_sm): Place the load temporarily before a previous
19660 access instead of in the latch edge to ensure its SSA dependencies
19661 are defined at points dominating the load.
19662
96fba521
SB
196632013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19664
4c8af858
SB
19665 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19666 correct fix by moving header and footer insn to the footer of
19667 the merged basic block. Clear BB_END of the merged-away block.
19668
96fba521
SB
19669 PR middle-end/43631
19670 * emit-rtl.c (make_note_raw): New function.
19671 (link_insn_into_chain): New static inline function.
19672 (add_insn): Use it.
19673 (add_insn_before, add_insn_after): Factor insn chain linking code...
19674 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19675 using link_insn_into_chain.
19676 (note_outside_basic_block_p): New helper function for emit_note_after
19677 and emit_note_before.
19678 (emit_note_after): Use nobb variant of add_insn_after if the note
19679 should not be contained in a basic block.
19680 (emit_note_before): Use nobb variant of add_insn_before if the note
19681 should not be contained in a basic block.
19682 (emit_note_copy): Use make_note_raw.
19683 (emit_note): Likewise.
19684 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19685 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19686 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19687 the moved barrier the tail of the basic block it follows.
19688 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19689
7b8265ba
JJ
196902013-04-15 Jakub Jelinek <jakub@redhat.com>
19691
19692 PR tree-optimization/56962
19693 * gimple-ssa-strength-reduction.c (record_increment): Only set
19694 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19695 either rhs1 or rhs2 is equal to c->base_expr.
19696
5185d248
RB
196972013-04-15 Richard Biener <rguenther@suse.de>
19698
19699 PR tree-optimization/56933
19700 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19701 member.
19702 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19703 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19704 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19705 dependence check ...
19706 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
19707 ... here.
19708 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
19709 GROUP_READ_WRITE_DEPENDENCE.
19710
a24243a0
AK
197112013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19712
19713 * emit-rtl.c (reset_all_used_flags): New function.
19714 (verify_rtl_sharing): Call reset_all_used_flags before and after
19715 performing the checks.
19716
1c50eada
KT
197172013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19718
19719 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
19720 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
19721 * config/arm/constraints.md (De): New constraint.
19722 * config/arm/neon.md (anddi3_neon): Delete.
19723 (neon_vand<mode>): Expand to standard anddi3 pattern.
19724 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
19725 Move earlier in the file.
19726 (neon_inv_logic_op2): Likewise.
19727 (arm_anddi_operand_neon): New predicate.
19728
e927b6ad
RO
197292013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19730
19731 * configure.ac (gcc_cv_ld_as_needed): Set
19732 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
19733 Use -z ignore, -z record on *-*-solaris2*.
19734 (HAVE_LD_AS_NEEDED): Update comment.
19735 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
19736 * configure: Regenerate.
19737 * config.in: Regenerate.
19738 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
19739 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
19740 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
19741 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
19742 equivalents. Fix markup.
19743 * doc/tm.texi: Regenerate.
19744
e0ea8797
AH
197452013-04-15 Andrew Hsieh <andrewhsieh.google.com>
19746
19747 * config/i386/i386.opt: New option mstack-protector-guard=.
19748 * config/i386/i386-opts.h: Add enum stack_protector_guard.
19749 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
19750 TARGET_SSP_TLS_GUARD.
19751 * config/i386/i386.c (ix86_option_override_internal): Set
19752 ix86_stack_protector_guard.
19753 * config/i386/i386.md (stack_protect_set): Enable for
19754 TARGET_SSP_TLS_GUARD only.
19755 (stack_protect_set_<mode>): Ditto.
19756 (stack_protect_test): Ditto.
19757 (stack_protect_test_<mode>): Ditto.
19758 * doc/invoke.texi (i386 Option): Document.
19759
811b72f9
EB
197602013-04-15 Eric Botcazou <ebotcazou@adacore.com>
19761
19762 PR target/56890
19763 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
19764 (S_MODES): Set H_MODE bit.
19765 (SF_MODES): Set only S_MODE and SF_MODE bits.
19766 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
19767 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
19768 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
19769 <MODE_FLOAT>: Likewise.
19770
5529fdd6
JY
197712013-04-15 Joey Ye <joey.ye@arm.com>
19772
19773 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
19774
517b1da2
JY
197752013-04-15 Joey Ye <joey.ye@arm.com>
19776
19777 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
19778 for real far jump.
19779 (thumb_far_jump_used_p): Count instruction size and set
19780 far_jump_used.
19781
01007ae0
EB
197822013-04-14 Eric Botcazou <ebotcazou@adacore.com>
19783
19784 * reorg.c (fill_simple_delay_slots): Reindent block of code.
19785 * resource.c (mark_target_live_regs): Reformat conditional block.
19786
c46f6580
SB
197872013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19788
19789 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
19790 notes, they are emitted only just before final.
19791 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
19792
1f397f45
SB
197932013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19794
19795 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
19796 * cfgrtl.c (delete_insn): Call it here instead.
19797 * lra-spills.c (lra_final_code_change): Use delete_insn.
19798 * haifa-sched.c (sched_remove_insn): Likewise.
19799 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
19800 returning to the nop pool.
19801 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
19802 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
19803
58a51369
SB
198042013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19805
19806 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
19807 * doc/tm.texi: Regenerated.
19808
33159866
UB
198092013-04-12 Uros Bizjak <ubizjak@gmail.com>
19810
19811 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
19812 QImode checks.
19813
226e378f
SB
198142013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19815
19816 * df-core.c (df_find_def): Compare register numbers.
19817 (df_find_use): Likewise.
19818
fafb9b18
VM
198192013-04-12 Vladimir Makarov <vmakarov@redhat.com>
19820
19821 PR target/56903
19822 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
19823 lra_in_progress for return.
19824
9a946fd6
GY
198252013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19826
19827 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
19828 define_insn into define_insn_and_split and emit movsicc patterns.
19829
41b83758
GY
198302013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19831
19832 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
19833
d3afd9aa
RB
198342013-04-12 Richard Biener <rguenther@suse.de>
19835
19836 * tree-pass.h (TODO_do_not_ggc_collect): New.
19837 * passes.c (execute_one_ipa_transform_pass): Honor
19838 TODO_do_not_ggc_collect.
19839 (execute_one_pass): Likewise.
19840
19841 Revert
19842 2013-04-10 Richard Biener <rguenther@suse.de>
19843
19844 * passes.c (init_optimization_passes): Remove reload pass.
19845 * ira.c (do_reload): Merge into ...
19846 (ira): ... this.
19847 (rest_of_handle_reload): Remove.
19848 (pass_reload): Likewise.
19849 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19850 of reload for vzeroupper pass placement.
19851
06f9b387
JJ
198522013-04-12 Jakub Jelinek <jakub@redhat.com>
19853
19854 PR tree-optimization/56918
19855 PR tree-optimization/56920
19856 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
19857 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
19858 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
19859 use wide_mul_with_sign method.
19860
953094d2
RB
198612013-04-12 Richard Biener <rguenther@suse.de>
19862
19863 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
19864 not be considered a gimple constant.
19865
bb506982
MG
198662013-04-12 Marc Glisse <marc.glisse@inria.fr>
19867
19868 * fold-const.c (const_binop): Handle vector shifts by a scalar.
19869 (fold_binary_loc): Call const_binop also for mixed vector-scalar
19870 operations.
19871
4b84d650
JJ
198722013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
19873 Jakub Jelinek <jakub@redhat.com>
19874
19875 * opts.c: Include diagnostic-color.h.
19876 (common_handle_option): Handle OPT_fdiagnostics_color_.
19877 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
19878 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
19879 (diagnostic-color.o): New.
19880 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
19881 (diagnostic_color_rule): New enum.
19882 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
19883 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
19884 the location string.
19885 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
19886 either NULL, or color kind.
19887 * diagnostic-color.c: New file.
19888 * diagnostic-color.h: New file.
19889 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
19890 arguments.
19891 * doc/invoke.texi (-fdiagnostics-color): Document.
19892 * pretty-print.h (pp_show_color): Define.
19893 (struct pretty_print_info): Add show_color field.
19894 * diagnostic.c: Include diagnostic-color.h.
19895 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
19896 macros. Colorize error:, warning: etc. strings and also the location
19897 string.
19898 (diagnostic_show_locus): Colorize the caret line.
19899 * pretty-print.c: Include diagnostic-color.h.
19900 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
19901 inside of %< %> quotes or quoted through q format modifier.
19902
067a1e71
AK
199032013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19904
33159866 19905 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 19906
33159866 199072013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
19908
19909 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
19910 code in CC_NZ mode.
19911 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
19912 pattern.
19913
7b55f98f
MP
199142013-04-11 Marek Polacek <polacek@redhat.com>
19915
19916 PR tree-optimization/48184
33159866 19917 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 19918
966b587e
EB
199192013-04-11 Eric Botcazou <ebotcazou@adacore.com>
19920
19921 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
19922 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
19923 (skip_simple_arithmetic): Tidy up.
19924 * tree.h (skip_simple_constant_arithmetic): Declare.
19925
33159866 199262013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
19927
19928 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
19929
1d42c1ec
RB
199302013-04-11 Richard Biener <rguenther@suse.de>
19931
19932 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19933 generate vector constants.
19934
4ba5ea11
RB
199352013-04-11 Richard Biener <rguenther@suse.de>
19936
19937 PR tree-optimization/56878
19938 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
19939 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
19940 New function.
19941 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19942 Prefer to align the DR with the most invariant base address.
19943
f0defe58
SKS
199442013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19945
19946 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
19947 comment.
19948
d07458be
JG
199492013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19950
19951 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
19952 floating-point vector comparisons against 0.
19953
146b8692
JJ
199542013-04-11 Jakub Jelinek <jakub@redhat.com>
19955
19956 PR tree-optimization/56899
19957 * fold-const.c (extract_muldiv_1): Apply distributive law
19958 only if TYPE_OVERFLOW_WRAPS (ctype).
19959
b8578ff7
BC
199602013-04-11 Bin Cheng <bin.cheng@arm.com>
19961
19962 PR target/56124
19963 * ira-costs.c (scan_one_insn): Check whether the source rtx of
19964 loading has side effect.
19965
0ea8a6f9
SB
199662013-04-10 Steven Bosscher <steven@gcc.gnu.org>
19967
19968 * config/sparc/sparc.c: Include tree-pass.h.
19969 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
19970 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
19971 head of file. Change return type. Split off gate function.
19972 (sparc_gate_work_around_errata): New function.
19973 (pass_work_around_errata): New pass definition.
19974 (insert_pass_work_around_errata) New pass insert definition to
19975 insert pass_work_around_errata just after delayed-branch scheduling.
19976 (sparc_option_override): Insert the pass.
19977 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
19978
42e37616
DM
199792013-04-10 David S. Miller <davem@davemloft.net>
19980
89deeb3b
DM
19981 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
19982 or -mcpu=hypersparc.
19983
42e37616
DM
19984 * target.def (cstore_mode): New hook.
19985 * target.h: Include insn-codes.h
19986 * targhooks.c: Likewise.
19987 (default_cstore_mode): New function.
19988 * targhooks.h: Declare it.
19989 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
19990 * doc/tm.texi: Rebuild.
19991 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
19992 target hook, rather than inspecting the insn_data.
19993 * config/sparc/sparc.c (sparc_cstore_mode): New function.
19994 (TARGET_CSTORE_MODE): Redefine.
19995 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
19996 result patterns.
19997 * config/sparc/predicates.md (cstore_result_operand): New special
19998 predicate.
19999 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20000 Use it for operand 0.
20001 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20002 (*snesi_special): Likewise.
20003 (*snesi_zero): Likewise.
20004 (*seqsi_zero): Likewise.
20005 (*sltu_insn): Likewise.
20006 (*sgeu_insn): Likewise.
20007 (*seqdi_special): Make operand 0 and comparison operation be of
20008 DImode.
20009 (*snedi_special): Likewise.
20010 (*snedi_special_vis3): Likewise.
20011 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20012 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20013 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20014 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20015 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20016 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20017 (*sltu_extend_sp64): Likewise.
20018 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20019 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20020 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20021 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20022 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20023
95ca411e
YZ
200242013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20025
20026 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20027 (aarch64_start_file): Use the new function.
20028
6782438d 200292013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20030 Jason Merrill <jason@redhat.com>
6782438d
SKS
20031
20032 * common.opt: Add -gdwarf.
20033 * opts.c (common_handle_option): Handle it.
20034 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20035
bb313b93
RB
200362013-04-10 Richard Biener <rguenther@suse.de>
20037
20038 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20039 (execute_one_ipa_transform_pass): But unconditionally here.
20040 (execute_one_pass): And here.
20041 (init_optimization_passes): Remove reload pass.
20042 * tree-pass.h (TODO_ggc_collect): Remove.
20043 (pass_reload): Likewise.
20044 * ira.c (do_reload): Merge into ...
20045 (ira): ... this.
20046 (rest_of_handle_reload): Remove.
20047 (pass_reload): Likewise.
20048 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20049 of reload for vzeroupper pass placement.
20050 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20051 and todo_flags_finish of all passes.
20052
793d9a16
RB
200532013-04-10 Richard Biener <rguenther@suse.de>
20054
20055 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20056 first_const_oprnd field, rename first_def_type to first_op_type.
20057 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20058 (vect_get_and_check_slp_defs): Always use the type of the
20059 operand. Allow mixed vect_external_def, vect_constant_def types.
20060 (vect_get_constant_vectors): Handle mixed vect_external_def,
20061 vect_constant_def types.
20062
12211b99 200632013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20064
20065 PR tree-optimization/55524
20066 * tree-ssa-math-opts.c
20067 (convert_mult_to_fma): Don't use an fms construct
20068 when we don't have an fms operation, but fnma, and it looks
20069 likely that we'll be able to use the latter.
20070
12211b99 200712013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20072
20073 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20074 function.
20075 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20076 inline fail caused by overwritable functions.
20077
34ab4a5b
CJW
200782013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20079
20080 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20081 unnecessary bits in the constant power of two case.
20082
abf9bfbc
RB
200832013-04-10 Richard Biener <rguenther@suse.de>
20084
20085 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20086 broken code swapping operands.
20087 (vect_build_slp_tree): Do not compute load permutations here.
20088 (vect_analyze_slp_instance): Compute load permutations here,
20089 after building the SLP tree.
20090
f408477e
CB
200912013-04-09 Christian Bruel <christian.bruel@st.com>
20092
20093 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20094 of next/prev_real_insn.
20095
5ac42672
JH
200962013-04-09 Jan Hubicka <jh@suse.cz>
20097
abf9bfbc
RB
20098 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20099 Drop aliased parameter.
5ac42672
JH
20100 (function_and_variable_visibility): Do not handle alias pairs.
20101 * cgraph.c (varpool_externally_visible_p): Update prototype.
20102 * varpool.c (varpool_add_new_variable): Update.
20103
5017f1d2
KT
201042013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20105
20106 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20107
48eecbee
SB
201082013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20109
a949cf1c
SB
20110 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20111
48eecbee
SB
20112 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20113
75ef8e3d
MP
201142013-04-09 Marek Polacek <polacek@redhat.com>
20115
20116 PR tree-optimization/48762
33159866 20117 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20118
23847df4
RB
201192013-04-09 Richard Biener <rguenther@suse.de>
20120
20121 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20122 dealing with cost.
20123 (vect_build_slp_tree): Likewise.
20124 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20125 calculating the cost of a SLP instance.
20126 (vect_analyze_slp_instance): Use it from here, after building
20127 the SLP tree.
20128
ea3a0fde
JJ
201292013-04-09 Jakub Jelinek <jakub@redhat.com>
20130
20131 PR middle-end/56883
20132 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20133 expand_omp_for_static_chunk): Use simple_p = true in
20134 force_gimple_operand_gsi calls when assigning to addressable decls.
20135
a32dfe9d
JL
201362013-04-09 Jeff Law <law@redhat.com>
20137
20138 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20139 when the boolean was created by converting a wider object which
20140 had a boolean range.
20141
d755c7ef
RB
201422013-04-09 Richard Biener <rguenther@suse.de>
20143
20144 * tree-vectorizer.h (slp_void_p): Remove.
20145 (slp_tree): Typedef before _slp_tree declaration.
20146 (struct _slp_tree): Use a vector of slp_tree as children.
20147 (vect_get_place_in_interleaving_chain): Remove.
20148 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20149 Move ...
20150 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20151 and make static.
20152 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20153 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20154 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20155 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20156 Use slp_node instead of slp_void_p and adjust.
20157
3d741091
RB
201582013-04-09 Richard Biener <rguenther@suse.de>
20159
20160 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20161 work that is not necessary.
20162
39307ba7
JJ
201632013-04-09 Jakub Jelinek <jakub@redhat.com>
20164
20165 PR tree-optimization/56854
20166 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20167 forward into clobber stmts if it would change MEM_REF lhs into
20168 non-MEM_REF.
20169
343881fd
MK
201702013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20171
20172 * tree.c (type_hash_lookup, type_hash_add): Make static.
20173 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20174
3922658a
RB
201752013-04-09 Richard Biener <rguenther@suse.de>
20176
20177 * tree.h (unsave_expr_now): Remove.
20178 * tree-inline.c (mark_local_for_remap_r): Remove.
20179 (unsave_expr_1): Likewise.
20180 (unsave_r): Likewise.
20181 (unsave_expr_now): Likewise.
20182 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20183 (propagate_tree_value): Likewise.
20184
9fb6b620
SB
201852013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20186
20187 * doc/rtl.texi (sequence): Rewrite documentation to match the
20188 current use of SEQUENCE rtl objects.
20189 * rtl.def (SEQUENCE): Likewise.
20190
20191 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20192 Update documentation.
20193 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20194 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20195
20196 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20197
8ddb5a29
TJ
201982013-04-08 Teresa Johnson <tejohnson@google.com>
20199
20200 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20201 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20202 methods.
8ddb5a29
TJ
20203 (estimate_edge_size_and_time): Add comment to suggest using rounding
20204 methods.
20205 (estimate_node_size_and_time): Ditto.
20206 (remap_edge_change_prob): Use helper rounding divide methods.
20207 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20208 (gimple_mod_pow2_value_transform): Ditto.
20209 (gimple_mod_subtract_transform): Ditto.
20210 (gimple_ic_transform): Ditto.
20211 (gimple_stringops_transform): Ditto.
20212 * stmt.c (conditional_probability): Ditto.
20213 (emit_case_dispatch_table): Ditto.
20214 * lto-cgraph.c (merge_profile_summaries): Ditto.
20215 * tree-optimize.c (execute_fixup_cfg): Ditto.
20216 * cfgcleanup.c (try_forward_edges): Ditto.
20217 * cfgloopmanip.c (scale_loop_profile): Ditto.
20218 (loopify): Ditto.
20219 (duplicate_loop_to_header_edge): Ditto.
20220 (lv_adjust_loop_entry_edge): Ditto.
20221 * tree-vect-loop.c (vect_transform_loop): Ditto.
20222 * profile.c (compute_branch_probabilities): Ditto.
20223 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20224 * lto-streamer-in.c (input_cfg): Ditto.
20225 * gimple-streamer-in.c (input_bb): Ditto.
20226 * ipa-cp.c (update_profiling_info): Ditto.
20227 (update_specialized_profile): Ditto.
20228 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20229 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20230 rounding methods.
8ddb5a29
TJ
20231 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20232 (compute_trg_info): Ditto.
20233 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20234 (purge_dead_edges): Ditto.
20235 * loop-unswitch.c (unswitch_loop): Ditto.
20236 * cgraphclones.c (cgraph_clone_edge): Ditto.
20237 (cgraph_clone_node): Ditto.
20238 * tree-inline.c (copy_bb): Ditto.
20239 (copy_edges_for_bb): Ditto.
20240 (initialize_cfun): Ditto.
20241 (copy_cfg_body): Ditto.
20242 (expand_call_inline): Ditto.
20243
661e6bd7
KT
202442013-04-08 Kai Tietz <ktietz@redhat.com>
20245
20246 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20247 TARGET_CYGWIN64 by TARGET_64BIT.
20248
105766f3
JR
202492013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20250
20251 * config/epiphany/epiphany.md (GPR_1): New constant.
20252 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20253 * config/epiphany/epiphany.c (gen_compare_reg):
20254 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20255 is already in place.
20256 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20257 Don't require being called during rtl expansion; If y operlaps r0,
20258 return 0.
20259 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20260 (epiphany_expand_epilogue): Likewise.
20261
8afab237
JR
20262 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20263 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20264 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20265
fa7707d6
JR
20266 * config/epiphany/constraints.md (CnL): New constraint.
20267 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20268 * config/epiphany/predicates.md (add_operand): Allow 1024.
20269
5138e18d
JR
20270 * config/epiphany/epiphany.md (logical_op): New code iterator.
20271 (op_mnc): New code attribute.
20272 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20273 (mov_f+1, mov_f+2): New peephole2 patterns.
20274
2ccc703d
JR
20275 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20276 (cstoresi4): Also allow re-use of zero result when doing a NE
20277 comparison to a non-zero operand.
aefb0819 20278 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20279
093ac0a5
JR
20280 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20281 Use gen_addsi3_i / gen_subsi3_i.
20282
f223bb13
JJ
202832013-04-08 Jakub Jelinek <jakub@redhat.com>
20284
20285 PR c++/34949
20286 PR c++/50243
20287 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20288 contain anything but clobbers, at most one __builtin_stack_restore,
20289 optionally debug stmts and final resx, and if it has at least one
20290 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20291 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20292 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20293 which isn't defaut definition, remove them.
20294 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20295 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20296 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20297 with MEM_REF LHS with SSA_NAME address.
20298
4481581f
JL
202992013-04-08 Jeff Law <law@redhat.com>
20300
20301 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20302
451dabda
RB
203032013-04-08 Richard Biener <rguenther@suse.de>
20304
20305 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20306 extra newline.
20307 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20308 determined vector type.
20309 (vect_analyze_data_refs): Likewise.
20310 (vect_get_new_vect_var): Adjust.
20311 (vect_create_destination_var): Preserve SSA name versions.
20312 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20313 not dump anything here.
20314
3b088b47
JR
203152013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20316
20317 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20318 Add member lr_slot_known.
20319 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20320 if necessary.
20321 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20322 Remove code that sets lr_slot_offset according to what a previous
20323 version of epiphany_emit_save_restore used to do.
20324 (epiphany_emit_save_restore): When doing an lr save or restore,
20325 set/verify lr_slot_known and lr_slot_offset.
20326
d8484d41
XQ
203272013-04-08 Xinyu Qi <xyqi@marvell.com>
20328
33159866
UB
20329 PR target/54338
20330 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20331 in ALL_REGS.
20332
481be1c4
RB
203332013-04-08 Richard Biener <rguenther@suse.de>
20334
20335 * alias.c (find_base_term): Fix thinko in previous change.
20336
401f3a81
JJ
203372013-04-08 Jakub Jelinek <jakub@redhat.com>
20338
20339 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20340 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20341 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20342 if possible to compute val.
20343 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20344 For QImode integers don't require anything about precision. Use
20345 const_with_all_bytes_same to find out if the constant doesn't have
20346 repeated bytes in it.
20347
03ed99a8
AK
203482013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20349
20350 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20351 within mode size.
20352
781b2e62
MP
203532013-04-08 Marek Polacek <polacek@redhat.com>
20354
20355 PR rtl-optimization/48182
20356 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20357 value to 1.
20358
27e430a2
JDA
203592013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20360
20361 PR target/55487
20362 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20363 nuses, make sure we have a label.
20364
4902aa64
BS
203652013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20366
20367 PR target/56843
20368 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20369 (rs6000_emit_swdiv_low_precision): Remove.
20370 (rs6000_emit_swdiv): Rewrite to handle between one and four
20371 iterations of Newton-Raphson generally; modify required number of
20372 iterations for some cases.
20373 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20374
7bca81dc
SB
203752013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20376
20377 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20378 set-but-unused variable.
20379
20380 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20381 basic blocks of released function bodies garbage-collectable.
20382
20383 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20384 (struct rtl_opt_pass): Add TODO_df_finish.
20385
20386 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20387
4542a38a
GY
203882013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20389
20390 * config/arm/constraints.md (q): New constraint.
20391 * config/arm/ldrdstrd.md: New file.
20392 * config/arm/arm.md (ldrdstrd.md) New include.
20393 (arm_movdi): Use "q" instead of "r" constraint
20394 for double-word memory access.
20395 (movdf_soft_insn): Likewise.
20396 * config/arm/vfp.md (movdi_vfp): Likewise.
20397 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20398 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20399 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20400 (mem_ok_for_ldrd_strd): Likewise.
20401 (output_move_double): Update assertion.
20402
2385b218
GY
204032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20404
20405 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20406
75fe1cb5
GY
204072013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20408
20409 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20410 define_insn_and_split.
20411 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20412
dd660e8e
GY
204132013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20414
20415 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20416 define_insn_and_split.
33159866 20417 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20418 (shiftsi3_compare): New pattern.
20419 (rrx): New pattern.
20420 * config/arm/unspecs.md (UNSPEC_RRX): New.
20421
045e472c
GY
204222013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20423
20424 * config/arm/arm.md (negdi_extendsidi): New pattern.
20425 (negdi_zero_extendsidi): Likewise.
20426
3f3bf1a8
GY
204272013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20428
20429 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20430 define_insn_and_split.
20431 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20432 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20433
b0b49556
GY
204342013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20435
20436 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20437 define_insn_and_split.
20438 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20439 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20440
d633dd84
GY
204412013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20442
20443 * config/arm/arm.md (subsi3_carryin): New pattern.
20444 (subsi3_carryin_const): Likewise.
20445 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20446 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20447
f4499066
GY
204482013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20449
20450 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20451
ceef6fd9
GY
204522013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20453
20454 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20455 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20456
ddbdd8a7
KT
204572013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20458
20459 * config/arm/arm.c (arm_expand_builtin): Change fcode
20460 type to unsigned int.
20461
8456d78a
RR
204622013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20463
20464 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20465
526c230f
ILT
204662013-04-04 Ian Lance Taylor <iant@google.com>
20467
33159866
UB
20468 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20469 language standard.
526c230f 20470
3cfbe04d
SB
204712013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20472
20473 PR middle-end/56729
20474 * df-scan.c (df_insn_delete): Disable failing assert.
20475
dfa3f8d0
KT
204762013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20477
20478 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20479 New function prototype.
20480 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20481 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20482 (arm_builtin_vectorized_function): New function.
20483
f7837758
KT
204842013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20485
20486 * config/arm/arm_neon_builtins.def: New file.
20487 * config/arm/arm.c (neon_builtin_data): Move contents to
20488 arm_neon_builtins.def.
20489 (enum arm_builtins): Include neon builtin definitions.
20490 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20491 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20492
39c1b6db
MP
204932013-04-04 Marek Polacek <polacek@redhat.com>
20494
20495 PR tree-optimization/48186
20496 * predict.c (maybe_hot_frequency_p): Return false if
20497 HOT_BB_FREQUENCY_FRACTION is 0.
20498 (cgraph_maybe_hot_edge_p): Likewise.
20499
314f64eb
RB
205002013-04-04 Richard Biener <rguenther@suse.de>
20501
20502 PR tree-optimization/56826
20503 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20504 more accurately.
20505
51a905b2
RB
205062013-04-04 Richard Biener <rguenther@suse.de>
20507
20508 PR tree-optimization/56213
20509 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20510 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20511
f1bf4f3a
RB
205122013-04-04 Richard Biener <rguenther@suse.de>
20513
20514 PR tree-optimization/56837
20515 * tree-loop-distribution.c (classify_partition): For non-zero
20516 values require that the value has the same precision as its
20517 mode to be useful as memset value.
20518
0bca7ded
NC
205192013-04-03 Nick Clifton <nickc@redhat.com>
20520
33159866 20521 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20522 (fmssf4): Use fmsf.s on E3V5 architectures.
20523 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20524 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20525
b4019227
JL
205262013-04-03 Jeff Law <law@redhat.com>
20527
20528 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20529 (lra-eliminations.o): Likewise.
20530
f57ddb5b
TJ
205312013-04-03 Teresa Johnson <tejohnson@google.com>
20532
20533 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20534 compute_working_sets here from profile.c.
f57ddb5b 20535 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20536 (gcov_working_set_t): Moved typedef here from basic-block.h
20537 (compute_working_set): Declare.
f57ddb5b
TJ
20538 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20539 (get_working_sets): Renamed from compute_working_set,
33159866 20540 replace most of body with call to new compute_working_sets.
f57ddb5b 20541 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20542 to get_working_sets.
20543 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20544 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20545 to get_working_sets.
f57ddb5b
TJ
20546 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20547 * gcov-dump.c (dump_working_sets): New function.
20548
12211b99 205492013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20550
20551 * hwint.c (sext_hwi, zext_hwi): New functions.
20552 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20553 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20554 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20555 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20556 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20557 (sext_hwi, zext_hwi): New functions.
0bca7ded 20558
be672e08
JL
205592013-04-03 Jeff Law <law@redhat.com>
20560
20561 PR tree-optimization/56799
33159866
UB
20562 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20563 back test for widening conversion erroneously dropped in prior change.
be672e08 20564
9d821fa5
KT
205652013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20566
20567 PR target/56809
20568 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20569 instead of next_real_insn.
20570
71c581e7
MP
205712013-04-03 Marek Polacek <polacek@redhat.com>
20572
20573 PR sanitizer/55702
33159866 20574 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20575
4a32ef80
KT
205762013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20577
20578 PR target/56809
20579 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20580 next_real_insn.
20581 (thumb1_output_casesi): Likewise.
20582 (thumb2_output_casesi): Likewise.
20583
1b2253d4
RB
205842013-04-03 Richard Biener <rguenther@suse.de>
20585
20586 PR tree-optimization/56817
20587 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20588 Split out ...
20589 (tree_unroll_loops_completely_1): ... new function to manually
20590 walk the loop tree, properly defering outer loops of unrolled
20591 loops to later iterations.
20592
38000232
MG
205932013-04-03 Marc Glisse <marc.glisse@inria.fr>
20594
20595 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20596 (vectorizable_load): Likewise.
20597 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20598 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20599
3fa35298
MG
206002013-04-03 Marc Glisse <marc.glisse@inria.fr>
20601
20602 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20603 BIT_FIELD_REF.
20604
b3d45ff0
UW
206052013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20606
20607 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20608
ec9202a8
BC
206092013-04-03 Bin Cheng <bin.cheng@arm.com>
20610
20611 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20612
6805bd36
MG
206132013-04-03 Marc Glisse <marc.glisse@inria.fr>
20614
20615 PR tree-optimization/56790
33159866
UB
20616 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20617 folding.
6805bd36 20618
da694a77
MG
206192013-04-03 Marc Glisse <marc.glisse@inria.fr>
20620
20621 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20622 Handle VEC_MERGE.
20623 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20624 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20625 equal arguments.
20626
4e7d7b3d
JJ
206272013-04-03 Jakub Jelinek <jakub@redhat.com>
20628
20629 PR c/19449
20630 * tree.h (force_folding_builtin_constant_p): New decl.
20631 * builtins.c (force_folding_builtin_constant_p): New variable.
20632 (fold_builtin_constant_p): Fold immediately also if
20633 force_folding_builtin_constant_p.
20634
e6c9d234
RB
206352013-04-03 Richard Biener <rguenther@suse.de>
20636
20637 PR tree-optimization/56812
20638 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20639 DRs of the same interleaving chain are independent.
20640
984d07dd
JM
206412013-04-02 Jason Merrill <jason@redhat.com>
20642
20643 * gdbinit.in (pbb): Use debug fn.
20644
622849c9
LC
206452013-04-02 Lawrence Crowl <crowl@google.com>
20646
20647 * sese.h (struct ivtype_map_elt_s): Remove unused.
20648 (extern debug_ivtype_map): Remove unused.
20649 (extern eq_ivtype_map_elts): Remove unused.
20650 * sese.c (debug_ivtype_map): Removed unused.
20651 (debug_ivtype_map_1): Removed unused.
20652 (debug_ivtype_elt): Remove unused.
20653 (eq_ivtype_map_elts): Remove unused.
20654
20655
82c0e1a0
KT
206562013-04-02 Kai Tietz <ktietz@redhat.com>
20657
20658 PR target/52790
20659 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20660 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
20661 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20662 function.
82c0e1a0
KT
20663 (legitimize_pe_coff_symbol): Likewise.
20664 (is_imported_p): New helper-function.
20665 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20666 for Windows x64 targets.
20667 (ix86_expand_prologue): Optimize for pe-coff targets.
20668 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20669 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20670 medium/large code-model.
20671 (legitimize_pic_address): Likewise.
20672 (legitimize_tls_address): Likewise.
20673 (ix86_expand_call): Likewise.
20674 (x86_output_mi_thunk): Likewise.
20675 (get_dllimport_decl): Add new beimport argument.
20676 (construct_plt_address): Don't assert for x64 pe-coff targets.
20677 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20678 targets.
20679 (SYMBOL_FLAG_STUBVAR): New macro.
20680 (SYMBOL_REF_STUBVAR_P): Likewise.
20681 * config/i386/winnt.c (stub_list): New structure.
20682 (stub_head): New local variable.
20683 (i386_pe_record_stub): New function.
20684 (i386_pe_file_end): Emit refptr-stubs.
20685
5d751b0c
JJ
206862013-04-02 Jakub Jelinek <jakub@redhat.com>
20687
09bb4c99
JJ
20688 PR rtl-optimization/56745
20689 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20690 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20691
a1d8947a
JJ
20692 PR c++/34949
20693 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20694 and both of them are MEM_REFs, just compare first argument for
20695 equality and attempt to deal even with differing offsets.
20696
5d751b0c
JJ
20697 PR c++/34949
20698 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20699 of gimple_clobber_p to be MEM_REF.
20700 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20701 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20702 after gimplification.
20703 * asan.c (get_mem_ref_of_assignment): Don't instrument
20704 gimple_clobber_p stmts.
20705 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
20706 gimple_clobber_p stmt if they have MEM_REF lhs and
20707 are dead because of another gimple_clobber_p stmt.
20708 * tree-ssa-live.c (clear_unused_block_pointer): Treat
20709 gimple_clobber_p stmts like debug stmts.
20710 (remove_unused_locals): Remove clobbers with MEM_REF lhs
20711 that refer to unused VAR_DECLs or uninitialized values.
20712 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
20713 gimple_clobber_p stmts if they refer to removed parameters.
20714 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
20715 formatting.
20716
e594716a
UB
207172013-04-02 Uros Bizjak <ubizjak@gmail.com>
20718
20719 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
20720 using SWI48 mode attribute.
20721
7a80735b
WM
207222013-04-02 Wei Mi <wmi@google.com>
20723
20724 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
20725 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
20726 *<rotate_insn><mode>3_mask in i386.md.
20727
f423a9e4
AI
207282013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
20729
20730 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
20731
90eb75f2
RB
207322013-04-02 Richard Biener <rguenther@suse.de>
20733
20734 PR tree-optimization/56778
20735 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20736 Runtime alias tests are not supported for gather loads.
20737 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
20738 stmts referenced from SSA operands before updating SSA form.
20739
d8c69a92
IC
207402013-04-02 Ian Caulfield <ian.caulfield@arm.com>
20741 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20742
20743 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
20744 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
20745 * config/arm/cortex-a53.md: New file.
20746 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
20747 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
20748 * config/arm/arm.c (arm_issue_rate): Likewise.
20749 * config/arm/arm-tune.md: Regenerate
20750 * config/arm/arm-tables.opt: Regenerate.
20751 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 20752
239eb04c
ZC
207532013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
20754
20755 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
20756 non-static link.
20757
c902d3c8
SN
207582013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20759
d8c69a92
IC
20760 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
20761 scalar load/store operations using B/H registers.
c902d3c8
SN
20762 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
20763
051d0e2f
SN
207642013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20765
20766 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
20767 scalar move.
20768 * config/aarch64/aarch64.c
20769 (aarch64_simd_scalar_immediate_valid_for_move): New.
20770 * config/aarch64/aarch64-protos.h
20771 (aarch64_simd_scalar_immediate_valid_for_move): New.
20772 * config/aarch64/constraints.md (Dh, Dq): New.
20773 * config/aarch64/iterators.md (hq): New.
20774
0ee1e3d9
EB
207752013-04-02 Eric Botcazou <ebotcazou@adacore.com>
20776
20777 * reorg.c (get_branch_condition): Deal with conditional returns.
20778 (fill_simple_delay_slots): Remove dead code dealing with jumps.
20779
136fb3f7
WM
207802013-04-01 Wei Mi <wmi@google.com>
20781
20782 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
20783 Truncate operand 2 using %b asm operand modifier.
20784 (*<shift_insn><mode>3_mask): Ditto.
20785 (*<rotate_insn><mode>3_mask): Ditto.
20786
6388c738
SB
207872013-04-01 Steven Bosscher <steven@gcc.gnu.org>
20788
20789 PR middle-end/56798
20790 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
20791
f7a4d826
KK
207922013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
20793
20794 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
20795 of next_real_insn.
20796 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
20797
4b943a49
LC
207982013-03-30 Lawrence Crowl <crowl@google.com>
20799
20800 * dse.c (clear_alias_sets): Remove never set.
20801 (disqualified_clear_alias_sets): Remove never set.
20802 (clear_alias_mode_pool): Remove never set.
20803 (dse_step0): Remove condition that is never true.
20804 (canon_address): Remove condition that is never true.
20805 (dse_step7): Remove condition that is never true.
20806 (rest_of_handle_dse): Remove condition that is never true.
20807 (rest_of_handle_dse::did_global): Remove never read from above.
20808 (dse_step2_spill): Remove never called from above.
20809 (dse_step5_spill): Remove never called from above.
20810
39718607
SB
208112013-03-30 Steven Bosscher <steven@gcc.gnu.org>
20812
da5c6bde
SB
20813 * doc/md.texi (Standard Names) <casesi>: Update documentation for
20814 JUMP_TABLE_DATA changes.
20815 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
20816 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
20817 (Insns) <jump_table_data>: New entry.
20818 * doc/tm.texi: Regenerate.
20819
39718607
SB
20820 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
20821
20822 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
20823 for table jump at the end of a basic block using tablejump_p.
20824 * targhooks.c (default_invalid_within_doloop): Likewise.
20825 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
20826 target hook implementation that is identical to the default hook.
20827 (rs6000_invalid_within_doloop): Remove.
20828
20829 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
20830 unused variable from tablejump_p call.
20831
20832 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
20833 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
20834 (INSN_DELETED_P): Likewise.
20835 (emit_jump_table_data): New prototype.
20836 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
20837 after 4th as unused.
20838 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
20839 * sched-vis.c (print_insn): Likewise.
20840 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
20841 insn for compatibility with back ends that use next_active_insn to
20842 identify jump table data.
20843 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
20844 (remove_insn): Likewise.
20845 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
20846 to be emitted.
20847 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
20848 (emit_jump_table_data): New function.
20849
20850 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
20851 basic block, a JUMP_TABLE_DATA never is.
20852 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
20853 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
20854 off from code handling real insns.
20855 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
20856 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
20857 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
20858 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
20859 is not a NONDEBUG_INSN_P.
20860 * ira-costs.c (scan_one_insn): Likewise.
20861 * jump.c (mark_all_labels): Likewise.
20862 (mark_jump_label_1): Likewise.
20863 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20864 * lra.c (get_insn_freq): Expect all insns reaching here to be in
20865 a basic block.
20866 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
20867 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
20868 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
20869 JUMP_TABLE_DATA_P insns.
20870 (calculate_elim_costs_all_insns): Likewise.
20871 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
20872 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
20873 (delete_output_reload): Code style fixups.
20874 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
20875 insn flags on this non-insn.
20876 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
20877 as scheduling barriers, for pre-change compatibility.
20878 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
20879 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
20880
20881 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
20882 redundant JUMP_TABLE_DATA_P test.
20883 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
20884 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20885 (frv_for_each_packet): Likewise.
20886 * config/i386/i386.c (min_insn_size): Likewise.
20887 (ix86_avoid_jump_mispredicts): Likewise.
20888 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20889 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
20890 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20891 (mips16_insn_length): Robustify.
20892 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
20893 (mips16_split_long_branches): Likewise.
20894 * config/pa/pa.c (pa_combine_instructions): Likewise.
20895 * config/rs6000/rs6000.c (get_next_active_insn): Treat
20896 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
20897 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
20898 as contributing to pool range lengths.
20899 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
20900 Remove redundant JUMP_TABLE_DATA_P test.
20901 (sh_loop_align): Likewise.
20902 (split_branches): Likewise.
20903 (sh_insn_length_adjustment): Likewise.
20904 * config/spu/spu.c (get_branch_target): Likewise.
20905
0208f7da
JH
209062013-03-29 Jan Hubicka <jh@suse.cz>
20907
20908 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
20909 gcov streaming; stream hot bb threshold to ltrans.
20910 * predict.c (get_hot_bb_threshold): Break out from ....
20911 (maybe_hot_count_p): ... here.
20912 (set_hot_bb_threshold): New function.
20913 * lto-section-in.c (lto_section_name): Add profile.
20914 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
20915 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
20916 and data-streamer.h
20917 (histogram_entry): New structure.
20918 (histogram, histogram_pool): New global vars.
20919 (histogram_hash): New structure.
20920 (histogram_hash::hash): New method.
20921 (histogram_hash::equal): Likewise.
20922 (account_time_size): New function.
20923 (cmp_counts): New function.
20924 (dump_histogram): New function.
20925 (ipa_profile_generate_summary): New function.
20926 (ipa_profile_write_summary): New function.
20927 (ipa_profile_read_summary): New function.
20928 (ipa_profile): Decide on threshold.
e594716a
UB
20929 (pass_ipa_profile): Add ipa_profile_write_summary and
20930 ipa_profile_read_summary.
0208f7da
JH
20931 * Makefile.in (ipa.o): Update dependencies.
20932 * lto-streamer.h (LTO_section_ipa_profile): New section.
20933
5a6ccc94
GDR
209342013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
20935
20936 * tree.h (VAR_P): New.
20937
39385fa6
PC
209382013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
20939
20940 PR lto/56777
20941 * doc/invoke.texi ([-fwhole-program]): Fix typo.
20942
34f0d87a
SB
209432013-03-29 Steven Bosscher <steven@gcc.gnu.org>
20944
20945 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
20946 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20947 (control_flow_insn_p): Likewise.
20948 * cfgrtl.c (duplicate_insn_chain): Likewise.
20949 * final.c (get_attr_length_1): Likewise.
20950 (shorten_branches): Likewise.
20951 (final_scan_insn): Likewise.
20952 * function.c (instantiate_virtual_regs): Likewise.
20953 * gcse.c (insert_insn_end_basic_block): Likewise.
20954 * ira-costs.c (scan_one_insn): Likewise.
20955 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20956 * lra.c (check_rtl): Likewise.
20957 * reload1.c (elimination_costs_in_insn): Likewise.
20958 * reorg.c (follow_jumps): Likewise.
20959
20960 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
20961 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20962 (thumb_far_jump_used_p): Likewise.
20963 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
20964 (workaround_speculation): Likewise.
20965 (add_sched_insns_for_speculation): Likewise.
20966 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
20967 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20968 (frv_for_each_packet): Likewise.
20969 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
20970 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
20971 (final_emit_insn_group_barriers): Likewise.
20972 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20973 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20974 (mips16_insn_length): Likewise.
20975 * config/pa/pa.c (pa_reorg): Likewise.
20976 (pa_combine_instructions): Likewise.
20977 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
20978 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
20979 (sh_reorg): Likewise.
20980 (split_branches): Likewise.
20981 * config/spu/spu.c (get_branch_target): Likewise.
20982
20983 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
20984 JUMP_TABLE_DATA_P.
20985
4ac761b0
KY
209862013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
20987
39385fa6 20988 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
20989 Fix declaration name.
20990
58a49189
LC
209912013-03-28 Lawrence Crowl <crowl@google.com>
20992
20993 * graphds.h (struct graph.indicies): Remove unused.
20994 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
20995 (SCOP_ORIGINAL_PDDRS): Remove unused.
20996 * sese.h (extern insert_loop_close_phis): Removed unused.
20997 (extern insert_guard_phis): Removed unused.
20998 (extern ivtype_map_elt_info): Removed unused.
20999 (new_ivtype_map_elt): Removed unused.
21000 * sese.c (ivtype_map_elt_info): Removed unused.
21001
7b3b6ae4
LC
210022013-03-28 Lawrence Crowl <crowl@google.com>
21003
21004 * Makefile.in: Add several missing include dependences.
21005 (DUMPFILE_H): New.
21006 (test-dump.o): New. This object is not added to any executable,
21007 but is present for ad-hoc testing.
21008 * bitmap.c
21009 (debug (const bitmap_head_def &)): New.
21010 (debug (const bitmap_head_def *)): New.
21011 * bitmap.h
21012 (extern debug (const bitmap_head_def &)): New.
21013 (extern debug (const bitmap_head_def *)): New.
21014 * cfg.c
21015 (debug (edge_def &)): New.
21016 (debug (edge_def *)): New.
21017 * cfghooks.c
21018 (debug (basic_block_def &)): New.
21019 (debug (basic_block_def *)): New.
21020 * dumpfile.h
21021 (dump_node (const_tree, int, FILE *)): Correct source file.
21022 * dwarf2out.c
21023 (debug (die_struct &)): New.
21024 (debug (die_struct *)): New.
21025 * dwarf2out.h
21026 (extern debug (die_struct &)): New.
21027 (extern debug (die_struct *)): New.
21028 * gimple-pretty-print.c
21029 (debug (gimple_statement_d &)): New.
21030 (debug (gimple_statement_d *)): New.
21031 * gimple-pretty-print.h
21032 (extern debug (gimple_statement_d &)): New.
21033 (extern debug (gimple_statement_d *)): New.
21034 * ira-build.c
21035 (debug (ira_allocno_copy &)): New.
21036 (debug (ira_allocno_copy *)): New.
21037 (debug (ira_allocno &)): New.
21038 (debug (ira_allocno *)): New.
21039 * ira-int.h
21040 (extern debug (ira_allocno_copy &)): New.
21041 (extern debug (ira_allocno_copy *)): New.
21042 (extern debug (ira_allocno &)): New.
21043 (extern debug (ira_allocno *)): New.
21044 * ira-lives.c
21045 (debug (live_range &)): New.
21046 (debug (live_range *)): New.
21047 * lra-int.h
21048 (debug (lra_live_range &)): New.
21049 (debug (lra_live_range *)): New.
21050 * lra-lives.c
21051 (debug (lra_live_range &)): New.
21052 (debug (lra_live_range *)): New.
21053 * omega.c
21054 (debug (omega_pb_d &)): New.
21055 (debug (omega_pb_d *)): New.
21056 * omega.h
21057 (extern debug (omega_pb_d &)): New.
21058 (extern debug (omega_pb_d *)): New.
21059 * print-rtl.c
21060 (debug (const rtx_def &)): New.
21061 (debug (const rtx_def *)): New.
21062 * print-tree.c
21063 (debug_tree (tree): Move within file.
21064 (debug_raw (const tree_node &)): New.
21065 (debug_raw (const tree_node *)): New.
21066 (dump_tree_via_hooks (const tree_node *, int)): New.
21067 (debug (const tree_node &)): New.
21068 (debug (const tree_node *)): New.
21069 (debug_verbose (const tree_node &)): New.
21070 (debug_verbose (const tree_node *)): New.
21071 (debug_head (const tree_node &)): New.
21072 (debug_head (const tree_node *)): New.
21073 (debug_body (const tree_node &)): New.
21074 (debug_body (const tree_node *)): New.
21075 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21076 (debug (vec<tree, va_gc> &)): New.
21077 (debug (vec<tree, va_gc> *)): New.
21078 * rtl.h
21079 (extern debug (const rtx_def &)): New.
21080 (extern debug (const rtx_def *)): New.
21081 * sbitmap.c
21082 (debug_raw (simple_bitmap_def &)): New.
21083 (debug_raw (simple_bitmap_def *)): New.
21084 (debug (simple_bitmap_def &)): New.
21085 (debug (simple_bitmap_def *)): New.
21086 * sbitmap.h
21087 (extern debug (simple_bitmap_def &)): New.
21088 (extern debug (simple_bitmap_def *)): New.
21089 (extern debug_raw (simple_bitmap_def &)): New.
21090 (extern debug_raw (simple_bitmap_def *)): New.
21091 * sel-sched-dump.c
21092 (debug (vinsn_def &)): New.
21093 (debug (vinsn_def *)): New.
21094 (debug_verbose (vinsn_def &)): New.
21095 (debug_verbose (vinsn_def *)): New.
21096 (debug (expr_def &)): New.
21097 (debug (expr_def *)): New.
21098 (debug_verbose (expr_def &)): New.
21099 (debug_verbose (expr_def *)): New.
21100 (debug (vec<rtx> &)): New.
21101 (debug (vec<rtx> *)): New.
21102 * sel-sched-dump.h
21103 (extern debug (vinsn_def &)): New.
21104 (extern debug (vinsn_def *)): New.
21105 (extern debug_verbose (vinsn_def &)): New.
21106 (extern debug_verbose (vinsn_def *)): New.
21107 (extern debug (expr_def &)): New.
21108 (extern debug (expr_def *)): New.
21109 (extern debug_verbose (expr_def &)): New.
21110 (extern debug_verbose (expr_def *)): New.
21111 (extern debug (vec<rtx> &)): New.
21112 (extern debug (vec<rtx> *)): New.
21113 * sel-sched-ir.h
21114 (_list_iter_cond_expr): Make inline instead of static.
21115 * sreal.c
21116 (debug (sreal &)): New.
21117 (debug (sreal *)): New.
21118 * sreal.h
21119 (extern debug (sreal &)): New.
21120 (extern debug (sreal *)): New.
21121 * tree.h
21122 (extern debug_raw (const tree_node &)): New.
21123 (extern debug_raw (const tree_node *)): New.
21124 (extern debug (const tree_node &)): New.
21125 (extern debug (const tree_node *)): New.
21126 (extern debug_verbose (const tree_node &)): New.
21127 (extern debug_verbose (const tree_node *)): New.
21128 (extern debug_head (const tree_node &)): New.
21129 (extern debug_head (const tree_node *)): New.
21130 (extern debug_body (const tree_node &)): New.
21131 (extern debug_body (const tree_node *)): New.
21132 (extern debug (vec<tree, va_gc> &)): New.
21133 (extern debug (vec<tree, va_gc> *)): New.
21134 * tree-cfg.c
21135 (debug (struct loop &)): New.
21136 (debug (struct loop *)): New.
21137 (debug_verbose (struct loop &)): New.
21138 (debug_verbose (struct loop *)): New.
21139 * tree-dump.c: Add header dependence.
21140 * tree-flow.h
21141 (extern debug (struct loop &)): New.
21142 (extern debug (struct loop *)): New.
21143 (extern debug_verbose (struct loop &)): New.
21144 (extern debug_verbose (struct loop *)): New.
21145 * tree-data-ref.c
21146 (debug (data_reference &)): New.
21147 (debug (data_reference *)): New.
21148 (debug (vec<data_reference_p> &)): New.
21149 (debug (vec<data_reference_p> *)): New.
21150 (debug (vec<ddr_p> &)): New.
21151 (debug (vec<ddr_p> *)): New.
21152 * tree-data-ref.h
21153 (extern debug (data_reference &)): New.
21154 (extern debug (data_reference *)): New.
21155 (extern debug (vec<data_reference_p> &)): New.
21156 (extern debug (vec<data_reference_p> *)): New.
21157 (extern debug (vec<ddr_p> &)): New.
21158 (extern debug (vec<ddr_p> *)): New.
21159 * tree-ssa-alias.c
21160 (debug (pt_solution &)): New.
21161 (debug (pt_solution *)): New.
21162 * tree-ssa-alias.h
21163 (extern debug (pt_solution &)): New.
21164 (extern debug (pt_solution *)): New.
21165 * tree-ssa-alias.c
21166 (debug (_var_map &)): New.
21167 (debug (_var_map *)): New.
21168 (debug (tree_live_info_d &)): New.
21169 (debug (tree_live_info_d *)): New.
21170 * tree-ssa-alias.h
21171 (extern debug (_var_map &)): New.
21172 (extern debug (_var_map *)): New.
21173 (extern debug (tree_live_info_d &)): New.
21174 (extern debug (tree_live_info_d *)): New.
21175
be77e1e5
JH
211762013-03-28 Jan Hubicka <jh@suse.cz>
21177
21178 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21179
777e6976
IB
211802013-03-28 Ian Bolton <ian.bolton@arm.com>
21181
21182 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21183 record only when desired or required.
21184
9cd347ae
UB
211852013-03-28 Uros Bizjak <ubizjak@gmail.com>
21186
21187 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21188 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21189
33159866 211902013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21191
21192 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21193 (*andsi3_compare0_uxtw): New pattern.
21194 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21195 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21196
89ab31c1
JH
211972013-03-28 Jan Hubicka <jh@suse.cz>
21198
21199 * data-streamer-in.c (streamer_read_gcov_count): New function.
21200 * gimple-streamer-out.c: Include value-prof.h.
21201 (output_gimple_stmt): Output histogram.
21202 (output_bb): Use streamer_write_gcov_count.
21203 * value-prof.c: Include data-streamer.h
21204 (dump_histogram_value): Add HIST_TYPE_MAX.
21205 (stream_out_histogram_value): New function.
21206 (stream_in_histogram_value): New function.
21207 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21208 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21209 * data-streamer-out.c (streamer_write_gcov_count): New function.
21210 (streamer_write_gcov_count_stream): New function.
21211 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21212 (lto_output_node): Likewise.
21213 (input_node, input_edge): Likewise.
21214 * lto-streamer-out.c (output_cfg): Update streaming.
21215 * lto-streamer-in.c (input_cfg): Likewise.
21216 * data-streamer.h (streamer_write_gcov_count,
21217 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21218 * gimple-streamer-in.c: Include value-prof.h
21219 (input_gimple_stmt): Input histograms.
21220 (input_bb): Update profile streaming.
21221
e594716a 212222013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21223
33159866 21224 * genmodes.c (emit_max_int): New function.
8697be17 21225 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21226 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21227 Added doc.
8697be17 21228 * machmode.def: Fixed comment.
89ab31c1 21229
e594716a 212302013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21231
21232 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21233 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21234
74946978
MP
212352013-03-28 Marek Polacek <polacek@redhat.com>
21236 Richard Biener <rguenther@suse.de>
21237
21238 PR tree-optimization/56695
21239 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21240 build signed result of a vector comparison.
21241 * tree-cfg.c (verify_gimple_comparison): Check that a result
21242 of a vector comparison has signed type.
21243
a64b9c26
RB
212442013-03-28 Richard Biener <rguenther@suse.de>
21245
21246 PR tree-optimization/37021
21247 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21248 do not restrict gaps between groups.
21249 * tree-vect-stmts.c (vectorizable_load): Properly account for
21250 a gap between groups.
21251
a9dc2a2f
EB
212522013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21253
21254 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21255 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21256 is not enabled.
21257
53cb97f9
GP
212582013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21259
21260 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21261 * doc/extend.texi (Named Address Spaces): Ditto.
21262 (Variable Attributes): Ditto.
21263
b802ae5c
KT
212642013-03-27 Kai Tietz <ktietz@redhat.com>
21265
eddae10a
KT
21266 * config.build: Add support for cygwin x64 target.
21267 * config.gcc: Likewise.
21268 * config.host: Likewise.
21269 * configure.ac: Likewise
21270 * configure: Regenerated.
b802ae5c 21271
371e77e3 212722013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21273
21274 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21275 * config/i386/t-cygwin-w64: New file.
21276 * config/i386/cygwin-w64.h: New file.
21277 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21278 and add support for x64-cygwin target.
21279 (CPP_SPEC): Likewise.
21280 (CXX_WRAP_SPEC_LIST): Undefine before define.
21281 (LIBGCJ_SONAME): Use 15 as version.
21282
f49b33cb
RB
212832013-03-27 Richard Biener <rguenther@suse.de>
21284
21285 PR tree-optimization/56716
21286 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21287 dumping for ref nodes.
21288
b37a6ce5
MJ
212892013-03-27 Martin Jambor <mjambor@suse.cz>
21290
21291 PR tree-optimization/55334
21292 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21293 restricted pointers to arrays.
21294
9469b9b2
GDR
212952013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21296
21297 * Makefile.in (.SUFFIXES): Add .cc.
21298 (.c.o): Apply same recipe for implicit rule .cc.o.
21299
7d24f650
RB
213002013-03-27 Richard Biener <rguenther@suse.de>
21301
21302 PR tree-optimization/37021
21303 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21304 REALPART/IMAGPART_EXPRs around the supported refs.
21305 * tree-ssa-structalias.c (find_func_aliases): Assume that
21306 floating-point values are not used to transfer pointers.
21307
2f251a05
AI
213082013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21309
f43245d1
UB
21310 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21311 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21312 * doc/tm.texi: Regenerate.
21313 * targhooks.h (default_has_ifunc_p): New.
21314 * targhooks.c (default_has_ifunc_p): Ditto.
21315 * config/linux-protos.h: New file.
21316 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21317 hook for linux which disables support of indirect functions in android.
21318 * config/linux-android.c: New file.
21319 * config/t-linux-android.c: Ditto.
21320 * config.gcc: Added new object file linux-android.o.
21321 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21322 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21323 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21324 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21325 doesn't support indirect functions.
21326 * configure: Regenerate.
21327
78b4e425
BC
213282013-03-27 Bin Cheng <bin.cheng@arm.com>
21329
21330 PR target/56102
21331 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21332 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21333 mult-word mode.
21334
a5ba7b92
AK
213352013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21336
21337 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21338
be624986
TG
213392013-03-27 Terry Guo <terry.guo@arm.com>
21340
21341 * config/arm/arm-cores.def: Added core cortex-r7.
21342 * config/arm/arm-tune.md: Regenerated.
21343 * config/arm/arm-tables.opt: Regenerated.
21344 * doc/invoke.texi: Added entry for core cortex-r7.
21345
0a514f47
WL
213462013-03-27 Walter Lee <walt@tilera.com>
21347
21348 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21349 double-decrement of next_scratch_regno.
21350
9332b0d2
WL
213512013-03-27 Walter Lee <walt@tilera.com>
21352
801d9b2a 21353 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21354 input operands.
21355 (insn_v1mulus): Ditto.
21356 (insn_v2muls): Ditto.
21357
f54ea5dd
WL
213582013-03-27 Walter Lee <walt@tilera.com>
21359
e594716a 21360 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21361 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21362
bf60f4ca
WL
213632013-03-27 Walter Lee <walt@tilera.com>
21364
e594716a 21365 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21366 (*sibcall_value): Ditto.
21367
e3b51eeb
WL
213682013-03-27 Walter Lee <walt@tilera.com>
21369
21370 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21371 (insn_mnz_v8qi): ... this ...
21372 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21373 vector equivalent.
21374 (insn_v<n>mnz): Replaced by ...
21375 (insn_v1mnz): ... this ...
21376 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21377 equivalent.
21378 (insn_mz_<mode>): Replaced by ...
21379 (insn_mz_v8qi): ... this ...
21380 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21381 vector equivalent.
21382 (insn_v<n>mz): Replaced by ...
21383 (insn_v1mz): ... this ...
21384 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21385 equivalent.
21386
4fc7b145
EB
213872013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21388
21389 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21390
6f33817e
RM
213912013-03-26 Roland McGrath <mcgrathr@google.com>
21392
21393 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21394 than fprintf with a non-constant, non-format string.
21395
93a4145b
UB
213962013-03-26 Uros Bizjak <ubizjak@gmail.com>
21397
21398 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21399 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21400 operand 0 predicate.
21401 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21402 attribute. Use general_x64nomem_operand as operand 1 predicate.
21403 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21404 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21405 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21406 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21407 (mov<mode>_insv_1): Remove expander. Merge insn with
21408 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21409 Use general_x64nomem_operand as operand 1 predicate.
21410 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21411 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21412 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21413 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21414 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21415 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21416 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21417 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21418 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21419 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21420 (general_x64nomem_operand): Ditto.
21421
c6a9ed5a 214222013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21423
21424 * config/rtems.opt: Add -pthread option.
21425
31b0a960
RB
214262013-03-26 Richard Biener <rguenther@suse.de>
21427
93a4145b
UB
21428 * alias.c (find_base_term): Avoid redundant and not used recursion.
21429 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21430 (true_dependence_1): Compute and pass base terms to base_alias_check.
21431 (write_dependence_p): Likewise.
21432 (may_alias_p): Likewise.
21433
79517551
SN
214342013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21435
21436 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21437 PC-relative load in SI modes and above only.
21438
a76213b9
XQ
214392013-03-26 Xinyu Qi <xyqi@marvell.com>
21440
21441 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21442 * config/arm/iwmmxt.md (WCGR0): Update.
21443 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21444
37ff9355
UB
214452013-03-26 Uros Bizjak <ubizjak@gmail.com>
21446
21447 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21448 Use x64 and nox64 isa attributes.
21449
30b0317c
RB
214502013-03-26 Richard Biener <rguenther@suse.de>
21451
21452 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21453 alignment computations and rely on get_object_alignment_1
21454 for the !TYPE_P case.
21455 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21456
cbcdb140
WL
214572013-03-26 Walter Lee <walt@tilera.com>
21458
21459 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21460 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21461
dd884525 214622013-03-25 Jeff Law <law@redhat.com>
be672e08 21463
33159866
UB
21464 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21465 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21466 wrong version of prior patch.
21467
0051d3ec
WL
214682013-03-25 Walter Lee <walt@tilera.com>
21469
21470 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21471 TILEGX_INSN_SHUFFLEBYTES1.
21472 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21473 shufflebytes1.
21474 (tilegx_builtins): Ditto.
21475 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21476
065a3605
WL
214772013-03-25 Walter Lee <walt@tilera.com>
21478
21479 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21480 (floatunssisf2): New pattern.
21481 (floatsidf2): New pattern.
21482 (floatunssidf2): New pattern.
065a3605 21483
5b2a3c82
WL
214842013-03-25 Walter Lee <walt@tilera.com>
21485
21486 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21487 tests for constraint J, K, N, P.
21488
192ea533
WL
214892013-03-25 Walter Lee <walt@tilera.com>
21490
21491 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21492 Use indirect/pcrel encoding.
21493 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21494 Ditto.
21495
855e0d0b
SE
214962013-03-25 Steve Ellcey <sellcey@mips.com>
21497
21498 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21499 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21500 * config/mips/mips.c (mips_option_override): Set IMADD default.
21501 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21502 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21503 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21504 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21505 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21506
39e45653
JL
215072013-03-25 Jeff Law <law@redhat.com>
21508
21509 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21510 slightly to avoid creating and folding useless trees. Simplify
21511 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21512
7482c470
UB
215132013-03-25 Uros Bizjak <ubizjak@gmail.com>
21514
21515 * config/i386/i386.md (*zero_extendsidi2): Merge with
21516 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21517 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21518 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21519 targets. Clarify comment.
21520
4a53743e
MJ
215212013-03-25 Martin Jambor <mjambor@suse.cz>
21522
21523 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21524 pass-through jump functions differently.
21525 (ipa_read_jump_function): Likewise. Also use setter functions to set
21526 up jump functions.
21527
162712de
MJ
215282013-03-25 Martin Jambor <mjambor@suse.cz>
21529
21530 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21531 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21532 process it.
21533 (ipa_get_indirect_edge_target): New function.
21534 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21535 ipa_get_indirect_edge_target. Update all callers.
21536 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21537 ipa_get_indirect_edge_target_1 instead of calling
21538 ipa_get_indirect_edge_target.
21539 (create_specialized_node): Pass aggvlas to
21540 ipcp_discover_new_direct_edges.
21541
a5a4c20a
KT
215422013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21543
21544 * config/arm/arm.md (f_sels, f_seld): New types.
21545 (*cmov<mode>): New pattern.
21546 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21547 predicate.
21548
f992b9fc
KT
215492013-03-25 Kai Tietz <ktietz@redhat.com>
21550
21551 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21552 POSIX-printf for mingw-hosted builds.
21553
c16fd676
RB
215542013-03-25 Richard Biener <rguenther@suse.de>
21555
21556 PR middle-end/56694
21557 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21558 must-not-throw stmt location.
21559
5ad29f12
KT
215602013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21561
21562 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21563 Emit load-acquire versions when acq is true.
21564 (arm_emit_store_exclusive): Add rel parameter.
21565 Emit store-release versions when rel is true.
21566 (arm_split_compare_and_swap): Use acquire-release instructions
21567 instead.
21568 of barriers when appropriate.
21569 (arm_split_atomic_op): Likewise.
21570 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21571 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21572 (VUNSPEC_SLX): Likewise.
21573 (VUNSPEC_LDA): Likewise.
21574 (VUNSPEC_STL): Likewise.
21575 * config/arm/sync.md (atomic_load<mode>): New pattern.
21576 (atomic_store<mode>): Likewise.
21577 (arm_load_acquire_exclusive<mode>): Likewise.
21578 (arm_load_acquire_exclusivesi): Likewise.
21579 (arm_load_acquire_exclusivedi): Likewise.
21580 (arm_store_release_exclusive<mode>): Likewise.
21581
03a7dddb
CM
215822013-03-25 Catherine Moore <clm@codesourcery.com>
21583
21584 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21585 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21586 * config/mip/predicates.md (lwsp_swsp_operand,
21587 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21588 sb16_operand, db4_operand, db7_operand, ib3_operand,
21589 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21590 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21591 andi16_operand): New predicates.
21592 * config/mips/mips.md (compression): New attribute.
21593 (enabled): New attribute.
21594 (length): Consider compression in computing length.
21595 (shift_compression): New code attribute.
21596 (*add<mode>3): New operands. Record compression.
21597 (sub<mode>3): Likewise.
21598 (one_cmpl<mode>2): Likewise.
21599 (*and<mode>3): Likewise.
21600 (*ior<mode>3): Likewise.
21601 (unnamed pattern for xor): Likewise.
21602 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21603 (*<optab><mode>3): Likewise.
21604 (*mov<mode>_internal: Likewise.
21605 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21606 (mips_unsigned_immediate_p): New.
21607 (umips_lwsp_swsp_address_p): New.
21608 (m16_based_address_p): New.
21609 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21610 (mips_unsigned_immediate_p): New prototype.
21611 (lwsp_swsp_address_p): New prototype.
21612 (m16_based_address_p): New prototype.
21613 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21614 (mips_signed_immediate_p): New function.
21615 (m16_based_address_p): New function.
21616 (lwsp_swsp_address_p): New function.
21617 (mips_print_operand_punctuation): Recognize short delay slot insns
21618 for microMIPS.add<mode>3"
21619
f35c297f 216202013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21621
f35c297f
KT
21622 PR target/56720
21623 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21624 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21625
051b9446
RB
216262013-03-25 Richard Biener <rguenther@suse.de>
21627
21628 PR tree-optimization/56689
21629 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21630 any edge.
21631
374001cb
RB
216322013-03-25 Richard Biener <rguenther@suse.de>
21633
21634 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21635 of bitmap.
21636 (memory_references): Likewise.
21637 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21638 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21639 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21640 (gather_mem_refs_in_loops): Fold into ...
21641 (analyze_memory_references): ... this. Move initialization
21642 to tree_ssa_lim_initialize.
21643 (fill_always_executed_in): Rename to ...
21644 (fill_always_executed_in_1): ... this.
21645 (fill_always_executed_in): Move contains_call computation to
21646 this new function from ...
21647 (tree_ssa_lim_initialize): ... here.
21648 (tree_ssa_lim): Call fill_always_executed_in.
21649
57895947
EB
216502013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21651
21652 * postreload.c (reload_combine): Fix code detecting returns.
21653
1e1b18c1
EB
216542013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21655
21656 * function.c (emit_use_return_register_into_block): On cc0 targets,
21657 do not emit the sequence between cc0 setter and user.
21658
9216baf1
KT
216592013-03-25 Kai Tietz <ktietz@redhat.com>
21660
1e1b18c1
EB
21661 * config/i386/predicates.md (local_symbolic_operand): Interpret
21662 dll-imported symbols as none-local.
9216baf1 21663
76421b44
RB
216642013-03-25 Richard Biener <rguenther@suse.de>
21665
21666 * tree-ssa-loop-im.c (struct depend): Remove.
21667 (struct lim_aux_data): Make depends a vec of gimples.
21668 (free_lim_aux_data): Adjust.
21669 (add_dependency): Likewise.
21670 (set_level): Likewise.
21671
d154bfa2
RB
216722013-03-25 Richard Biener <rguenther@suse.de>
21673
21674 PR middle-end/56434
21675 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21676 the pointer returned by calls with ECF_MALLOC set.
21677
2cd9804e
UB
216782013-03-24 Uros Bizjak <ubizjak@gmail.com>
21679
acef5fe0
UB
21680 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21681
216822013-03-24 Uros Bizjak <ubizjak@gmail.com>
21683
21684 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
21685 using MMXMODE mode iterator.
21686 (*move<mode>_internal): Merge with *movv2sf_internal and
21687 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21688
225ccc68
SB
216892013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21690
85c0f02d
SB
21691 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21692 (record_last_mem_set_info): Likewise.
21693
225ccc68
SB
21694 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21695 of XNEWVEC followed by memset.
21696 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21697
b64925dc
SB
216982013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21699
21700 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21701 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21702 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21703 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21704 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21705 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
21706 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
21707 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
21708 BARRIER_P instead of GET_CODE.
21709
b9aaf52e
EB
217102013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21711
21712 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
21713 inaccuracy in the probing code.
21714
21715 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
21716 (ctrapdi4): Likewise.
21717
66de4d7c
EB
217182013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21719
21720 * calls.c (expand_call): Add missing guard to code handling return
21721 of non-BLKmode structures in MSB.
21722 * function.c (expand_function_end): Likewise.
21723
4f25c8fb
EB
217242013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21725
21726 * combine.c (try_combine): Adjust comment. Do not add the set of
21727 insn #0 if the destination indirectly is set or dies in insn #2.
21728 Tidy up code to distribute a new note.
21729
23b7850d
UB
217302013-03-22 Uros Bizjak <ubizjak@gmail.com>
21731
21732 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
21733 also for alternatives 16 and 17.
21734
bed852cf
UB
217352013-03-22 Uros Bizjak <ubizjak@gmail.com>
21736
21737 * config/i386/sse.md (*mov<mode>_internal): Merge with
21738 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
21739 Emit insn template depending on type attribute. Use
21740 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21741 movd instead of movq mnemonic for interunit moves. Rewrite mode
21742 attribute calculation. Remove unit attribute calculation.
21743 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
21744 Set prefix_data16 attribute for DImode ssemov types.
21745 Use Ym instead of y for SSE-MMX conversion alternatives.
21746 Reorder operand constraints.
21747
1e8a7937
SB
217482013-03-22 Steven Bosscher <steven@gcc.gnu.org>
21749
21750 * df.h (df_insn_delete): Adjust prototype.
21751 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
21752 and let it decide whether mark the basic block dirty.
21753 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
21754 * df-scan.c (df_insn_info_delete): New helper function, split
21755 off from df_insn_delete.
21756 (df_scan_free_bb_info): Use it.
21757 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
21758 Likewise.
21759 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
21760 that the insn is actually an insn and it has a non-NULL basic block.
21761 Do not mark basic block dirty if only deleting a DEBUG_INSN.
21762
e14d094c
RB
217632013-03-22 Richard Biener <rguenther@suse.de>
21764
21765 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
21766 dep_ref members.
21767 (mem_ref_alloc): Do not allocate them.
21768 (refs_independent_p): Do not query or maintain a cache.
21769
e9cf7316
RB
217702013-03-22 Richard Biener <rguenther@suse.de>
21771
21772 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
21773 (gather_mem_refs_in_loops): Do not compute it.
21774 (analyze_memory_references): Do not allocate it.
21775 (tree_ssa_lim_finalize): Do not free it.
21776 (for_all_locs_in_loop): Do not query all_refs_in_loop.
21777
f046e81b
RB
217782013-03-22 Richard Biener <rguenther@suse.de>
21779
21780 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 21781
a05c0ddf
IB
217822013-03-22 Ian Bolton <ian.bolton@arm.com>
21783
21784 * config/aarch64/aarch64.c (aarch64_print_operand): New
21785 format specifier for printing a constant in hex.
21786 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
21787 format specifier for printing second operand.
21788
c00217fc
RB
217892013-03-22 Richard Biener <rguenther@suse.de>
21790
21791 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
21792 bitmaps.
21793 (gather_mem_refs_in_loops): Perform store accumulation here.
21794 (create_vop_ref_mapping_loop): Remove.
21795 (create_vop_ref_mapping): Likewise.
21796 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 21797 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
21798 (record_indep_loop): Remove.
21799 (record_dep_loop): New function.
21800 (ref_indep_loop_p_1): Adjust to only walk over references
21801 in the loop, not its subloops.
21802 (ref_indep_loop_p): Rename to ...
21803 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
21804 maintaining a more fine-grained cache.
21805 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
21806 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
21807
15d19bf8
RB
218082013-03-22 Richard Biener <rguenther@suse.de>
21809
21810 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
21811 (struct mem_ref): Make accesses_in_loop a vec of a vec of
21812 aggregate mem_ref_loc.
21813 (free_mem_ref_locs): Inline into ...
21814 (memref_free): ... this and adjust.
21815 (mem_ref_alloc): Adjust.
21816 (mem_ref_locs_alloc): Remove.
21817 (record_mem_ref_loc): Adjust.
21818 (get_all_locs_in_loop): Rewrite into ...
21819 (for_all_locs_in_loop): ... this iterator.
21820 (rewrite_mem_ref_loc): New functor.
21821 (rewrite_mem_refs): Use for_all_locs_in_loop.
21822 (sm_set_flag_if_changed): New functor.
21823 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
21824 (ref_always_accessed): New functor.
21825 (ref_always_accessed_p): Use for_all_locs_in_loop.
21826
6f37411d
MG
218272013-03-21 Marc Glisse <marc.glisse@inria.fr>
21828
21829 * tree-pass.h (PROP_gimple_lvec): New.
21830 * passes.c (dump_properties): Handle PROP_gimple_lvec.
21831 (init_optimization_passes): Move pass_lower_vector.
21832 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
21833 PROP_gimple_lvec.
21834 (pass_lower_vector): Provide PROP_gimple_lvec.
21835 (pass_lower_vector_ssa): Likewise.
21836 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
21837
511ef689
MW
218382013-03-21 Mark Wielaard <mjw@redhat.com>
21839
21840 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
21841
cc1df30b
UB
218422013-03-21 Uros Bizjak <ubizjak@gmail.com>
21843
21844 * config/i386/i386.md (*movdi_internal): Disparage slightly
21845 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
21846 conversion alternatives.
21847
c845cfe1
JJ
218482013-03-21 Jakub Jelinek <jakub@redhat.com>
21849
37e99116
JJ
21850 PR middle-end/48087
21851 * diagnostic.def (DK_WERROR): New kind.
21852 * diagnostic.h (werrorcount): Define.
21853 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
21854 promoted to DK_ERROR, increment DK_WERROR counter instead of
21855 DK_ERROR counter.
21856 * toplev.c (toplev_main): Call print_ignored_options even if
21857 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
21858 even if just werrorcount is non-zero.
21859
c845cfe1
JJ
21860 PR debug/55608
21861 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
21862 on failure.
21863 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
21864 (string_cst_pool_decl): New function.
21865 (optimize_one_addr_into_implicit_ptr): New function.
21866 (resolve_addr_in_expr): Optimize DWARF location expression
21867 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
21868 which doesn't live in memory, but has DW_AT_location or
21869 DW_AT_const_value, or refers to a string literal, into
21870 DW_OP_GNU_implicit_pointer.
21871 (optimize_location_into_implicit_ptr): New function.
21872 (resolve_addr): If removing DW_AT_location of a variable because
21873 it was DW_OP_addr of address of the variable, but the variable doesn't
21874 live in memory, try to emit const value attribute for the initializer.
21875
08e0cda6
MG
218762013-03-21 Marc Glisse <marc.glisse@inria.fr>
21877
21878 * tree.h (VECTOR_TYPE_P): New macro.
21879 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
21880 TYPE_MODE): Use it.
21881 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
21882 VEC_COND_EXPR cannot be lvalues.
21883 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
21884
d08633b4
MG
218852013-03-21 Marc Glisse <marc.glisse@inria.fr>
21886
21887 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
21888 Restrict the transformation to equal modes.
21889
e6647190
RB
218902013-03-21 Richard Biener <rguenther@suse.de>
21891
21892 PR tree-optimization/39326
21893 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
21894 (MEM_ANALYZABLE): Adjust.
21895 (record_mem_ref_loc): Move bitmap ops ...
21896 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
21897 unanalyzable refs, do not record locations for it.
21898 (analyze_memory_references): Allocate ref zero as shared
21899 unanalyzable ref.
21900 (refs_independent_p): Do not test for unanalyzed mems here.
21901 (ref_indep_loop_p_1): Special-case disambiguation against
21902 the unanalyzed ref.
cc1df30b 21903 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 21904
65074f54
CL
219052013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
21906
21907 * config/arm/arm-protos.h (tune_params): Add
21908 prefer_neon_for_64bits field.
21909 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
21910 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
21911 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
21912 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
21913 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
21914 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
21915 (arm_option_override): Handle -mneon-for-64bits new option.
21916 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
21917 (prefer_neon_for_64bits): Declare new variable.
21918 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 21919 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
21920 (arch_enabled): Handle new arch types. Remove support for onlya8
21921 and nota8.
21922 (one_cmpldi2): Use new arch names.
bc5faa5b 21923 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
21924 * config/arm/arm.opt (mneon-for-64bits): Add option.
21925 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
21926 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
21927 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
21928 of onlya8.
21929 * doc/invoke.texi (-mneon-for-64bits): Document.
21930
5a2d2a79
RB
219312013-03-21 Richard Biener <rguenther@suse.de>
21932
21933 PR tree-optimization/39326
21934 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
21935 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 21936 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 21937
5abe1e05
RB
219382013-03-21 Richard Biener <rguenther@suse.de>
21939
21940 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
21941 (vect_insert_into_interleaving_chain): Likewise.
21942 (vect_drs_dependent_in_basic_block): Inline ...
21943 (vect_slp_analyze_data_ref_dependence): ... here. New function,
21944 split out from ...
21945 (vect_analyze_data_ref_dependence): ... here. Simplify.
21946 (vect_check_interleaving): Simplify.
21947 (vect_analyze_data_ref_dependences): Likewise. Split out ...
21948 (vect_slp_analyze_data_ref_dependences): ... this new function.
21949 (dr_group_sort_cmp): New function.
21950 (vect_analyze_data_ref_accesses): Compute data-reference groups
21951 here instead of in vect_analyze_data_ref_dependence. Use
21952 a more efficient algorithm.
21953 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
21954 vect_slp_analyze_data_ref_dependences. Call
21955 vect_analyze_data_ref_accesses earlier.
21956 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21957 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
21958 (vect_slp_analyze_data_ref_dependences): New prototype.
21959
cad1735b
RB
219602013-03-21 Richard Biener <rguenther@suse.de>
21961
21962 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
21963 ref is stored in the loop.
21964 (find_refs_for_sm): Walk only over all stores.
21965 (store_motion_loop): Allocate from lim_bitmap_obstack.
21966 (store_motion): Likewise.
21967
141310ef
RB
219682013-03-21 Richard Biener <rguenther@suse.de>
21969
21970 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
21971 Update virtual SSA form.
21972
5022315a
RO
219732013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21974
21975 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
21976 * configure: Regenerate.
21977 * config.in: Regenerate.
21978 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
21979 if !HAVE_LD_EH_FRAME_CIEV3.
21980
50d4421c
RB
219812013-03-21 Richard Biener <rguenther@suse.de>
21982
21983 * tree-cfg.c (verify_expr_no_block): New function.
21984 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
21985 nor DECL_VALUE_EXPR have locations with associated blocks.
21986 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
21987 (clear_unused_block_pointer): Remove code dealing with
21988 blocks in DECL_DEBUG_EXPR locations.
21989
839b422f
RB
219902013-03-21 Richard Biener <rguenther@suse.de>
21991
21992 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
21993 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
21994 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
21995 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
21996 instead of DECL_DEBUG_EXPR_IS_FROM.
21997 * gimplify.c (gimplify_modify_expr): Likewise.
21998 * tree-cfg.c (verify_expr_location_1): Likewise.
21999 * tree-complex.c (create_one_component_var): Likewise.
22000 * tree-sra.c (create_access_replacement): Likewise.
22001 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22002 (clear_unused_block_pointer): Likewise.
22003 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22004 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22005 * var-tracking.c (var_debug_decl): Likewise.
22006 (track_expr_p): Likewise.
22007 * tree-inline.c (add_local_variables): Likewise. Set
22008 DECL_HAS_DEBUG_EXPR_P after copying it.
22009 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22010 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22011
fe04878d
UB
220122013-03-21 Uros Bizjak <ubizjak@gmail.com>
22013
22014 PR bootstrap/56656
22015 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22016 * configure: Regenerate.
22017 * config.in: Regenerate.
22018 * config/i386/i386.md (*movdf_internal): Use
22019 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22020 movd instead of movq mnemonic for interunit moves.
22021 (*movdi_internal): Ditto.
22022
bd059b26 220232013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22024
22025 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22026 (abd<mode>_3): New pattern.
22027 (aba<mode>_3): New pattern.
22028 (fabd<mode>_3): New pattern.
22029
bd059b26 220302013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22031
22032 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22033 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22034 occurrence of REGISTER_PREFIX as its empty string.
22035
4f1f78b9
JL
220362013-03-20 Jeff Law <law@redhat.com>
22037
22038 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22039 addititional equivalences for equality comparisons between an SSA_NAME
22040 and a constant where the SSA_NAME was set from a widening conversion.
22041
327a1118
WL
220422013-03-20 Walter Lee <walt@tilera.com>
22043
22044 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22045
813e0036
UB
220462013-03-20 Uros Bizjak <ubizjak@gmail.com>
22047
22048 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22049 depending on type attribute.
22050 (*movti_internal): Ditto.
22051 (*movtf_internal): Ditto.
22052 (*movxf_internal): Ditto.
22053 (*movdf_internal): Ditto.
22054 (*movsf_internal): Ditto.
22055
7cf34aae
UB
220562013-03-20 Uros Bizjak <ubizjak@gmail.com>
22057
22058 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22059 maybe_vex for sselog1 and ssemov types.
22060 (*movdi_internal): Reorder operand constraints.
22061 (*movsi_internal): Ditto. Set prefix attribute to
22062 maybe_vex for sselog1 and ssemov types.
22063 (*movtf_internal): Set prefix attribute to maybe_vex
22064 for sselog1 and ssemov types.
22065 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22066 DImode ssemov types. Reorder operand constraints.
22067 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22068 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22069 attribute for SImode ssemov types. Reorder operand constraints.
22070
19321415
MJ
220712013-03-20 Martin Jambor <mjambor@suse.cz>
22072
22073 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22074 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22075
12211b99 220762013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22077
22078 * config/rs6000/predicates.md (indexed_address, update_address_mem
22079 update_indexed_address_mem): New predicates.
22080 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22081 attribute for load/store instructions.
22082 * config/rs6000/dfp.md (movsd_store): Likewise.
22083 (movsd_load): Likewise.
22084 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22085 (unnamed HI->DI extend define_insn): Likewise.
22086 (unnamed SI->DI extend define_insn): Likewise.
22087 (unnamed QI->SI extend define_insn): Likewise.
22088 (unnamed QI->HI extend define_insn): Likewise.
22089 (unnamed HI->SI extend define_insn): Likewise.
22090 (unnamed HI->SI extend define_insn): Likewise.
22091 (extendsfdf2_fpr): Likewise.
22092 (movsi_internal1): Likewise.
22093 (movsi_internal1_single): Likewise.
22094 (movhi_internal): Likewise.
22095 (movqi_internal): Likewise.
22096 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22097 attribute for load/store instructions.
22098 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22099 instructions.
22100 (mov<mode>_softfloat): Likewise.
22101 (mov<mode>_hardfloat32): Likewise.
22102 (mov<mode>_hardfloat64): Likewise.
22103 (mov<mode>_softfloat64): Likewise.
22104 (movdi_internal32): Likewise.
22105 (movdi_internal64): Likewise.
22106 (probe_stack_<mode>): Likewise.
22107
221082013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22109
22110 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22111 floating point, and decimal floating point to reload iterator.
22112
22113 * config/rs6000/constraints.md (wl constraint): New constraints to
22114 return FLOAT_REGS if certain options are used to reduce the number
22115 of separate patterns that exist in the file.
22116 (wx constraint): Likewise.
22117 (wz constraint): Likewise.
22118
22119 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22120 -mdebug=reg, print wg, wl, wx, and wz constraints.
22121 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22122 Initialize the reload functions for 64-bit binary/decimal floating
22123 point types.
22124 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22125 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22126 create the buffer on the stack to overcome not having a 32-bit
22127 load and store.
22128 (rs6000_emit_move): Likewise.
22129 (rs6000_secondary_memory_needed_rtx): Likewise.
22130 (rs6000_alloc_sdmode_stack_slot): Likewise.
22131 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22132 via xxlxor, just like DFmode 0.0.
22133
22134 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22135 define as 1 if we are running on a power7 or newer.
22136 (enum r6000_reg_class_enum): Add new constraints.
22137
22138 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22139 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22140 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22141 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22142 (movsd splitter): Likewise.
22143 (movsd_hardfloat): Likewise.
22144 (movsd_softfloat): Likewise.
22145
22146 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22147 binary and decimal floating point moves.
22148 (fmove_ok): New attributes to combine binary and decimal floating
22149 point moves, and to combine power6x (mfpgpr) moves along normal
22150 floating moves.
22151 (real_value_to_target): Likewise.
22152 (f32_lr): Likewise.
22153 (f32_lm): Likewise.
22154 (f32_li): Likewise.
22155 (f32_sr): Likewise.
22156 (f32_sm): Likewise.
22157 (f32_si): Likewise.
22158 (movsf): Combine binary and decimal floating point moves. Combine
22159 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22160 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22161 (mov<mode> for SFmode/SDmode); Likewise.
22162 (SFmode/SDmode splitters): Likewise.
22163 (movsf_hardfloat): Likewise.
22164 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22165 (movsf_softfloat): Likewise.
22166 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22167
22168 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22169 wx and wz constraints.
22170
22171 * config/rs6000/constraints.md (wg constraint): New constraint to
22172 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22173
22174 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22175 constraint.
22176
22177 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22178 -mdebug=reg, print wg, wl, wx, and wz constraints.
22179 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22180 Initialize the reload functions for 64-bit binary/decimal floating
22181 point types.
22182 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22183 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22184 create the buffer on the stack to overcome not having a 32-bit
22185 load and store.
22186 (rs6000_emit_move): Likewise.
22187 (rs6000_secondary_memory_needed_rtx): Likewise.
22188 (rs6000_alloc_sdmode_stack_slot): Likewise.
22189 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22190 via xxlxor, just like DFmode 0.0.
22191
c6d5ff83
MM
22192 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22193 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22194 with other moves by using conditional constraits (wg). Use LFIWZX
22195 and STFIWX for loading SDmode on power7.
22196 (movdd splitters): Likewise.
22197 (movdd_hardfloat32): Likewise.
22198 (movdd_softfloat32): Likewise.
22199 (movdd_hardfloat64_mfpgpr): Likewise.
22200 (movdd_hardfloat64): Likewise.
22201 (movdd_softfloat64): Likewise.
22202
22203 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22204 64-bit binary and decimal floating point moves.
22205 (FMOVE64X): Likewise.
22206 (movdf): Combine 64-bit binary and decimal floating point moves.
22207 Combine power6x (mfpgpr) moves with other moves by using
22208 conditional constraits (wg).
22209 (mov<mode> for DFmode/DDmode): Likewise.
22210 (DFmode/DDmode splitters): Likewise.
22211 (movdf_hardfloat32): Likewise.
22212 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22213 (movdf_softfloat32): Likewise.
22214 (movdf_hardfloat64_mfpgpr): Likewise.
22215 (movdf_hardfloat64): Likewise.
22216 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22217 (movdf_softfloat64): Likewise.
22218 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22219 (reload_<mode>_load): Move to later in the file so they aren't in
22220 the middle of the floating point move insns.
22221 (reload_<mode>_store): Likewise.
22222
22223 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22224 constraint.
22225
22226 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22227 constraint if -mdebug=reg.
bd059b26
UB
22228 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22229 Enable using dd reload support if needed.
c6d5ff83
MM
22230
22231 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22232 binary and decimal floating point moves in rs6000.md.
22233 (movtd_internal): Likewise.
22234
22235 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22236 decimal floating point moves.
22237 (movtf): Likewise.
22238 (movtf_internal): Likewise.
22239 (mov<mode>_internal, TDmode/TFmode): Likewise.
22240 (movtf_softfloat): Likewise.
22241 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22242
22243 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22244 movdi_internal64, using wg constraint for move direct operations.
22245 (movdi_internal64): Likewise.
22246
22247 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22248 MODES_TIEABLE_P for selected modes. Print the numerical value of
22249 the various virtual registers. Use GPR/FPR first/last values,
22250 instead of hard coding the register numbers. Print which modes
22251 have reload functions registered.
bd059b26
UB
22252 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22253 settings before/after setting cpu, target and subtarget settings.
22254 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22255 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22256 (rs6000_secondary_reload_fail): Likewise.
22257 (rs6000_secondary_reload_inner): Likewise.
22258
22259 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22260 macros for first/last GPR and FPR registers.
22261 (LAST_GPR_REGNO): Likewise.
22262 (FIRST_FPR_REGNO): Likewise.
22263 (LAST_FPR_REGNO): Likewise.
22264
22265 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22266 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22267 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22268 (vcond<mode><mode>): Likewise.
22269 (vcondu<mode><mode>): Likewise.
22270 (vector_gtu<mode>): Likewise.
22271 (vector_gte<mode>): Likewise.
22272 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22273 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22274 (ior<mode>3): Likewise.
22275 (and<mode>3): Likewise.
22276 (one_cmpl<mode>2): Likewise.
22277 (nor<mode>3): Likewise.
22278 (andc<mode>3): Likewise.
22279
22280 * config/rs6000/constraints.md (wt constraint): New constraint
22281 that returns VSX_REGS if TImode is allowed in VSX registers.
22282
22283 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22284 constant under VSX.
22285
22286 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22287 similar to TImode, but it is restricted to being in the GPRs.
22288
22289 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22290 TImode to occupy a single VSX register.
22291
22292 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22293 -mvsx-timode for power7/power8.
22294 (power7 cpu): Likewise.
22295 (power8 cpu): Likewise.
22296
22297 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22298 sure that TFmode/TDmode take up two registers if they are ever
22299 allowed in the upper VSX registers.
22300 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22301 registers.
22302 (rs6000_init_hard_regno_mode_ok): Likewise.
22303 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22304 constraint. Print if LRA is turned on.
22305 (rs6000_option_override_internal): Give an error if -mvsx-timode
22306 and VSX is not enabled.
22307 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22308 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22309 to reg+offset addressing. Use PTImode when checking offset
22310 addresses for validity.
22311 (reg_offset_addressing_ok_p): Likewise.
22312 (rs6000_legitimate_offset_address_p): Likewise.
22313 (rs6000_legitimize_address): Likewise.
22314 (rs6000_legitimize_reload_address): Likewise.
22315 (rs6000_legitimate_address_p): Likewise.
22316 (rs6000_eliminate_indexed_memrefs): Likewise.
22317 (rs6000_emit_move): Likewise.
22318 (rs6000_secondary_reload): Likewise.
22319 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22320 reloads to fpr registers to continue to use reg+offset addressing,
22321 but 64-bit reloads to altivec registers need reg+reg addressing.
22322 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22323 it. Treat LO_SUM like a PLUS operation.
22324 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22325 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22326 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22327 registers to share a register with a smaller sized type, since VSX
22328 puts scalars in the upper 64-bits.
22329 (print_operand): Add support for PTImode.
22330 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22331 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22332 registers, but don't have arithmetic support.
22333 (rs6000_memory_move_cost): Add test for VSX.
22334 (rs6000_opt_masks): Add -mvsx-timode.
22335
22336 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22337 for TImode.
22338 (VSs): Likewise.
22339 (VSr): Use wt constraint for TImode.
22340 (VSv): Drop TImode support.
22341 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22342 (vsx_movti_64bit): Likewise.
22343 (vsx_movti_32bit): Likewise.
22344 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22345 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22346 one '?' on the appropriate output constraint. Do not allow TImode
22347 logical operations on 32-bit systems.
22348 (vsx_ior<mode>3): Likewise.
22349 (vsx_xor<mode>3): Likewise.
22350 (vsx_one_cmpl<mode>2): Likewise.
22351 (vsx_nor<mode>3): Likewise.
22352 (vsx_andc<mode>3): Likewise.
22353 (vsx_concat_<mode>): Likewise.
22354 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22355
22356 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22357 OPTION_MASK_VSX_TIMODE.
22358 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22359 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22360
22361 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22362 (TI2 iterator): New iterator for TImode, PTImode.
22363 (wd mode attribute): Add values for vector types.
bd059b26
UB
22364 (movti_string): Replace TI move operations with operations for TImode
22365 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22366 (mov<mode>_string, TImode/PTImode): Likewise.
22367 (movti_ppc64): Likewise.
22368 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22369 (TI mode splitters): Likewise.
22370
22371 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22372 constraint.
22373
1fc5eced
MG
223742013-03-20 Marc Glisse <marc.glisse@inria.fr>
22375
22376 PR tree-optimization/56355
22377 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22378 Also handle integers with undefined overflow.
22379
22c4c869
CM
223802013-03-20 Catherine Moore <clm@codesourcery.com>
22381 Maciej W. Rozycki <macro@codesourcery.com>
22382 Tom de Vries <tom@codesourcery.com>
12211b99 22383 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22384 Iain Sandoe <iain@codesourcery.com>
22385 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22386 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22387
22388 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22389 Document new function attributes.
22c4c869
CM
22390 * doc/invoke.texi (minterlink-compressed, mmicromips,
22391 m14k, m14ke, m14kec): Document new options.
22392 (minterlink-mips16): Update documentation.
22393 * doc/md.texi (ZC, ZD): Document new constraints.
22394 * configure.ac (gcc_cv_as_micromips): Check if linker
22395 supports the .set micromips directive.
22396 * configure: Regenerate.
22397 * config.in: Regenerate.
22398 * config/mips/mips-tables.opt: Regenerate.
22399 * config/mips/micromips.md: New file.
22400 * constraints.md (ZC, ZD): New constraints.
22401 * config/mips/predicates.md (movep_src_register): New predicate.
22402 (movep_src_operand): New predicate.
22403 (non_volatile_mem_operand): New predicate.
22404 * config/mips/mips.md (multimem): New type.
22405 (length): Differentiate between 17-bit and 18-bit branch offsets.
22406 (MOVEP1, MOVEP2): New mode iterator.
33159866 22407 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22408 (mov_<load>r): Likewise.
22409 (mov_<store>l): Likewise.
22410 (mov_<store>r): Likewise.
22411 (*branch_equality<mode>_inverted): Add microMIPS support.
22412 (*branch_equality<mode>): Likewise.
22413 (*jump_absolute): Likewise.
22414 (indirect_jump_<mode>): Likewise.
22415 (tablejump_<mode>): Likewise.
22416 (<optab>_internal): Likewise.
22417 (sibcall_internal): Likewise.
22418 (sibcall_value_internal): Likewise.
22419 (prefetch): Use constraint ZD.
22420 * config/mips/mips.opt (minterlink-compressed): New option.
22421 (minterlink-mips16): Now an alias for minterlink-compressed.
22422 (mmicromips): New option.
22423 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22424 (compare_and_swap_12): Likewise.
22425 (sync_add<mode>): Likewise.
22426 (sync_<optab>_12): Likewise.
22427 (sync_old_<optab>_12): Likewise.
22428 (sync_new_<optab>_12): Likewise.
22429 (sync_nand_12): Likewise.
22430 (sync_old_nand_12): Likewise.
22431 (sync_new_nand_12): Likewise.
22432 (sync_sub<mode>): Likewise.
22433 (sync_old_add<mode>): Likewise.
22434 (sync_old_sub<mode>): Likewise.
22435 (sync_new_add<mode>): Likewise.
22436 (sync_new_sub<mode>): Likewise.
22437 (sync_<optab><mode>): Likewise.
22438 (sync_old_<optab><mode>): Likewise.
22439 (sync_new_<optab><mode>): Likewise.
22440 (sync_nand<mode>): Likewise.
22441 (sync_old_nand<mode>): Likewise.
22442 (sync_new_nand<mode>): Likewise.
22443 (sync_lock_test_and_set<mode>): Likewise.
22444 (test_and_set_12): Likewise.
22445 (atomic_compare_and_swap<mode>): Likewise.
22446 (atomic_exchange<mode>_llsc): Likewise.
22447 (atomic_fetch_add<mode>_llsc): Likewise.
22448 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22449 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22450 (umips_save_restore_pattern_p): Likewise.
22451 (umips_load_store_pair_p): Likewise.
22452 (umips_output_load_store_pair): Likewise.
22453 (umips_movep_target_p): Likewise.
22454 (umips_12bit_offset_address_p): Likewise.
22455 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22456 (mips_base_mips16): Rename this...
22457 (mips_base_compression_flags): ...to this. Update all uses.
22458 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22459 (mips_mips16_decl_p): Delete.
22460 (mips_nomips16_decl_p): Delete.
33159866 22461 (mips_get_compress_on_flags): New function.
22c4c869
CM
22462 (mips_get_compress_off_flags): New function.
22463 (mips_get_compress_mode): New function.
22464 (mips_get_compress_on_name): New function.
22465 (mips_get_compress_off_name): New function.
22466 (mips_insert_attributes): Support multiple compression types.
22467 (mips_merge_decl_attributes): Likewise.
22468 (umips_12bit_offset_address_p): New function.
22469 (mips_start_function_definition): Emit .set micromips directive.
22470 (mips_call_may_need_jalx_p): New function.
22471 (mips_function_ok_for_sibcall): Add microMIPS support.
22472 (mips_print_operand_punctuation): Support short delay slots and
22473 compact jumps.
22474 (umips_swm_mask, umips_swm_encoding): New.
22475 (umips_build_save_restore): New function.
22476 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22477 (was_mips16_p): Remove.
22478 (old_compression_mode): New.
22479 (mips_set_compression_mode): New function.
22480 (mips_set_current_function): Add microMIPS support.
22481 (mips_option_override): Likewise.
22482 (umips_save_restore_pattern_p): New function.
22483 (umips_output_save_restore): New function.
22484 (umips_load_store_pair_p_1): New function.
22485 (umips_load_store_pair_p): New function.
22486 (umips_output_load_store_pair_1): New function.
22487 (umips_output_load_store_pair): New function.
22488 (umips_movep_target_p) New function.
22489 (mips_prepare_pch_save): Add microMIPS support.
22490 * config/mips/mips.h (TARGET_COMPRESSION): New.
22491 (TARGET_CPU_CPP_BUILTINS): Update macro
22492 to use new compression flags and to support microMIPS.
22493 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22494 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22495 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22496 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22497 (ASM_SPEC): Support mmicromips and mno-micromips.
22498 (M16STORE_REG_P): New macro.
22499 (MIPS_CALL): Support TARGET_MICROMIPS.
22500 (MICROMIPS_J): New macro.
22501 (mips_base_mips16): Rename this...
22502 (mips_base_compression_flags): ...to this.
22503 (UMIPS_12BIT_OFFSET_P): New macro.
22504 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22505 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
225062013-03-20 Richard Biener <rguenther@suse.de>
22507
22508 PR tree-optimization/56661
22509 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22510 the result does not have to be distinct.
22511
54714c68
RB
225122013-03-20 Richard Biener <rguenther@suse.de>
22513
22514 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22515 remap_gimple_op_r.
22516
cca1130d 225172013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22518 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22519
22520 PR rtl-optimization/56605
22521 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22522
2a930377
UB
225232013-03-20 Uros Bizjak <ubizjak@gmail.com>
22524
22525 PR bootstrap/56656
22526 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22527 that require movd instead of movq.
22528
d6d305fe
RB
225292013-03-20 Richard Biener <rguenther@suse.de>
22530
22531 * tree-ssa-structalias.c (struct variable_info): Add pointer
22532 to the first field of an aggregate with sub-vars. Make
22533 this and the pointer to the next subfield its ID.
22534 (vi_next): New function.
22535 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22536 storedanything_id, integer_id): Increment by one.
22537 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22538 get_call_clobber_vi): Adjust.
22539 (solution_set_expand): Simplify and speedup.
22540 (solution_set_add): Inline into ...
22541 (set_union_with_increment): ... this. Adjust accordingly.
22542 (do_sd_constraint): Likewise.
22543 (do_ds_constraint): Likewise.
22544 (do_complex_constraint): Simplify.
22545 (build_pred_graph): Adjust.
22546 (solve_graph): Likewise. Simplify and speedup.
22547 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22548 get_constraint_for_component_ref, get_constraint_for_1,
22549 first_vi_for_offset, first_or_preceding_vi_for_offset,
22550 create_function_info_for, create_variable_info_for_1,
22551 create_variable_info_for, intra_create_variable_infos): Adjust.
22552 (init_base_vars): Push NULL for ID zero.
22553 (compute_points_to_sets): Adjust.
22554
a271b42d
RB
225552013-03-20 Richard Biener <rguenther@suse.de>
22556
22557 * cfgloop.c (verify_loop_structure): Streamline and avoid
22558 ICEing on corrupt loop tree.
22559 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22560 loop tree.
22561
ebd65954
RB
225622013-03-20 Richard Biener <rguenther@suse.de>
22563
22564 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22565 check whether an SSA update is needed.
22566
4547b7ee
RS
225672013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22568
22569 * config/mips/constraints.md (T): Rename to...
22570 (Yf): ...this.
22571 (U): Rename to...
22572 (Yd): ...this.
22573 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22574 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22575
0b8cdc58
IB
225762013-03-19 Ian Bolton <ian.bolton@arm.com>
22577
22578 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22579 (*subsi3_carryin_uxtw): Likewise.
22580
5977a10d
IB
225812013-03-19 Ian Bolton <ian.bolton@arm.com>
22582
22583 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22584 (*rorsi3_insn_uxtw): Likewise.
22585
bd83ff2c
IB
225862013-03-19 Ian Bolton <ian.bolton@arm.com>
22587
22588 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22589 (*extrsi5_insn_uxtw): Likewise.
22590
ba65123c
RB
225912013-03-19 Richard Biener <rguenther@suse.de>
22592
22593 PR tree-optimization/56273
22594 * passes.c (init_optimization_passes): Move second VRP after DOM.
22595
2eac0476
UB
225962013-03-19 Uros Bizjak <ubizjak@gmail.com>
22597
22598 * config/i386/i386.md (*movti_internal): Merge from
22599 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22600 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22601 nox64 isa attributes.
22602
6e55eda7
RB
226032013-03-18 Richard Biener <rguenther@suse.de>
22604
22605 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22606 (unite): Likewise.
22607 (merge_node_constraints): Likewise.
22608 (build_succ_graph): Likewise.
22609 (valid_graph_edge): Inline into single caller.
22610 (unify_nodes): Likewise. Use bitmap_set_bit return value
22611 and cache varinfo.
22612 (scc_visit): Fix formatting and variable use.
22613 (do_sd_constraint): Use gcc_checking_assert.
22614 (do_ds_constraint): Likewise.
22615 (do_complex_constraint): Likewise.
22616 (condense_visit): Likewise. Cleanup.
22617 (dump_pred_graph): New function.
22618 (perform_var_substitution): Dump the pred-graph before
22619 variable substitution.
22620 (find_equivalent_node): Use gcc_checking_assert.
22621 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22622
4bdd44c4
RB
226232013-03-18 Richard Biener <rguenther@suse.de>
22624
22625 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22626 Remove cond_expr_stmt_list argument and do not gimplify the
22627 built expression.
22628 (vect_loop_versioning): Adjust.
22629 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22630 Cleanup to use less temporaries.
22631 (vect_create_data_ref_ptr): Cleanup.
22632
38c56a5b
JJ
226332013-03-18 Jakub Jelinek <jakub@redhat.com>
22634
22635 PR tree-optimization/56635
22636 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22637 require types_compatible_p types.
22638
20b2e6a0
NC
226392013-03-18 Nick Clifton <nickc@redhat.com>
22640
a6178a25
NC
22641 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22642 spurious backslash.
22643
20b2e6a0
NC
22644 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22645 Add missing line to comment describing function.
22646
92608d0e
RB
226472013-03-18 Richard Biener <rguenther@suse.de>
22648
22649 PR tree-optimization/56210
22650 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22651 Handle string / character search functions.
22652 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22653
31348d52
RB
226542013-03-18 Richard Biener <rguenther@suse.de>
22655
22656 PR middle-end/56483
22657 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22658 and implement properly.
22659 * gimple.h (gimple_cond_single_var_p): Remove.
22660
fcac74a1
RB
226612013-03-18 Richard Biener <rguenther@suse.de>
22662
22663 * tree-data-ref.h (find_data_references_in_loop): Declare.
22664 * tree-data-ref.c (get_references_in_stmt): Use a stack
22665 vector pre-allocated in the callers.
22666 (find_data_references_in_stmt): Adjust.
22667 (graphite_find_data_references_in_stmt): Likewise.
22668 (create_rdg_vertices): Likewise.
22669 (find_data_references_in_loop): Export.
22670 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22671 Compute dependences here...
22672 (vect_analyze_data_refs): ...not here. When we encounter
22673 a non-vectorizable data reference in basic-block vectorization
22674 truncate the data reference vector. Do not bother to
22675 fixup data-dependence information for gather loads.
22676 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22677 of data references, as reported.
22678
0d5a1b56
RB
226792013-03-18 Richard Biener <rguenther@suse.de>
22680
22681 PR tree-optimization/3713
22682 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22683 has_constants and expr.
22684 (stmt_has_constants): Properly valueize SSA names when deciding
22685 whether the stmt has constants.
22686
789c34e3
RB
226872013-03-18 Richard Biener <rguenther@suse.de>
22688
22689 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22690 whole function when there is nothing to do.
22691 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22692 * tree-vectorizer.c (vectorize_loops): Update virtual and
22693 loop-closed SSA once.
22694 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22695
076b4605
RB
226962013-03-18 Richard Biener <rguenther@suse.de>
22697
22698 PR middle-end/56113
22699 * domwalk.c (bb_postorder): New global static.
22700 (cmp_bb_postorder): New function.
22701 (walk_dominator_tree): Replace scheme imposing an order for
22702 visiting dominator sons by one sorting them at the time they
22703 are pushed on the stack.
22704
bdb01696
RB
227052013-03-18 Richard Biener <rguenther@suse.de>
22706
22707 PR tree-optimization/39326
22708 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
22709 (struct mem_ref): Replace mem member with ao_ref typed member.
22710 (MEM_ANALYZABLE): Adjust.
22711 (memref_eq): Likewise.
22712 (mem_ref_alloc): Likewise.
22713 (gather_mem_refs_stmt): Likewise.
22714 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
22715 (execute_sm_if_changed_flag_set): Adjust.
22716 (execute_sm): Likewise.
22717 (ref_always_accessed_p): Likewise.
22718 (refs_independent_p): Likewise.
22719 (can_sm_ref_p): Likewise.
22720
12d2dc5e
JJ
227212013-03-18 Jakub Jelinek <jakub@redhat.com>
22722
22723 PR c/56566
22724 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
22725 return 1 even for !unsignedp.
22726
286fb677
UB
227272013-03-17 Uros Bizjak <ubizjak@gmail.com>
22728
22729 * config/i386/i386.md (isa): Add x64 and nox64.
22730 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
22731 (*pushtf): Enable *roF alternative for x64 isa only.
22732 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
22733 mode attribute of integer alternatives to DImode for TARGET_64BIT.
22734 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
22735 (*movtf_internal): Merge from *movtf_internal_rex64 and
22736 *movtf_internal_sse. Use x64 and nox64 isa attributes.
22737 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
22738 nox64 isa attributes.
22739 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
22740 nox64 isa attributes.
22741 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
22742
88b97037
UB
227432013-03-17 Uros Bizjak <ubizjak@gmail.com>
22744
22745 * config/alpha/alpha.c (TARGET_LRA_P): New define.
22746
9f4f1735
JJ
227472013-03-17 Jakub Jelinek <jakub@redhat.com>
22748
22749 PR target/56640
22750 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
22751 class names. Remove trailing comma after "ALL_REGS".
22752
48f4a6fa
JH
227532013-03-16 Jan Hubicka <jh@suse.cz>
22754
22755 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
22756 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
22757 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
22758 of cgraph_get_create_node.
22759 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
22760
98e81123
JM
227612013-03-16 Jason Merrill <jason@redhat.com>
22762
22763 PR debug/49090
22764 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
22765 with DW_AT_default_value.
22766
8a298c04
JJ
227672013-03-16 Jakub Jelinek <jakub@redhat.com>
22768
22769 * BASE-VER: Set to 4.9.0.
22770
4323afa0
AK
227712013-03-14 Andi Kleen <ak@linux.intel.com>
22772
22773 PR target/56619
22774 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
22775 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
22776 Document _x* TSX intrinsics.
22777
b3c0d469
JJ
227782013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22779 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
22780
22781 * configure.ac: Add MicroBlaze TLS support detection.
22782 * configure: Regenerate.
88b97037
UB
22783 * config/microblaze/microblaze-protos.h
22784 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
22785 symbol_mentioned_p, label_mentioned_p): Add prototypes.
22786 * config/microblaze/microblaze.c (microblaze_address_type): Add
22787 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
22788 (microblaze_address_info): Add tls_reloc.
22789 (TARGET_HAVE_TLS): Define.
22790 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
22791 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
22792 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
22793 load_tls_operand, microblaze_call_tls_get_addr,
22794 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
22795 (microblaze_classify_unspec): Handle UNSPEC_TLS.
22796 (get_base_reg): Use microblaze_tls_symbol_p.
22797 (microblaze_classify_address): Handle TLS.
88b97037
UB
22798 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
22799 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
22800 (microblaze_legitimize_address): Handle TLS.
22801 (microblaze_address_insns): Handle ADDRESS_TLS.
22802 (pic_address_needs_scratch): Handle TLS.
22803 (print_operand_address): Handle TLS.
22804 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
22805 (microblaze_expand_move): Handle TLS.
88b97037
UB
22806 (microblaze_legitimate_constant_p): Check
22807 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
22808 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
22809 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
22810 (PIC_OFFSET_TABLE_REGNUM): Set.
22811 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
22812 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
22813 (addsi3, movsi_internal2, movdf_internal): Update constraints
22814 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
22815 (move_operand): Redefine as move_src_operand,
22816 check microblaze_tls_referenced_p.
8cc9a5a5 22817
d803a491
IB
228182013-03-14 Ian Bolton <ian.bolton@arm.com>
22819
22820 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
22821 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22822
a8504f22
IB
228232013-03-14 Ian Bolton <ian.bolton@arm.com>
22824
22825 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
22826 CC mode for AND.
22827
df2dfaea
JJ
228282013-03-14 Jakub Jelinek <jakub@redhat.com>
22829
fbd28bc3
JJ
22830 PR tree-optimization/53265
22831 * common.opt (Waggressive-loop-optimizations): New option.
22832 * tree-ssa-loop-niter.c: Include tree-pass.h.
22833 (do_warn_aggressive_loop_optimizations): New function.
22834 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
22835 if number_of_latch_executions returned constant.
22836 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
22837 early. If number_of_latch_executions returned constant, set
22838 nb_iterations_upper_bound back to it.
22839 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
22840 field.
22841 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
22842 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
22843
df2dfaea
JJ
22844 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
22845 (MULTILIB_OSDIRNAMES): Set.
22846 * genmultilib: If defaultosdirname doesn't start with :: , set
22847 defaultosdirname2 instead, clear it and emit two . multilib_raw
22848 entries instead of just one.
22849
ee0d2b68
KK
228502013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
22851
22852 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22853 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
22854 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22855 (SUBTARGET_OVERRIDE_OPTIONS): New.
22856
decc676e
OE
228572013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
22858
22859 PR target/49880
22860 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
22861 (musermode): Convert to Var(TARGET_USERMODE).
22862 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
22863 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
22864 * config/sh/sh.c (sh_option_override): Use
22865 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
22866 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
22867 condition.
22868 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
22869 TARGET_SH4.
22870 (udivsi3_i4_single, divsi3_i4_single): Use
22871 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
22872
f4b719c7
DK
228732013-03-13 Dave Korn <dave.korn.cygwin@....>
22874
22875 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
22876 default setting.
22877
c40eced0
RB
228782013-03-13 Richard Biener <rguenther@suse.de>
22879
22880 PR tree-optimization/56608
22881 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
22882 calls when vectorizing basic-blocks.
22883
1bfa5973
JJ
228842013-03-13 Jakub Jelinek <jakub@redhat.com>
22885
22886 PR plugins/45078
22887 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
22888 tm_file.
22889
6fcf5434
JJ
228902013-03-12 Jakub Jelinek <jakub@redhat.com>
22891
22892 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
22893
4f38fa8c
JH
228942013-03-11 Jan Hubicka <jh@suse.cz>
22895
22896 PR lto/56557
22897 * lto-streamer-out.c (output_symbol_p): Skip references from
22898 constructors of external variables.
22899
c5c5ba89
JH
229002013-03-11 Jan Hubicka <jh@suse.cz>
22901
22902 PR middle-end/56571
22903 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
22904 from pseudos.
22905 * emit-rtl.c (verify_rtx_sharing): Likewise.
22906 (copy_insn_1): Likewise.
22907 * rtl.c (copy_rtx): Likewise.
22908
c2a939b1
GJL
229092013-03-11 Georg-Johann Lay <avr@gjlay.de>
22910
22911 PR target/56591
22912 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
22913 output_operand_lossage message.
88b97037 22914
3c3279fb
RE
229152013-03-11 Richard Earnshaw <rearnsha@arm.com>
22916
22917 PR target/56470
22918 * arm.c (shift_op): Validate RTL pattern on the fly.
22919 (arm_print_operand, case 'S'): Don't use shift_operator to validate
22920 the RTL.
22921
aef5ef9d
JDA
229222013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22923
22924 PR target/56347
22925 * config/pa/pa.md (call_value): Check for calls to powf and direct to
22926 new call patterns that clobber %fr12.
22927 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
22928 split and postreload patterns.
22929 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
22930 registers %fr12 and %fr12R as call used.
22931
456610d3
SB
229322013-03-09 Steven Bosscher <steven@gcc.gnu.org>
22933
22934 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
22935 (canon_address, record_store, replace_read, check_mem_read_rtx,
22936 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
22937 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
22938 rest_of_handle_dse): Likewise.
22939
4b1baac8
RS
229402013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
22941
22942 PR middle-end/56524
22943 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
22944 Add base_optabs.
22945 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
22946 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
22947 (save_optabs_if_changed): Replace with...
22948 (init_tree_optimization_optabs): ...this.
22949 * optabs.c (save_optabs_if_changed): Rename to...
22950 (init_tree_optimization_optabs): ...this. Take the optimization node
22951 as argument. Do nothing if the base optabs are already correct.
22952 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
22953 to recompute optabs.
22954 * function.h (function): Remove optabs field.
22955 * function.c (invoke_set_current_function_hook): Call
22956 init_tree_optimization_optabs. Use the result to initialize
22957 this_fn_optabs.
22958
b7a78683
AH
229592013-02-27 Aldy Hernandez <aldyh@redhat.com>
22960
22961 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
22962 if GTMA_HAS_NO_INSTRUMENTATION.
22963 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
22964 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
22965 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
22966 * gimple-pretty-print.c (dump_gimple_transaction): Handle
22967 GTMA_HAS_NO_INSTRUMENTATION.
22968
6384c29b
JJ
229692013-03-08 Jakub Jelinek <jakub@redhat.com>
22970
22971 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
22972 libasan_preinit.o.
22973
ecd4f20a
MP
229742013-03-08 Marek Polacek <polacek@redhat.com>
22975 Jakub Jelinek <jakub@redhat.com>
22976
22977 PR tree-optimization/56478
22978 * predict.c (is_comparison_with_loop_invariant_p): Change the
22979 type of loop_step to tree.
22980 (predict_loops): Adjust.
22981 (predict_iv_comparison): Perform the computations on double_ints.
22982
64366d35
RB
229832013-03-08 Richard Biener <rguenther@suse.de>
22984
22985 PR tree-optimization/56570
22986 * tree-cfg.c (verify_expr_location_1): Verify locations for
22987 DECL_DEBUG_EXPR.
22988 * tree-sra.c (create_access_replacement): Strip locations
22989 from DECL_DEBUG_EXPRs.
22990
a9d5a059
RB
229912013-03-08 Richard Biener <rguenther@suse.de>
22992
22993 * tree-inline.c (expand_call_inline): Do not associate
22994 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
22995 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
22996
b7aa4e9a
RB
229972013-03-08 Richard Biener <rguenther@suse.de>
22998
22999 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23000 or block changes with -Og. Fix for location / block encoding
23001 changes and PHI arguments with locations.
23002
c4c2f9fa
SB
230032013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23004
23005 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23006 for all counters.
23007 (struct output_info): Likewise.
23008 (register_overhead): Remove bad gcc_assert.
23009 (bitmap_find_bit): If there is only a single bitmap element, do not
23010 count a miss as a search.
23011 (print_statistics): Update for counter type changes.
23012 (dump_bitmap_statistics): Likewise. Print headers such that they
23013 are properly lined up with the printed counters.
23014
5bf6606a
JJ
230152013-03-07 Jakub Jelinek <jakub@redhat.com>
23016
23017 PR tree-optimization/56559
23018 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23019 check that it has only a single use.
23020
2c653d46
RB
230212013-03-07 Richard Biener <rguenther@suse.de>
23022
23023 * doc/invoke.texi (fwhole-program): Discourage use in combination
23024 with -flto.
23025
a72d8780
JJ
230262013-03-06 Jakub Jelinek <jakub@redhat.com>
23027
01a454df
JJ
23028 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23029
c1781047
JJ
23030 PR tree-optimization/56539
23031 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23032 instead of GSI_CONTINUE_LINKING as last argument to
23033 force_gimple_operand_gsi. Adjust function comment.
23034
9772c47a
JJ
23035 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23036 aarch64-cores.def.
23037
a72d8780
JJ
23038 PR middle-end/56548
23039 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23040 promoted mode, convert the result back to the original mode.
23041
fa5556de
RB
230422013-03-06 Richard Biener <rguenther@suse.de>
23043
23044 PR middle-end/56294
23045 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23046 (insert_updated_phi_nodes_compare_uids): New function.
23047 (update_ssa): Sort symbols_to_rename after UID before
23048 traversing it to insert PHI nodes.
23049
010403d1
RB
230502013-03-06 Richard Biener <rguenther@suse.de>
23051
23052 PR middle-end/50494
23053 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23054 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23055
23056 Revert
23057 2013-02-13 Richard Biener <rguenther@suse.de>
23058
23059 PR lto/50494
23060 * varasm.c (output_constant_def_1): Get the decl representing
23061 the constant as argument.
23062 (output_constant_def): Wrap output_constant_def_1.
23063 (make_decl_rtl): Use output_constant_def_1 with the decl
23064 representing the constant.
23065 (build_constant_desc): Optionally re-use a decl already
23066 representing the constant.
23067 (tree_output_constant_def): Adjust.
23068
3c27ce4c
JY
230692013-03-06 Joey Ye <joey.ye@arm.com>
23070
23071 PR lto/50293
23072 * gcc.c (convert_white_space): New function.
23073 (main): Handles white space in function name.
23074
8f6d1c86
OE
230752013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23076
23077 PR target/56529
23078 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23079 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23080 to SH_DIV_CALL_TABLE for TARGET_SH2.
23081 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23082 list.
23083 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23084 call-table options.
23085
798a209f
SA
230862013-03-05 Sterling Augustine <saugustine@google.com>
23087 Cary Coutant <ccoutant@google.com>
23088
23089 PR debug/55364
23090 * dwarf2out.c (resolve_addr): Don't call
23091 remove_loc_list_addr_table_entries a second time for the same
23092 expression.
23093
6cfa417f 230942013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23095
6cfa417f
JJ
23096 PR debug/56510
23097 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23098 (avoid_complex_debug_insns): New function.
23099 (expand_debug_locations): Call it.
23100
23101 PR rtl-optimization/56484
23102 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23103 lifetimes of hard registers on small register class machines.
23104
231052013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23106
23107 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23108 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23109 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23110 fast_interrupt.
23111 (microblaze_fast_interrupt_function_p): New function.
23112 (microblaze_is_interrupt_handler): Rename to
23113 microblaze_is_interrupt_variant and add fast_interrupt check.
23114 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23115 (save_restore_insns): Likewise.
23116 (compute_frame_size): Likewise.
23117 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23118 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23119 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23120 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23121 microblaze_is_interrupt_variant.
23122
731aefac
KT
231232013-03-05 Kai Tietz <ktietz@redhat.com>
23124
23125 * sdbout.c (sdbout_one_type): Switch to current function's section
23126 supporting cold/hot.
23127
a72d8780 231282013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23129
23130 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23131 -mxl-reorder.
23132
334e71e8
JJ
231332013-03-05 Jakub Jelinek <jakub@redhat.com>
23134
0b50e654
JJ
23135 PR middle-end/56461
23136 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23137 if VALGRIND_GET_VBITS is defined, temporarily make object
23138 memory all defined, and restore previous valgrind addressability
23139 and definability afterwards. Free this_object at the end.
23140
4ccf8f43
JJ
23141 PR middle-end/56461
23142 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23143 right before calling lra_create_live_ranges, also call it
23144 when clearing live_p. Only call lra_clear_live_ranges
23145 at the end if live_p.
23146
334e71e8
JJ
23147 PR middle-end/56461
23148 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23149
9ca966ca
RB
231502013-03-05 Richard Biener <rguenther@suse.de>
23151
23152 PR tree-optimization/56521
23153 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23154 value-id.
23155
d273b176
SB
231562013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23157
23158 PR c++/55135
23159 * except.h (remove_unreachable_eh_regions): New prototype.
23160 * except.c (remove_eh_handler_splicer): New function, split out
23161 of remove_eh_handler.
23162 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23163 warning about running it on many EH regions one at a time.
23164 (remove_unreachable_eh_regions_worker): New function, walk the
23165 EH tree in depth-first order and remove non-marked regions.
23166 (remove_unreachable_eh_regions): New function.
23167 * tree-eh.c (mark_reachable_handlers): New function, split out
23168 from remove_unreachable_handlers.
23169 (remove_unreachable_handlers): Use mark_reachable_handlers and
23170 remove_unreachable_eh_regions.
23171 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23172 and remove_unreachable_eh_regions.
23173
5e7f1aef
RB
231742013-03-05 Richard Biener <rguenther@suse.de>
23175
23176 PR middle-end/56525
23177 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23178 not freeing them until the end.
23179
f276b762
AK
231802013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23181
23182 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23183
12a43ab8
RB
231842013-03-05 Richard Biener <rguenther@suse.de>
23185
23186 PR tree-optimization/56270
23187 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23188 of loads after scheduling an SLP instance.
23189
93675444
JJ
231902013-03-05 Jakub Jelinek <jakub@redhat.com>
23191
db4138e3
JJ
23192 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23193 tic6x.exp.
23194 (check_gcc_parallelize): Run guality.exp as a separate job from
23195 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23196 struct-layout-1.exp with stackalign.exp.
23197
dd3d1ec0
JJ
23198 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23199
b8d381a3
JJ
23200 PR middle-end/56461
23201 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23202 load_index sbitmap even if some bit in it isn't set.
23203
b4f9786b
JJ
23204 PR middle-end/56461
23205 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23206 (discover_iteration_bound_by_body_walk): Change queues to
23207 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23208 spelling in comment. Call safe_push on queues[bound_index] directly.
23209 Release queues[queue_index] in every iteration unconditionally.
23210 Release bounds vector.
23211
93675444
JJ
23212 PR middle-end/56461
23213 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23214 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23215 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23216 inner_phis vector.
23217
3e492e9c
RB
232182013-03-05 Richard Biener <rguenther@suse.de>
23219
23220 PR lto/56515
23221 * tree-inline.c (remap_blocks_to_null): New function.
23222 (expand_call_inline): When expanding a call stmt without
23223 an associated block inline remap all callee blocks to NULL.
23224
a5d1569a
JJ
232252013-03-05 Jakub Jelinek <jakub@redhat.com>
23226
86efb5cd
JJ
23227 PR rtl-optimization/56494
23228 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23229 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23230 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23231
85f5dbea
JJ
23232 PR middle-end/56461
23233 * sel-sched-ir.c (free_sched_pools): Release
23234 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23235 if succs_info_pool.max_top isn't -1.
23236
a5d1569a
JJ
23237 PR bootstrap/56509
23238 * opts.c (opts_obstack, opts_concat): Moved to...
23239 * opts-common.c (opts_obstack, opts_concat): ... here.
23240
4432aa6c
JJ
232412013-03-04 Jakub Jelinek <jakub@redhat.com>
23242
23243 PR middle-end/56461
23244 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23245
f3a1fb91
MJ
232462013-03-04 Martin Jambor <mjambor@suse.cz>
23247
23248 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23249 all appropriate places.
23250
22110e6c
EB
232512013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23252
23253 PR tree-optimization/56424
23254 * ipa-split.c (split_function): Do not set the RSO flag if result is
23255 not by reference and its type is a register type.
23256
a72d8780 232572013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23258
88b97037 23259 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23260 (microblaze_legitimate_pic_operand): Likewise
88b97037 23261 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23262 new function microblaze_legitimate_pic_operand
23263 * config/microblaze/microblaze-protos.h
23264 (microblaze_legitimate_pic_operand): Declare.
23265
a72d8780 232662013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23267
a72d8780 23268 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23269 New predicate for supported rtx code types.
a72d8780 23270 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23271 call_insn_simple_operand predicate.
23272
541d9ac8
JJ
232732013-03-04 Jakub Jelinek <jakub@redhat.com>
23274
5eb010bc
JJ
23275 PR middle-end/56461
23276 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23277 partitions.ordered_remove.
23278
30862efc
JJ
23279 PR middle-end/56461
23280 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23281 vec_oprnds0.create (1) for modifier == NONE.
23282
8930f723
JJ
23283 PR middle-end/56461
23284 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23285 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23286 vec_oprnds1 right before pushing anything to it for
23287 scalar_shift_arg.
23288
541d9ac8
JJ
23289 PR middle-end/56461
23290 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23291 set nbbs to 0 instead of having separate code path.
23292 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23293 instead of false as last argument if returning NULL.
23294
7aa7f2e3
SL
232952013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23296
23297 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23298 the attribute is now called "target" instead of "option".
23299 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23300 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23301 attribute/pragma name for TARGET_OPTION_VALID_P and
23302 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23303 * doc/tm.texi: Regenerated.
23304
8930f723 233052013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23306
8930f723 23307 * config/microblaze/microblaze.c:
cb8a1637 23308 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23309 * config/microblaze/microblaze.h: Add -mxl-reorder to
23310 DRIVER_SELF_SPECS.
23311 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23312 instructions emitted if TARGET_REORDER.
88b97037
UB
23313 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23314 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23315 separately.
cb8a1637 23316
4dc1d68c
XDL
233172013-03-01 Xinliang David Li <davidxl@google.com>
23318
23319 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23320 walk length.
23321
689eaba3
JJ
233222013-03-01 Jakub Jelinek <jakub@redhat.com>
23323
9d676bf6
JJ
23324 PR middle-end/56461
23325 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23326 vector even when returning true. Fix up function comment formatting.
23327
caff7edf
JJ
23328 PR middle-end/56461
23329 * ira-build.c (ira_loop_nodes_count): New variable.
23330 (create_loop_tree_nodes): Initialize it.
23331 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23332
b6b9227d
JJ
23333 PR middle-end/56461
23334 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23335 method on dr_chain and result_chain.
23336 * tree-vect-stmts.c (vectorizable_store): Only call
23337 result_chain.create if j == 0.
23338
689eaba3
JJ
23339 PR middle-end/56461
23340 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23341 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23342 before overwriting it.
23343
40bf31ed
TB
233442013-03-01 Tobias Burnus <burnus@net-b.de>
23345
23346 * doc/extended.texi (C Extensions): Change order in @menu
23347 to match @node.
23348 (Other MIPS Built-in Functions): Move last MIPS entry before
23349 "picoChip Built-in Functions".
23350 (SH Built-in Functions): Move after RX Built-in Functions.
23351 * doc/gcc.texi (Introduction): Change order in @menu
23352 to match @node.
23353 * doc/md.texi (Constraints): Ditto.
23354 * gty.texi (Type Information): Ditto.
23355 (User-provided marking routines for template types): Make
23356 subsection.
23357 * doc/invoke.texi (AArch64 Options): Move before
23358 "Adapteva Epiphany Options".
23359
e664c61c
KS
233602013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23361 Jakub Jelinek <jakub@redhat.com>
23362
23363 PR sanitizer/56454
23364 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23365 no_address_safety_analysis attribute.
23366 * doc/extend.texi (no_address_safety_attribute): Rename to
23367 no_sanitize_address attribute, mention no_address_safety_analysis
23368 attribute as deprecated alias.
23369
37b5ec8f
JJ
233702013-02-28 Jakub Jelinek <jakub@redhat.com>
23371
23372 PR middle-end/56461
23373 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23374 type to vec<vec<tree> > *.
23375 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23376 to be vec<tree> instead of vec<tree> *, set vec_defs
23377 to vNULL and call vec_defs.create (number_of_vects), adjust other
23378 uses of vec_defs.
23379 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23380 vectorizable_condition): Adjust vect_get_slp_defs callers.
23381
ba96cdfb
JG
233822013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23383
23384 * config/aarch64/aarch64.c
23385 (aarch64_float_const_representable): Remove unused variable.
23386
6f549691
JG
233872013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23388
23389 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23390
af55e82d
JG
233912013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23392
23393 * config/aarch64/aarch64-builtins.c
23394 (aarch64_init_simd_builtins): Make static.
23395
1df3f464
JG
233962013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23397
23398 * config/aarch64/aarch64.c
23399 (aarch64_simd_make_constant): Make static.
23400
f8f42513
MJ
234012013-02-28 Martin Jambor <mjambor@suse.cz>
23402
23403 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23404 with no initialization to the RHS of debug statements.
23405
b48b3fc4
MJ
234062013-02-28 Martin Jambor <mjambor@suse.cz>
23407
23408 PR tree-optimization/56294
23409 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23410 Adjust dumping.
23411 (get_access_replacement): Do not call create_access_replacement.
23412 Assert a replacement exists.
23413 (get_repl_default_def_ssa_name): Create the replacement declaration
23414 itself.
23415
c3ae224c
RR
234162013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23417
23418 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23419 final_end_function.
23420
45fa0eef
MP
234212013-02-28 Marek Polacek <polacek@redhat.com>
23422
23423 PR rtl-optimization/56466
23424 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23425 if we're changing a loop.
23426 (peel_loops_completely): Likewise.
23427
502c067d
PC
234282013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23429
23430 PR c++/55813
23431 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23432
ff24afc8
GJL
234332013-02-28 Georg-Johann Lay <avr@gjlay.de>
23434
23435 PR target/56445
23436 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23437 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23438 INTX_FTYPE_FX, FX_FTYPE_INTX.
23439 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23440
c7b1fc1b
GJL
234412013-02-28 Georg-Johann Lay <avr@gjlay.de>
23442
23443 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23444 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23445 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23446 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23447 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23448 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23449 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23450 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23451 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23452 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23453 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23454 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23455 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23456 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23457 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23458 (avrxmega6): Increase max flash segments from 5 to 6.
23459 * config/avr/t-multilib: Regenerate.
23460 * config/avr/avr-tables.opt: Regenerate.
23461 * doc/avr-mmcu.texi: Regenerate.
23462
4a0e3cfe
GJL
234632013-02-28 Georg-Johann Lay <avr@gjlay.de>
23464
23465 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23466 (avr_device_to_arch): Rename to avr_device_to_ld.
23467 (avr_device_to_as): New prototype.
23468 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23469 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23470 * config/avr/driver-avr.c (avr_device_to_as): New.
23471 (avr_device_to_arch): Rename to avr_device_to_ld.
23472
97785e52
JJ
234732013-02-27 Jakub Jelinek <jakub@redhat.com>
23474
3f292312
JJ
23475 PR middle-end/56461
23476 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23477 method on dr_chain and result_chain.
23478
a344216b
JJ
23479 PR middle-end/56461
23480 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23481 pointer_set_destroy on not_executed_last_iteration.
23482
f121ad02 23483 PR middle-end/56461
88b97037 23484 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23485
307f83a3
JJ
23486 PR middle-end/56461
23487 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23488 FOR_EACH_DEFINED_FUNCTION when freeing state.
23489
e19624ee
JJ
23490 PR middle-end/56461
23491 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23492 pool_free.
23493 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23494 overwriting it.
23495
90e709fd
JJ
23496 PR middle-end/56461
23497 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23498 known_aggs[i].items and release known_aggs vector.
23499
97785e52
JJ
23500 PR middle-end/56461
23501 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23502
235032013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23504
97785e52
JJ
23505 * config/microblaze/microblaze.c (microblaze_emit_compare):
23506 Use xor for EQ/NE comparisions.
23507 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23508 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23509
6fa5e0ed
JJ
235102013-02-27 Jakub Jelinek <jakub@redhat.com>
23511
23512 PR middle-end/56461
23513 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23514 vector.
23515 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23516 vec_safe_push, always update *slot.
23517 (redirect_edge_var_map_clear): Use vec_free.
23518 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23519 (free_var_map_entry): Use vec_free.
23520 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23521 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23522
436a956a
AB
235232013-02-27 Andrey Belevantsev <abel@ispras.ru>
23524
23525 PR middle-end/45472
436a956a
AB
23526 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23527 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23528 Reorder tests for speculativeness in the logical and operator.
23529
f5c2caca
JJ
235302013-02-27 Jakub Jelinek <jakub@redhat.com>
23531
0fcb564b
JJ
23532 * incpath.c (add_standard_paths): Use reconcat instead of concat
23533 where appropriate and avoid leaking memory.
23534
dc357798
JJ
23535 * opts.h: Include obstack.h.
23536 (opts_concat): New prototype.
23537 (opts_obstack): New declaration.
23538 * opts.c (opts_concat): New function.
23539 (opts_obstack): New variable.
23540 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23541 (finish_options): Use opts_concat instead of concat
23542 and XOBNEWVEC instead of XNEWVEC.
23543 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23544 generate_option): Likewise.
23545 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23546 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23547
f5c2caca
JJ
23548 PR target/56455
23549 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23550 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23551
d0163673
JJ
235522013-02-26 Jakub Jelinek <jakub@redhat.com>
23553
23554 PR middle-end/56461
23555 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23556
b5ad2b8e
JR
235572013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23558
23559 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23560 (arm_block_move_unaligned_straight): Likewise.
23561 (arm_adjust_block_mem): Likewise.
23562
9b639e2c
JR
235632013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23564
23565 PR target/48901
23566 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23567 temp, cond and label.
23568 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23569
e13a0ccb
JR
23570 PR target/52500
23571 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23572 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23573
fbe4f171
JR
23574 PR target/52501
23575 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23576 of prologue/epilogue functions.
23577
ae006543
JR
23578 PR target/52550
23579 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23580 Remove unused variable cfa_offset.
23581 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23582
c81369fa
JR
23583 PR target/54639
23584 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23585 type promotion to unsigned.
23586
f8a8fea7
JR
23587 PR target/54640
23588 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23589 for HOST_WIDE_INT of 32 bit / same size as int.
23590 (arm_block_move_unaligned_straight): Likewise.
23591 (arm_adjust_block_mem): Likewise.
23592
f8be5169
JR
23593 PR target/54662
23594 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23595 ALL_CFLAGS.
23596
f1ad3354
MP
235972013-02-26 Marek Polacek <polacek@redhat.com>
23598
23599 PR tree-optimization/56426
88b97037 23600 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23601
a6af0f42
RB
236022013-02-26 Richard Biener <rguenther@suse.de>
23603
23604 PR target/56444
23605 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23606 unused variable loops.
23607
aca43c6c
JJ
236082013-02-26 Jakub Jelinek <jakub@redhat.com>
23609
cecbe5d9
JJ
23610 PR tree-optimization/56448
23611 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23612 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23613 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23614 later operands of the references, or even first operand for
23615 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23616
aca43c6c
JJ
23617 PR tree-optimization/56443
23618 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23619 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23620 to type_for_mode langhook.
23621
53e2e141
MT
236222013-02-25 Matt Turner <mattst88@gmail.com>
23623
23624 * doc/invoke.texi: Document r4700.
23625
259ee451
RB
236262013-02-25 Richard Biener <rguenther@suse.de>
23627
23628 PR tree-optimization/56175
23629 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23630 split out from ...
23631 (simplify_bitwise_binary): ... here. Also guard the conversion
23632 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23633
6d65e8f1
CM
236342013-02-25 Catherine Moore <clm@codesourcery.com>
23635
23636 Revert:
23637 2013-02-24 Catherine Moore <clm@codesourcery.com>
23638 Maciej W. Rozycki <macro@codesourcery.com>
23639 Tom de Vries <tom@codesourcery.com>
a72d8780 23640 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
23641 Iain Sandoe <iain@codesourcery.com>
23642 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23643 Chao-ying Fu <fu@mips.com>
88b97037 23644
6d65e8f1 23645 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23646 Document new function attributes.
6d65e8f1
CM
23647 * doc/invoke.texi (minterlink-compressed, mmicromips,
23648 m14k, m14ke, m14kec): Document new options.
23649 (minterlink-mips16): Update documentation.
23650 * doc/md.texi (ZC, ZD): Document new constraints.
23651 * configure.ac (gcc_cv_as_micromips): Check if linker
23652 supports the .set micromips directive.
23653 * configure: Regenerate.
23654 * config.in: Regenerate.
23655 * config/mips/mips-tables.opt: Regenerate.
23656 * config/mips/micromips.md: New file.
23657 * constraints.md (ZC, AD): New constraints.
23658 * config/mips/predicates.md (movep_src_register): New predicate.
23659 (movep_src_operand): New predicate.
23660 (non_volatile_mem_operand): New predicate.
23661 * config/mips/mips.md (multimem): New type.
23662 (length): Differentiate between 17-bit and 18-bit branch offsets.
23663 (MOVEP1, MOVEP2): New mode iterator.
23664 (mov_<load>l): Use ZC constraint.
23665 (mov_<load>r): Likewise.
23666 (mov_<store>l): Likewise.
23667 (mov_<store>r): Likewise.
23668 (*branch_equality<mode>_inverted): Add microMIPS support.
23669 (*branch_equality<mode>): Likewise.
23670 (*jump_absolute): Likewise.
23671 (indirect_jump_<mode>): Likewise.
23672 (tablejump_<mode>): Likewise.
23673 (<optab>_internal): Likewise.
23674 (sibcall_internal): Likewise.
23675 (sibcall_value_internal): Likewise.
23676 (prefetch): Use constraint ZD.
23677 * config/mips/mips.opt (minterlink-compressed): New option.
23678 (minterlink-mips16): Now an alias for minterlink-compressed.
23679 (mmicromips): New option.
23680 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23681 (compare_and_swap_12): Likewise.
23682 (sync_add<mode>): Likewise.
23683 (sync_<optab>_12): Likewise.
23684 (sync_old_<optab>_12): Likewise.
23685 (sync_new_<optab>_12): Likewise.
23686 (sync_nand_12): Likewise.
23687 (sync_old_nand_12): Likewise.
23688 (sync_new_nand_12): Likewise.
23689 (sync_sub<mode>): Likewise.
23690 (sync_old_add<mode>): Likewise.
23691 (sync_old_sub<mode>): Likewise.
23692 (sync_new_add<mode>): Likewise.
23693 (sync_new_sub<mode>): Likewise.
23694 (sync_<optab><mode>): Likewise.
23695 (sync_old_<optab><mode>): Likewise.
23696 (sync_new_<optab><mode>): Likewise.
23697 (sync_nand<mode>): Likewise.
23698 (sync_old_nand<mode>): Likewise.
23699 (sync_new_nand<mode>): Likewise.
23700 (sync_lock_test_and_set<mode>): Likewise.
23701 (test_and_set_12): Likewise.
23702 (atomic_compare_and_swap<mode>): Likewise.
23703 (atomic_exchange<mode>_llsc): Likewise.
23704 (atomic_fetch_add<mode>_llsc): Likewise.
23705 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23706 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23707 (umips_save_restore_pattern_p): Likewise.
23708 (umips_load_store_pair_p): Likewise.
23709 (umips_output_load_store_pair): Likewise.
23710 (umips_movep_target_p): Likewise.
23711 (umips_12bit_offset_address_p): Likewise.
23712 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23713 (mips_base_mips16): Rename this...
23714 (mips_base_compression_flags): ...to this. Update all uses.
23715 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23716 (mips_mips16_decl_p): Delete.
23717 (mips_nomips16_decl_p): Delete.
23718 (mips_get_compress_on_flags): New function.
23719 (mips_get_compress_off_flags): New function.
23720 (mips_get_compress_mode): New function.
23721 (mips_get_compress_on_name): New function.
23722 (mips_get_compress_off_name): New function.
23723 (mips_insert_attributes): Support multiple compression types.
23724 (mips_merge_decl_attributes): Likewise.
23725 (umips_12bit_offset_address_p): New function.
23726 (mips_start_function_definition): Emit .set micromips directive.
23727 (mips_call_may_need_jalx_p): New function.
23728 (mips_function_ok_for_sibcall): Add microMIPS support.
23729 (mips_print_operand_punctuation): Support short delay slots and
23730 compact jumps.
23731 (umips_swm_mask, umips_swm_encoding): New.
23732 (umips_build_save_restore): New function.
23733 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23734 (was_mips16_p): Remove.
23735 (old_compression_mode): New.
23736 (mips_set_compression_mode): New function.
23737 (mips_set_current_function): Add microMIPS support.
23738 (mips_option_override): Likewise.
23739 (umips_save_restore_pattern_p): New function.
23740 (umips_output_save_restore): New function.
23741 (umips_load_store_pair_p_1): New function.
23742 (umips_load_store_pair_p): New function.
23743 (umips_output_load_store_pair_1): New function.
23744 (umips_output_load_store_pair): New function.
23745 (umips_movep_target_p) New function.
23746 (mips_prepare_pch_save): Add microMIPS support.
23747 * config/mips/mips.h (TARGET_COMPRESSION): New.
23748 (TARGET_CPU_CPP_BUILTINS): Update macro
23749 to use new compression flags and to support microMIPS.
23750 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23751 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23752 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23753 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23754 (ASM_SPEC): Support mmicromips and mno-micromips.
23755 (M16STORE_REG_P): New macro.
23756 (MIPS_CALL): Support TARGET_MICROMIPS.
23757 (MICROMIPS_J): New macro.
23758 (mips_base_mips16): Rename this...
23759 (mips_base_compression_flags): ...to this.
23760 (UMIPS_12BIT_OFFSET_P): New macro.
23761 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23762 (MULTILIB_DIRNAMES): Likewise.
23763
5e5df392
TV
237642013-02-25 Tom de Vries <tom@codesourcery.com>
23765
23766 PR rtl-optimization/56131
23767 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
23768 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
23769 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
23770
3fdb53c1
TB
237712013-02-25 Tobias Burnus <burnus@net-b.de>
23772
23773 * doc/invoke.texi (-fsanitize=): Move from optimization
23774 to debugging options.
23775
ed358aea
AB
237762013-02-25 Andrey Belevantsev <abel@ispras.ru>
23777
23778 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
23779
f45e9053
AB
237802013-02-25 Andrey Belevantsev <abel@ispras.ru>
23781 Alexander Monakov <amonakov@ispras.ru>
23782
23783 PR middle-end/56077
23784 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
23785 flush pending lists also on non-jumps. Adjust comment.
23786
6941b508
CM
237872013-02-24 Catherine Moore <clm@codesourcery.com>
23788 Maciej W. Rozycki <macro@codesourcery.com>
23789 Tom de Vries <tom@codesourcery.com>
a72d8780 23790 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
23791 Iain Sandoe <iain@codesourcery.com>
23792 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23793 Chao-ying Fu <fu@mips.com>
6941b508
CM
23794
23795 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23796 Document new function attributes.
6941b508
CM
23797 * doc/invoke.texi (minterlink-compressed, mmicromips,
23798 m14k, m14ke, m14kec): Document new options.
23799 (minterlink-mips16): Update documentation.
23800 * doc/md.texi (ZC, ZD): Document new constraints.
23801 * configure.ac (gcc_cv_as_micromips): Check if linker
23802 supports the .set micromips directive.
23803 * configure: Regenerate.
23804 * config.in: Regenerate.
23805 * config/mips/mips-tables.opt: Regenerate.
23806 * config/mips/micromips.md: New file.
23807 * constraints.md (ZC, AD): New constraints.
23808 * config/mips/predicates.md (movep_src_register): New predicate.
23809 (movep_src_operand): New predicate.
23810 (non_volatile_mem_operand): New predicate.
23811 * config/mips/mips.md (multimem): New type.
23812 (length): Differentiate between 17-bit and 18-bit branch offsets.
23813 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 23814 (mov_<load>l): Use ZC constraint.
6941b508
CM
23815 (mov_<load>r): Likewise.
23816 (mov_<store>l): Likewise.
23817 (mov_<store>r): Likewise.
23818 (*branch_equality<mode>_inverted): Add microMIPS support.
23819 (*branch_equality<mode>): Likewise.
23820 (*jump_absolute): Likewise.
23821 (indirect_jump_<mode>): Likewise.
23822 (tablejump_<mode>): Likewise.
23823 (<optab>_internal): Likewise.
23824 (sibcall_internal): Likewise.
23825 (sibcall_value_internal): Likewise.
23826 (prefetch): Use constraint ZD.
23827 * config/mips/mips.opt (minterlink-compressed): New option.
23828 (minterlink-mips16): Now an alias for minterlink-compressed.
23829 (mmicromips): New option.
23830 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23831 (compare_and_swap_12): Likewise.
23832 (sync_add<mode>): Likewise.
23833 (sync_<optab>_12): Likewise.
23834 (sync_old_<optab>_12): Likewise.
23835 (sync_new_<optab>_12): Likewise.
23836 (sync_nand_12): Likewise.
23837 (sync_old_nand_12): Likewise.
23838 (sync_new_nand_12): Likewise.
23839 (sync_sub<mode>): Likewise.
23840 (sync_old_add<mode>): Likewise.
23841 (sync_old_sub<mode>): Likewise.
23842 (sync_new_add<mode>): Likewise.
23843 (sync_new_sub<mode>): Likewise.
23844 (sync_<optab><mode>): Likewise.
23845 (sync_old_<optab><mode>): Likewise.
23846 (sync_new_<optab><mode>): Likewise.
23847 (sync_nand<mode>): Likewise.
23848 (sync_old_nand<mode>): Likewise.
23849 (sync_new_nand<mode>): Likewise.
23850 (sync_lock_test_and_set<mode>): Likewise.
23851 (test_and_set_12): Likewise.
23852 (atomic_compare_and_swap<mode>): Likewise.
23853 (atomic_exchange<mode>_llsc): Likewise.
23854 (atomic_fetch_add<mode>_llsc): Likewise.
23855 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23856 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23857 (umips_save_restore_pattern_p): Likewise.
23858 (umips_load_store_pair_p): Likewise.
23859 (umips_output_load_store_pair): Likewise.
23860 (umips_movep_target_p): Likewise.
23861 (umips_12bit_offset_address_p): Likewise.
23862 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23863 (mips_base_mips16): Rename this...
23864 (mips_base_compression_flags): ...to this. Update all uses.
23865 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23866 (mips_mips16_decl_p): Delete.
23867 (mips_nomips16_decl_p): Delete.
3fdb53c1 23868 (mips_get_compress_on_flags): New function.
6941b508
CM
23869 (mips_get_compress_off_flags): New function.
23870 (mips_get_compress_mode): New function.
23871 (mips_get_compress_on_name): New function.
23872 (mips_get_compress_off_name): New function.
23873 (mips_insert_attributes): Support multiple compression types.
23874 (mips_merge_decl_attributes): Likewise.
23875 (umips_12bit_offset_address_p): New function.
23876 (mips_start_function_definition): Emit .set micromips directive.
23877 (mips_call_may_need_jalx_p): New function.
23878 (mips_function_ok_for_sibcall): Add microMIPS support.
23879 (mips_print_operand_punctuation): Support short delay slots and
23880 compact jumps.
23881 (umips_swm_mask, umips_swm_encoding): New.
23882 (umips_build_save_restore): New function.
23883 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23884 (was_mips16_p): Remove.
23885 (old_compression_mode): New.
23886 (mips_set_compression_mode): New function.
23887 (mips_set_current_function): Add microMIPS support.
23888 (mips_option_override): Likewise.
23889 (umips_save_restore_pattern_p): New function.
23890 (umips_output_save_restore): New function.
23891 (umips_load_store_pair_p_1): New function.
23892 (umips_load_store_pair_p): New function.
23893 (umips_output_load_store_pair_1): New function.
23894 (umips_output_load_store_pair): New function.
23895 (umips_movep_target_p) New function.
23896 (mips_prepare_pch_save): Add microMIPS support.
23897 * config/mips/mips.h (TARGET_COMPRESSION): New.
23898 (TARGET_CPU_CPP_BUILTINS): Update macro
23899 to use new compression flags and to support microMIPS.
23900 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23901 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23902 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23903 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23904 (ASM_SPEC): Support mmicromips and mno-micromips.
23905 (M16STORE_REG_P): New macro.
23906 (MIPS_CALL): Support TARGET_MICROMIPS.
23907 (MICROMIPS_J): New macro.
23908 (mips_base_mips16): Rename this...
23909 (mips_base_compression_flags): ...to this.
23910 (UMIPS_12BIT_OFFSET_P): New macro.
23911 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23912 (MULTILIB_DIRNAMES): Likewise.
23913
cdebbc6d
JJ
239142013-02-24 Jakub Jelinek <jakub@redhat.com>
23915
23916 PR target/52555
23917 * target-globals.c (save_target_globals): For init_reg_sets and
23918 target_reinit remporarily set this_fn_optabs to this_target_optabs.
23919
18c63565
JG
239202013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
23921
23922 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
23923 * config/aarch64/t-aarch64
23924 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
23925
2194f7a2
VM
239262013-02-22 Vladimir Makarov <vmakarov@redhat.com>
23927
23928 PR inline-asm/56148
23929 * lra-constraints.c (process_alt_operands): Reload operand
23930 conflicting with earlier clobber only if no more other conflicting
23931 operands.
23932
7d613735
JJ
239332013-02-22 Jakub Jelinek <jakub@redhat.com>
23934
23935 PR sanitizer/56393
23936 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
23937 if not linking a shared library.
23938
ac8d93a7
SL
239392013-02-22 Seth LaForge <sethml@google.com>
23940
23941 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
23942
e0237780
GY
239432013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
23944
3fdb53c1
TB
23945 * config/arm/arm.md (split for extendsidi): Update condition.
23946 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
23947 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
23948 (qhs_zextenddi_cstr): Likewise.
e0237780 23949
d7fde18c
JJ
239502013-02-21 Jakub Jelinek <jakub@redhat.com>
23951
be63b77d
JJ
23952 PR middle-end/56420
23953 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
23954 avoid signed wrapping.
23955 (expand_mult): Handle properly multiplication by
23956 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
23957 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
23958 in the compiler if coeff is HOST_WIDE_INT_MIN.
23959 (expand_divmod): Don't make ext_op1 static, change it's type to
23960 uhwi. Avoid undefined behavior in -INTVAL (op1).
23961
d7fde18c
JJ
23962 PR rtl-optimization/50339
23963 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
23964 field.
23965 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
23966 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
23967 into splitting_ashiftrt field.
23968 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
23969 ASHIFTRT.
23970 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
23971 choices.
23972
6aad4455
AH
239732013-02-20 Aldy Hernandez <aldyh@redhat.com>
23974
23975 PR middle-end/56108
23976 * trans-mem.c (execute_tm_mark): Do not expand transactions that
23977 are sure to go irrevocable.
23978
38fe784d
HPN
239792013-02-21 Hans-Peter Nilsson <hp@axis.com>
23980
23981 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
23982 scalars are valid operands.
23983
0fd44da3
MJ
239842013-02-21 Martin Jambor <mjambor@suse.cz>
23985
23986 PR tree-optimization/56310
23987 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
23988 only matching indices and non-negative final offsets.
23989 (intersect_aggregates_with_edge): Pass src_idx to
23990 agg_replacements_to_vector. Pass src_idx insstead of index to
23991 intersect_with_agg_replacements.
23992
7a92038b
MJ
239932013-02-21 Martin Jambor <mjambor@suse.cz>
23994
23995 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
23996 instead of hard-wired defaults.
23997
c0da9c37
MR
239982013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
23999
24000 * doc/invoke.texi (MIPS Options): Update documentation of the
24001 floating-point multiply-accumulate instruction restrictions.
24002
d247ea0c 240032013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24004
24005 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24006 asan_shadow_offset on x86_64 linux.
24007
22deefcb
RB
240082013-02-21 Richard Biener <rguenther@suse.de>
24009
24010 PR tree-optimization/56415
24011 Revert
24012 2013-02-11 Richard Biener <rguenther@suse.de>
24013
24014 PR tree-optimization/56273
24015 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24016 first VRP run.
24017
7bcc6e75
JJ
240182013-02-21 Jakub Jelinek <jakub@redhat.com>
24019
a0ad148f
JJ
24020 PR bootstrap/56258
24021 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24022 instead of @itemx.
24023
7bcc6e75
JJ
24024 PR inline-asm/56405
24025 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24026 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24027
a0a7b611
JH
240282013-02-20 Jan Hubicka <jh@suse.cz>
24029
24030 PR tree-optimization/56265
88b97037
UB
24031 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24032 when target is referenced for first time.
a0a7b611 24033
c0e50f72
RB
240342013-02-20 Richard Biener <rguenther@suse.de>
24035
24036 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24037 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24038 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24039 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24040 not return anything.
24041 (rename_ssa_copies): Do not remove unused locals.
24042 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24043 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24044 * passes.c (execute_function_todo): Do not schedule unused locals
24045 removal if cleanup_tree_cfg did something.
24046 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24047 about the number of removed locals.
24048
a52ca739
RB
240492013-02-20 Richard Biener <rguenther@suse.de>
24050
24051 PR tree-optimization/56398
88b97037 24052 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24053
ec9c9d1b
MJ
240542013-02-20 Martin Jambor <mjambor@suse.cz>
24055
24056 PR tree-optimization/55334
24057 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24058 restricted pointers to arrays.
24059
e91c8ed6 240602013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24061 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24062
24063 PR tree-optimization/56396
24064 * tree-ssa-ccp.c (n_const_val): New static variable.
24065 (get_value): Return NULL for SSA names we don't have a lattice
24066 entry for.
24067 (ccp_initialize): Initialize n_const_val.
24068 * tree-ssa-copy.c (n_copy_of): New static variable.
24069 (init_copy_prop): Initialize n_copy_of.
24070 (get_value): Return NULL_TREE for SSA names we don't have a
24071 lattice entry for.
24072
3d916479
MJ
240732013-02-20 Martin Jambor <mjambor@suse.cz>
24074
24075 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24076
71a86758
RB
240772013-02-20 Richard Biener <rguenther@suse.de>
24078
24079 * genpreds.c (write_lookup_constraint): Do not compare first
24080 letter of the constraint again.
24081
79836a12
RB
240822013-02-20 Richard Biener <rguenther@suse.de>
24083
24084 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24085 and ceil_log2.
24086 (get_use_iv_cost): Terminate hashtable walk when coming across
24087 an empty entry.
24088
bbe4fb2c
IZ
240892013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24090
24091 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24092 reassociation for avx2 targets.
24093
a72d8780 240942012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24095
c77f83d5
EI
24096 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24097 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24098 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24099 version and TARGET_PATTERN_COMPARE check
24100 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24101
a72d8780 241022012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24103
a72d8780 24104 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24105 function before branching.
24106
242387fa
AB
241072012-02-19 Andrey Belevantsev <abel@ispras.ru>
24108
24109 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24110 DUMP_INSN_RTX_UID.
24111 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24112
b4979ab9
AB
241132012-02-19 Andrey Belevantsev <abel@ispras.ru>
24114
24115 PR middle-end/55889
b4979ab9
AB
24116 * sel-sched.c: Include ira.h.
24117 (implicit_clobber_conflict_p): New function.
24118 (moveup_expr): Use it.
88b97037 24119 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24120
24d63016
RB
241212013-02-19 Richard Biener <rguenther@suse.de>
24122
24123 PR tree-optimization/56384
24124 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24125 (vn_hash_type): Split out from ...
24126 (vn_hash_constant_with_type): ... here.
24127 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24128 (vn_phi_eq): Compare types from vn_phi_s structure.
24129 (vn_phi_lookup): Populate vn_phi_s type.
24130 (vn_phi_insert): Likewise.
24131
a475fd3d
JJ
241322013-02-19 Jakub Jelinek <jakub@redhat.com>
24133
47cc28f5
JJ
24134 PR tree-optimization/56350
24135 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24136 if haven't found reduction or nested cycle operand, rather than
24137 asserting we must find it.
24138
a475fd3d
JJ
24139 PR tree-optimization/56381
24140 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24141 to fold_build3.
24142
241432013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24144 Jakub Jelinek <jakub@redhat.com>
24145
24146 PR target/52555
24147 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24148 (swap_optab_enable): Same.
24149 (init_all_optabs): Use argument instead of global.
88b97037 24150 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24151 * expr.h (init_all_optabs): Add argument to prototype.
24152 (TREE_OPTIMIZATION_OPTABS): New.
24153 (save_optabs_if_changed): Protoize.
24154 * optabs.h: Declare this_fn_optabs.
24155 * optabs.c (save_optabs_if_changed): New.
24156 Declare this_fn_optabs.
24157 (init_optabs): Add argument to init_all_optabs() call.
24158 * function.c (invoke_set_current_function_hook): Handle per
24159 function optabs.
24160 * function.h (struct function): New field optabs.
24161 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24162 optimization_current_node has changed.
24163 * target-globals.h (save_target_globals_default_opts): Protoize.
24164 * target-globals.c (save_target_globals_default_opts): New.
24165
3f587ca3
JDA
241662013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24167
24168 PR target/56347
24169 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24170 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24171
24172 PR target/56214
24173 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24174 and HImode, require all displacements to be an integer multiple of
24175 their mode size.
ceaca33e
JDA
24176 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24177 only allow QImode and HImode when reload is in progress and strict is
24178 true. Likewise for symbolic addresses. Use base14_operand to check
24179 displacements in REG+BASE addresses.
24180
fe0b4796
RB
241812013-02-18 Richard Biener <rguenther@suse.de>
24182
24183 PR tree-optimization/56366
24184 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24185 handle sign-conversion of outer-loop initial induction value.
24186
6aaf596b
RB
241872013-02-18 Richard Biener <rguenther@suse.de>
24188
73db8ff1 24189 PR middle-end/56349
6aaf596b
RB
24190 * cfghooks.c (merge_blocks): If we merge a latch into another
24191 block adjust references to it.
24192 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24193 (verify_loop_structure): Verify that a recorded latch is in fact
24194 a latch.
24195
5e97dfb6
RB
241962013-02-18 Richard Biener <rguenther@suse.de>
24197
24198 PR tree-optimization/56321
24199 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24200 order SSA name release and virtual operand unlinking.
24201
825527e8
EI
242022013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24203
24204 * config/microblaze/microblaze.md (save_stack_block): Define.
24205 (restore_stack_block): Likewise.
24206
debd11d9
EI
242072013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24208
24209 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24210 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24211 * config/microblaze/microblaze.c (microblaze_option_override):
24212 Bail out early for PIC modes when target does not support PIC.
24213
8ec77be0
EI
242142013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24215
88b97037 24216 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24217 Replace with a microblaze version.
24218 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24219 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24220 microblaze.
24221
b41288b3
JJ
242222013-02-16 Jakub Jelinek <jakub@redhat.com>
24223 Dodji Seketeli <dodji@redhat.com>
24224
24225 PR asan/56330
88b97037 24226 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24227 (instrument_mem_region_access): Do not forget to always put
24228 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24229 0) statement, even for cases where either 'base' or 'base + len'
24230 are not instrumented -- because they have been previously
24231 instrumented. Simplify the logic by putting all the statements
24232 instrument 'base + len' inside a sequence, and then insert that
24233 sequence right before the current insertion point. Then, to
24234 instrument 'base + len', just get an iterator on that statement.
24235 And do not forget to update the pointer to iterator the function
24236 received as argument.
24237
47918951
VM
242382013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24239
24240 PR rtl-optimization/56348
24241 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24242
3fb7c699
SB
242432013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24244
24245 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24246 (clean_graph_dump_file): Pass base to start_graph_dump.
24247
576fe41a
RH
242482013-02-14 Richard Henderson <rth@redhat.com>
24249
24250 PR target/55941
24251 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24252
bb3accfa
SB
242532013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24254
24255 * collect2-aix.h: Define F_LOADONLY.
24256
03143140
RB
242572013-02-14 Richard Biener <rguenther@suse.de>
24258
24259 PR lto/50494
24260 * varasm.c (output_constant_def_1): Get the decl representing
24261 the constant as argument.
24262 (output_constant_def): Wrap output_constant_def_1.
24263 (make_decl_rtl): Use output_constant_def_1 with the decl
24264 representing the constant.
24265 (build_constant_desc): Optionally re-use a decl already
24266 representing the constant.
24267 (tree_output_constant_def): Adjust.
24268
8fb06726
DS
242692013-02-14 Dodji Seketeli <dodji@redhat.com>
24270
24271 Fix an asan crash
24272 * asan.c (instrument_builtin_call): Really put the length of the
24273 second source argument into src1_len.
24274
c4bfe8bf
JJ
242752013-02-13 Jakub Jelinek <jakub@redhat.com>
24276
24277 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24278 argument. If it is false, don't create edge from then_bb to
24279 fallthru_bb.
24280 (insert_if_then_before_iter): Pass true to it.
24281 (build_check_stmt): Pass false to it.
24282 (transform_statements): Flush hash table only on extended basic
24283 block boundaries, rather than at the beginning of every bb.
24284 Don't flush hash table on nonfreeing_call_p calls.
24285 * tree-flow.h (nonfreeing_call_p): New prototype.
24286 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24287
7afe2801
DM
242882013-02-13 David S. Miller <davem@davemloft.net>
24289
24290 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24291
70cc3288
VM
242922013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24293
24294 PR target/56184
24295 * ira.c (max_regno_before_ira): Move from ...
24296 (ira): ... here.
24297 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24298 vec_safe_length.
24299
6422242b
JJ
243002013-02-13 Jakub Jelinek <jakub@redhat.com>
24301
24302 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24303
976a81ee
RB
243042013-02-13 Richard Biener <rguenther@suse.de>
24305
24306 PR lto/56295
24307 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24308 globals in MEM_REFs.
24309
c1874a87
RB
243102013-02-13 Richard Biener <rguenther@suse.de>
24311
24312 * loop-init.c (loop_optimizer_init): Clear loop state when
24313 re-initializing preserved loops.
24314 * loop-unswitch.c (unswitch_single_loop): Return whether
24315 we unswitched the loop. Do not verify loop state here.
88b97037 24316 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24317
b4ab7d34
KS
243182013-02-13 Kostya Serebryany <kcc@google.com>
24319
88b97037
UB
24320 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24321 on x86_64 linux.
b4ab7d34
KS
24322 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24323
bdcbe80c
DS
243242013-02-12 Dodji Seketeli <dodji@redhat.com>
24325
24326 Avoid instrumenting duplicated memory access in the same basic block
24327 * Makefile.in (asan.o): Add new dependency on hash-table.h
24328 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24329 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24330 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24331 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24332 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24333 (get_mem_ref_of_assignment): New functions.
24334 (get_mem_refs_of_builtin_call): Extract from
24335 instrument_builtin_call and tweak a little bit to make it fit with
24336 the new signature.
24337 (instrument_builtin_call): Use the new
24338 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24339 of is_gimple_builtin_call.
24340 (instrument_derefs, instrument_mem_region_access): Insert the
24341 instrumented memory reference into the hash table.
24342 (maybe_instrument_assignment): Renamed instrument_assignment into
24343 this, and change it to advance the iterator when instrumentation
24344 actually happened and return true in that case. This makes it
24345 homogeneous with maybe_instrument_assignment, and thus give a
24346 chance to callers to be more 'regular'.
24347 (transform_statements): Clear the memory reference hash table
24348 whenever we enter a new BB, when we cross a function call, or when
24349 we are done transforming statements. Use
24350 maybe_instrument_assignment instead of instrumentation. No more
24351 need to special case maybe_instrument_assignment and advance the
24352 iterator after calling it; it's now handled just like
24353 maybe_instrument_call. Update comment.
24354
4861a1f7
RB
243552013-02-13 Richard Biener <rguenther@suse.de>
24356
24357 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24358 Fix loop discovery code.
24359
1c86bd80
VM
243602013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24361
24362 PR inline-asm/56148
24363 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24364 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24365 the operand is not reloaded. Prefer to reload conflicting operand
24366 if earlyclobber and matching operands are the same.
24367
7cbda518
RB
243682013-02-12 Richard Biener <rguenther@suse.de>
24369
24370 PR lto/56297
24371 * lto-streamer-out.c (write_symbol): Do not output symbols
24372 for hard register variables.
24373
e68a4ef6
GJL
243742013-02-12 Georg-Johann Lay <avr@gjlay.de>
24375
24376 PR target/54222
24377 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24378 (umulsidi3_insn, mulsidi3_insn): New insns.
24379
a72d8780 243802013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24381
24382 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24383 (struct tune_params): Add vec_costs field.
24384 * config/arm/arm.c (arm_builtin_vectorization_cost)
24385 (arm_add_stmt_cost): New functions.
24386 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24387 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24388 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24389 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24390 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24391 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24392 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24393
43320568
RB
243942013-02-12 Richard Biener <rguenther@suse.de>
24395
24396 PR lto/56295
24397 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24398 decls again if possible.
24399
a011aa39
RB
244002013-02-12 Richard Biener <rguenther@suse.de>
24401
24402 PR middle-end/56288
24403 * tree-ssa.c (verify_ssa_name): Fix check, move
24404 SSA_NAME_IN_FREE_LIST check up.
24405
6da26889
JJ
244062013-02-12 Jakub Jelinek <jakub@redhat.com>
24407 Steven Bosscher <steven@gcc.gnu.org>
24408
24409 PR rtl-optimization/56151
24410 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24411 equal to op0 or op1, and last_insn pattern is CODE operation
24412 with MEM dest and one of the operands matches that MEM.
24413
f80e0faf
ST
244142013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24415
24416 * doc/extend.texi: Document Function Multiversioning and "default"
24417 parameter string to target attribute.
24418 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24419 target attribute parameter is "default".
24420 (ix86_compare_version_priority): Remove checks for target attribute.
24421 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24422 Remove check for target attribute equal to NULL. Add assert.
24423 (ix86_generate_version_dispatcher_body): Change error to sorry.
24424
6c59ffd1
IS
244252013-02-11 Iain Sandoe <iain@codesourcery.com>
24426 Jack Howarth <howarth@bromo.med.uc.edu>
24427 Patrick Marlier <patrick.marlier@gmail.com>
24428
24429 PR libitm/55693
24430 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24431 define ENDFILE_SPEC as TM_DESTRUCTOR.
24432 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24433
a72d8780 244342013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24435 Jack Howarth <howarth@bromo.med.uc.edu>
24436 Jakub Jelinek <jakub@redhat.com>
24437
24438 PR sanitizer/55617
24439 * config/darwin.c (cdtor_record): Rename ctor_record.
24440 (sort_cdtor_records): Rename sort_ctor_records.
24441 (finalize_dtors): New routine to sort destructors by
24442 priority before use in assemble_integer.
24443 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24444
b63fe007
UB
244452013-02-11 Uros Bizjak <ubizjak@gmail.com>
24446
24447 PR rtl-optimization/56275
24448 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24449 offset is non-negative and less than cmode size before
24450 calling simplify_subreg.
24451
8e89b5b5
RB
244522013-02-11 Richard Biener <rguenther@suse.de>
24453
24454 PR tree-optimization/56264
24455 * cfgloop.h (fix_loop_structure): Adjust prototype.
24456 * loop-init.c (fix_loop_structure): Return the number of
24457 newly discovered loops.
24458 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24459 are discovered, do a full loop-closed SSA rewrite.
24460
b4a4b56d
RB
244612013-02-11 Richard Biener <rguenther@suse.de>
24462
24463 PR tree-optimization/56273
24464 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24465 first VRP run.
24466 (check_array_ref): Fix missing newline in dumps.
24467 (search_for_addr_array): Likewise.
24468
0c885229
DE
244692013-02-09 David Edelsohn <dje.gcc@gmail.com>
24470
24471 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24472
59ac9a55
JJ
244732013-02-09 Jakub Jelinek <jakub@redhat.com>
24474
24475 PR target/56256
24476 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24477
25bb0bb5
VM
244782013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24479
24480 PR rtl-optimization/56246
0c885229 24481 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24482 reload pseudo.
24483 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24484 constraints are satisfied.
24485
a698cc03
JL
244862013-02-08 Jeff Law <law@redhat.com>
24487
24488 PR debug/53948
24489 * emit-rtl.c (reg_is_parm_p): New function.
24490 * regs.h (reg_is_parm_p): New prototype.
24491 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24492 callee-clobbered registers.
24493
e1122ddd
MM
244942013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24495
24496 PR target/56043
24497 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24498 If there is no implicit builtin declaration, just return NULL.
24499
19c5f6e6
UB
245002013-02-08 Uros Bizjak <ubizjak@gmail.com>
24501
24502 * config/i386/sse.md (FMAMODEM): New mode iterator.
24503 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24504 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24505
2480f2ca 245062013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24507
2480f2ca
UB
24508 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24509 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24510 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24511
245122013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24513
24514 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24515 (microblaze*-*-elf): Likewise.
24516 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24517 LINK_SPEC.
24518 * config/microblaze/microblaze-c.c: Add builtin defines for
24519 _LITTLE_ENDIAN and _BIG_ENDIAN.
24520 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24521 add to TARGET_DEFAULT flags.
76ef61fb 24522 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24523 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24524 * config/microblaze/microblaze.md: Update extendsidi2 and
24525 movdi_internal instructions to use low-order / high-order reg
24526 print_operands.
24527 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24528 options and inversemask / mask of LITTLE_ENDIAN.
24529 * config/microblaze/t-microblaze: Expand multilib options to
24530 include mlittle-endian (le) and update exceptions patterns.
24531
600a5961
JJ
245322013-02-08 Jakub Jelinek <jakub@redhat.com>
24533
5df81313
JJ
24534 PR rtl-optimization/56195
24535 * lra-constraints.c (get_reload_reg): Don't reuse regs
24536 if they have smaller mode than requested, if they have
24537 wider mode than requested, try to return a SUBREG.
24538
600a5961
JJ
24539 PR tree-optimization/56250
24540 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24541 if type is unsigned and code isn't MULT_EXPR.
24542
ff544649
GJL
245432013-02-08 Georg-Johann Lay <avr@gjlay.de>
24544
24545 PR tree-optimization/56064
24546 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24547 bits according to mode.
24548 * fixed-value.h (fixed_from_double_int)
24549 (const_fixed_from_double_int): Adjust comments.
24550
e45cde98
RB
245512013-02-08 Richard Biener <rguenther@suse.de>
24552
24553 PR lto/56231
24554 * lto-streamer.h (struct data_in): Remove current_file, current_line
24555 and current_col members.
24556 * lto-streamer-out.c (lto_output_location): Stream changed bits
24557 en-block for efficiency.
24558 * lto-streamer-in.c (clear_line_info): Remove.
24559 (lto_input_location): Cache current file, line and column
24560 globally via local statics. Read changed bits en-block.
24561 (input_function): Do not call clear_line_info.
24562 (lto_read_body): Likewise.
24563 (lto_input_toplevel_asms): Likewise.
24564
c1ca73d8
MM
245652013-02-08 Michael Matz <matz@suse.de>
24566
24567 PR tree-optimization/52448
24568 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24569 (nt_call_phase): New static.
24570 (add_or_mark_expr): Only mark accesses with newer phase than any
24571 call seen.
24572 (nonfreeing_call_p): New.
24573 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24574 (nt_fini_block): Keep blocks marked as visited.
24575 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24576
57548aa2
RB
245772013-02-08 Richard Biener <rguenther@suse.de>
24578
24579 * ira.c (ira): Free broken dominator information.
24580
8e10366f
UB
245812013-02-08 Uros Bizjak <ubizjak@gmail.com>
24582
24583 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24584
f64fb0fa
MP
245852013-02-08 Marek Polacek <polacek@redhat.com>
24586
8e10366f 24587 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24588
0375167b
RB
245892013-02-08 Richard Biener <rguenther@suse.de>
24590
24591 PR middle-end/56181
24592 * cfgloop.h (flow_loops_find): Adjust.
24593 (bb_loop_header_p): Declare.
24594 * cfgloop.c (bb_loop_header_p): New function split out from ...
24595 (flow_loops_find): ... here. Adjust function signature,
24596 support incremental loop structure update.
24597 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24598 * cfgloopmanip.c (fix_loop_structure): Move ...
24599 * loop-init.c (fix_loop_structure): ... here.
24600 (apply_loop_flags): Split out from ...
24601 (loop_optimizer_init): ... here.
24602 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24603 in incremental mode, only remove dead loops here.
24604
85d768f3
GJL
246052013-02-08 Georg-Johann Lay <avr@gjlay.de>
24606
24607 PR target/54222
24608 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24609 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24610 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24611 (*round<mode>3.libgcc): New insns for fixed-modes.
24612 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24613 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24614 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24615 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24616 implementations. Define to __builtin_avr_absFX,
24617 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24618 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24619 __builtin_avr_countlsFX, respectively.
24620 * config/avr/avr-c.c (target.h): Include it.
24621 (enum avr_builtin_id): New enum.
24622 (avr_resolve_overloaded_builtin): New static function.
24623 (avr_register_target_pragmas): Use it to set
24624 targetm.resolve_overloaded_builtin.
24625 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24626 tree nodes used by DEF_BUILTIN.
24627 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24628 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24629 <AVR_BUILTIN_xxBITS>: Same.
24630
661bc682
RB
246312013-02-08 Richard Biener <rguenther@suse.de>
24632
24633 * cfgloop.c (verify_loop_structure): Properly handle
24634 a loop exiting to another loop header.
24635 * ira-int.h (ira_loops): Remove.
24636 * ira.c (ira_loops): Remove.
24637 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24638 (do_reload): Use loop_optimizer_finalize.
24639 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24640 number_of_loops to access the loop tree.
24641 (more_one_region_p): Likewise.
24642 (finish_loop_tree_nodes): Likewise.
24643 (rebuild_regno_allocno_maps): Likewise.
24644 (mark_loops_for_removal): Likewise.
24645 (mark_all_loops_for_removal): Likewise.
24646 (remove_unnecessary_regions): Likewise.
24647 (ira_build): Likewise.
24648 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24649
0d5049b2
RB
246502013-02-08 Richard Biener <rguenther@suse.de>
24651
24652 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24653 * ipa-pure-const.c (analyze_function): Avoid calling
24654 mark_irreducible_loops twice.
8e10366f 24655 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 24656
499f32e8
DM
246572013-02-07 David S. Miller <davem@davemloft.net>
24658
24659 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24660 on 'reg'.
24661 * var-tracking.c (vt_add_function_parameter): Test the presence of
24662 HAVE_window_save properly and do not remap argument registers when
24663 we have a leaf function.
24664
6edc3e32
UB
246652013-02-07 Uros Bizjak <ubizjak@gmail.com>
24666
24667 PR bootstrap/56227
24668 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24669 instead of "ll".
24670 * config/i386/i386.c (ix86_print_operand): Ditto.
24671
5306401f
VM
246722013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24673
6edc3e32 24674 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 24675
027ece11
VM
246762013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24677
24678 PR rtl-optimization/56225
24679 * lra-constraints.c (process_alt_operands): Check that reload hard
24680 reg can hold value for strict_low_part.
24681
f980dfdb
JJ
246822013-02-07 Jakub Jelinek <jakub@redhat.com>
24683
24684 PR debug/56154
24685 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24686 dwarf2out_end_function.
24687 (in_first_function_p, maybe_at_text_label_p,
24688 first_loclabel_num_not_at_text_label): New variables.
24689 (dwarf2out_var_location): In the first function find out
6edc3e32 24690 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
24691 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24692 functions.
24693
73dd3123
EB
246942013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24695
24696 PR rtl-optimization/56178
24697 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24698 SUBREG of a register. Tidy up related block of code.
24699 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24700 note if the source is a register or a SUBREG of a register.
24701
e3936f47
JJ
247022013-02-07 Jakub Jelinek <jakub@redhat.com>
24703
24704 PR target/56228
24705 * config/rs6000/rs6000.md (ptrm): New mode attr.
24706 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
24707 call_value_indirect_aix<pttrsize>,
24708 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
24709 m in constraints.
24710
d96d674b
MH
247112013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24712
24713 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
24714 if -bnortl. Convert to strcmp and strncmp.
24715
921f2dee
AM
247162013-02-07 Alan Modra <amodra@gmail.com>
24717
24718 PR target/54009
24719 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
24720 addresses won't wrap when offsetting.
24721 (rs6000_secondary_reload): Provide secondary reloads needed for
24722 wrapping LO_SUM addresses.
24723
d09c7dba
TS
247242013-02-06 Thomas Schwinge <thomas@codesourcery.com>
24725
24726 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
24727 MACH, just __MACH__.
24728
a44bbd48
RB
247292013-02-06 Richard Biener <rguenther@suse.de>
24730
24731 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
24732 instead of calling fix_loop_structure.
24733
6d840d99
JJ
247342013-02-06 Jakub Jelinek <jakub@redhat.com>
24735
24736 PR middle-end/56217
24737 * omp-low.c (use_pointer_for_field): Return false if
24738 lower_send_shared_vars doesn't generate any copy-out code.
24739
0f33baa9
TV
247402013-02-06 Tom de Vries <tom@codesourcery.com>
24741
24742 PR rtl-optimization/56131
24743 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
24744 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
24745 of the label is NULL. Add comment.
24746
11f1e3ab
JJ
247472013-02-05 Jakub Jelinek <jakub@redhat.com>
24748
31502f9f
JJ
24749 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
24750
a74db9bd
JJ
24751 PR sanitizer/55374
24752 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
24753 (STATIC_LIBTSAN_LIBS): Likewise.
24754 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
24755 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
24756 is defined, don't add anything else beyond that.
24757 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
24758 (LINK_COMMAND_SPEC): Use them.
24759
11f1e3ab
JJ
24760 PR tree-optimization/56205
24761 * tree-stdarg.c (check_all_va_list_escapes): Return true if
24762 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
24763 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
24764
14ac6aa2
RB
247652013-02-05 Richard Biener <rguenther@suse.de>
24766
24767 PR tree-optimization/53342
24768 PR tree-optimization/53185
24769 * tree-vectorizer.h (vect_check_strided_load): Remove.
24770 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
24771 not disallow peeling for vectorized strided loads.
24772 (vect_check_strided_load): Make static and simplify.
24773 (vect_analyze_data_refs): Adjust.
24774 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
24775 correctly when vectorizing strided loads.
24776
6f22445a
RB
247772013-02-05 Richard Biener <rguenther@suse.de>
24778
24779 * doc/install.texi: Refer to ISL, not PPL.
24780
39f9719e
JH
247812013-02-05 Jan Hubicka <jh@suse.cz>
24782
ec4224ac
JH
24783 PR tree-optimization/55789
24784 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
24785
247862013-02-05 Jan Hubicka <jh@suse.cz>
24787
24788 PR tree-optimization/55789
39f9719e
JH
24789 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
24790 the dead call anyway.
24791
956d3b33
EB
247922013-02-05 Eric Botcazou <ebotcazou@adacore.com>
24793
24794 PR sanitizer/55374
24795 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
24796
247972013-02-04 Alexander Potapenko <glider@google.com>
24798 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
24799 Jakub Jelinek <jakub@redhat.com>
24800
24801 PR sanitizer/55617
24802 * config/darwin.c (sort_ctor_records): Stabilized qsort
24803 on constructor priority by using original position.
24804 (finalize_ctors): New routine to sort constructors by
24805 priority before use in assemble_integer.
24806 (machopic_asm_out_constructor): Use finalize_ctors if needed.
24807
7ac3af38
JJ
248082013-02-04 Jakub Jelinek <jakub@redhat.com>
24809
24810 PR libstdc++/54314
24811 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
24812 about visibility on artificial decls.
24813 * config/sol2.c (solaris_assemble_visibility): Likewise.
24814
152689dc
KT
248152013-02-04 Kai Tietz <ktietz@redhat.com>
24816
24817 PR target/56186
24818 * config/i386/i386.c (function_value_ms_64): Add additional valtype
24819 argument and improve checking of return-argument types for 16-byte
24820 modes.
24821 (ix86_function_value_1): Add additional valtype argument on call
24822 of function_value_64.
24823 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
24824 handling infunction_value_64 function.
24825
2b5987b5
MGD
248262013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
24827
7ac3af38 24828 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 24829
14597080
RB
248302013-02-04 Richard Biener <rguenther@suse.de>
24831
24832 PR tree-optimization/56188
24833 * tree-ssa-structalias.c (label_visit): Consider case with
24834 initially non-empty points-to set.
24835 (perform_var_substitution): Dump node mapping and clean up.
24836
ed73881e
RG
248372013-02-04 Richard Guenther <rguenther@suse.de>
24838
24839 PR lto/56168
24840 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
24841 node prevail as last resort.
24842 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 24843 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 24844
139a0707
RB
248452013-02-04 Richard Biener <rguenther@suse.de>
24846
24847 PR tree-optimization/56113
24848 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
24849 Merge into ...
24850 (equiv_class_lookup_or_add): ... this.
24851 (label_visit): Adjust and fix error in previous patch.
24852 (perform_var_substitution): Adjust.
24853
50fe8924
OE
248542013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
24855
24856 * config/sh/divtab.c: Fix formatting and comments throughout the file.
24857 * config/sh/sh4-300.md: Likewise.
24858 * config/sh/sh4a.md: Likewise.
24859 * config/sh/constraints.md: Likewise.
24860 * config/sh/sh.md: Likewise.
24861 * config/sh/netbsd-elf.h: Likewise.
24862 * config/sh/predicates.md: Likewise.
24863 * config/sh/sh-protos.h: Likewise.
24864 * config/sh/ushmedia.h: Likewise.
24865 * config/sh/linux.h: Likewise.
24866 * config/sh/sh.c: Likewise.
24867 * config/sh/superh.h: Likewise.
24868 * config/sh/elf.h: Likewise.
24869 * config/sh/sh4.md: Likewise.
24870 * config/sh/sh.h: Likewise.
24871
1a04ac2b
JDA
248722013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24873
24874 * config/pa/constraints.md: Adjust unused letters. Change "T"
24875 constraint to match_test floating_point_store_memory_operand().
24876 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
24877 (base14_operand): New.
24878 (floating_point_store_memory_operand): New.
24879 (integer_store_memory_operand): Revise to use base14_operand and
24880 reg_plus_base_memory_operand.
24881 (move_dest_operand): Allow symbolic_memory_operands.
24882 (symbolic_memory_operand): Check for LO_SOM.
24883 (symbolic_operand): Change default case to break.
24884 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
24885 CONST_DOUBLE values to be reloaded by putting them into memory when
24886 the destination is a floating point register.
24887 (movdf): Remove code to handle CONST_DOUBLE.
24888 (movsf): Likewise.
24889 (reload_indf_r1): New.
24890 (reload_insf_r1): New.
24891 Consistently use "Q" and "T" constraints with integer and floating
24892 point move instructions, respectively.
24893 (movdi): Remove FAIL.
24894 Change predicate for source operand unamed DImode move from
24895 general_operand to move_src_operand.
24896 (umulsidi3): Change predicate for destination operand to
24897 register_operand.
24898 Likewise for similar unamed patterns.
24899 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
24900 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
24901 (hppa_legitimize_address): Simplify mask calculation.
24902 (pa_emit_move_sequence): Revised handling of secondary reloads from
24903 REG+D addresses for floating point loads and stores. Directly handle
24904 loading CONST0_RTX (mode) to a floating point register.
24905 (pa_secondary_reload): Handle reloading DF and SFmode constant values
24906 to floating point registers. Don't restrict secondary reloads to
24907 floating point registers to integer modes. Revise some comments and
24908 cleanup some code.
24909 (TARGET_LEGITIMATE_ADDRESS_P): Define.
24910 (pa_legitimate_address_p): New.
24911 (pa_legitimize_reload_address): New.
24912 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
24913 (STRICT_REG_OK_FOR_BASE_P): New.
24914 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
24915 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
24916
3bf65591
DE
249172013-02-03 David Edelsohn <dje.gcc@gmail.com>
24918 Andrew Dixie <andrewd@gentrack.com>
24919
24920 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
24921 flag set.
24922
c0a8a3e6
RS
249232013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
24924
24925 * expmed.c (extract_bit_field_1): Pass the full width of the
24926 structure to get_best_reg_extraction_insn.
24927
99113dff
DE
249282013-02-01 David Edelsohn <dje.gcc@gmail.com>
24929
24930 PR target/54601
24931 * configure.ac (use_cxa_atexit): Add AIX.
24932 * configure: Regenerate.
24933
24934 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
24935
ddd84654
JJ
249362013-02-01 Jakub Jelinek <jakub@redhat.com>
24937
24938 PR debug/54793
24939 * final.c (need_profile_function): New variable.
24940 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
24941 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
24942 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
24943 notes, targetm.asm_out.function_prologue doesn't emit anything,
24944 HAVE_prologue and profiler should be emitted before prologue,
24945 set need_profile_function instead of emitting it.
24946 (final_scan_insn): If need_profile_function, emit
24947 profile_function on the first NOTE_INSN_BASIC_BLOCK or
24948 NOTE_INSN_FUNCTION_BEG note.
24949
249502013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
24951
24952 * config/rs6000/rs6000.md (smulditi3): New.
24953 (umulditi3): New.
24954
ff2a9d88
RH
24955 * config/alpha/alpha.md (umulditi3): New.
24956
14d52b90
DE
249572013-02-01 David Edelsohn <dje.gcc@gmail.com>
24958
24959 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
24960 (ASM_OUTPUT_ALIGNED_LOCAL): New.
24961
8c7ca45c
RB
249622013-02-01 Richard Biener <rguenther@suse.de>
24963
24964 PR tree-optimization/56113
24965 * tree-ssa-structalias.c (label_visit): Reduce work for
24966 single-predecessor nodes.
24967
9f419393
EB
249682013-02-01 Eric Botcazou <ebotcazou@adacore.com>
24969
24970 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
24971 range isn't testing for zero.
24972
c5f4be84
SB
249732013-01-31 Steven Bosscher <steven@gcc.gnu.org>
24974
24975 PR middle-end/56113
24976 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
24977
dbdbd982
NC
249782013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
24979 Nick Clifton <nickc@redhat.com>
24980
24981 * config/v850/constraints.md (Q): Define as a memory constraint.
24982 * config/v850/predicates.md (label_ref_operand): New predicate.
24983 (e3v5_shift_operand): New predicate.
24984 (ior_operator): New predicate.
24985 * config/v850/t-v850: Add e3v5 multilib.
24986 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
24987 (v850_gen_movdi): Prototype.
24988 * config/v850/v850.c: Add support for e3v5 architecture.
24989 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
24990 TARGET_V850E_UP.
24991 (construct_save_jarl): Add e3v5 long JARL support.
24992 (v850_adjust_insn_length): New function. Adjust length of call
24993 insns when using e3v5 instructions.
24994 (v850_gen_movdi): New function: Generate instructions to move a
24995 DImode value.
24996 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
24997 (CPP_SPEC): Define __v850e3v5__ as appropriate.
24998 (TARGET_USE_FPU): Enable for e3v5.
24999 (CONST_OK_FOR_W): New macro.
25000 (ADJUST_INSN_LENGTH): Define.
25001 * config/v850/v850.md (UNSPEC_LOOP): Define.
25002 (attr cpu): Add v850e3v5.
25003 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25004 (movdi): New pattern.
25005 (movdi_internal): New pattern.
25006 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25007 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25008 (cstoresf4): Likewise.
25009 (cstoredf4): Likewise.
25010 (insv): New pattern.
25011 (rotlso3_a): New pattern.
25012 (rotlsi3_b): New pattern
25013 (rotlsi3_v850e3v5): New pattern.
25014 (doloop_begin): New pattern.
25015 (fix_loop_counter): New pattern.
25016 (doloop_end): New pattern.
25017 (branch_normal): Add e3v5 long branch support.
25018 (branch_invert): Likewise.
25019 (branch_z_normal): Likewise.
25020 (branch_z_invert): Likewise.
25021 (branch_nz_normal): Likewise.
25022 (branch_nz_invert): Likewise.
25023 (call_internal_short): Add e3v5 register-indirect JARL support.
25024 (call_internal_long): Likewise.
25025 (call_value_internal_short): Likewise.
25026 (call_value_internal_long): Likewise.
25027 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25028 (mloop): New option.
25029 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25030 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25031
73861a41
PK
250322013-01-31 Paul Koning <ni1d@arrl.net>
25033
25034 PR debug/55059
25035 PR debug/54508
25036 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25037 children if parent is a class.
25038 (prune_unused_types_prune): Don't add DW_AT_declaration.
25039
e44978dc
RB
250402013-01-31 Richard Biener <rguenther@suse.de>
25041
25042 PR tree-optimization/56157
25043 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25044 match up operand with SLP child.
25045
90b10dec
JM
250462013-01-31 Jason Merrill <jason@redhat.com>
25047
04d2dadd 25048 PR debug/54410
90b10dec
JM
25049 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25050 parameters the first time.
25051 (gen_scheduled_generic_parms_dies): Check completeness here.
25052
6e616110
RB
250532013-01-31 Richard Biener <rguenther@suse.de>
25054
25055 PR middle-end/53073
25056 * common.opt (faggressive-loop-optimizations): New flag,
25057 enabled by default.
25058 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25059 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25060 infer_loop_bounds_from_undefined by it.
25061
636f59cf
RB
250622013-01-31 Richard Biener <rguenther@suse.de>
25063
25064 PR tree-optimization/56150
25065 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25066 visit virtual operands.
25067 (find_uses_to_rename_bb): Likewise.
25068
250692013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25070
25071 PR tree-optimization/56150
25072 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25073 mixed store non-store stmts.
25074
32887460
JJ
250752013-01-30 Jakub Jelinek <jakub@redhat.com>
25076
e60e09a0
JJ
25077 PR sanitizer/55374
25078 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25079 LIBASAN_EARLY_SPEC is defined.
25080 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25081 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25082 before %o.
25083 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25084
32887460
JJ
25085 PR c++/55742
25086 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25087 invalid args instead of ICEing on it.
25088 (ix86_valid_target_attribute_tree): Return error_mark_node if
25089 ix86_valid_target_attribute_inner_p failed.
25090 (ix86_valid_target_attribute_p): Return false only if
25091 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25092 target("default") attribute.
25093 (sorted_attr_string): Change argument from const char * to tree,
25094 merge in all target attribute arguments rather than just one.
25095 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25096 instead of free. Avoid using strcat.
25097 (ix86_mangle_function_version_assembler_name): Mangle
25098 target("default") as if no target attribute is present. Adjust
25099 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25100 instead of xmalloc and XDELETEVEC instead of free.
25101 (ix86_function_versions): Don't return true if one of the decls
25102 doesn't have target attribute. If they don't and one of the decls
25103 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25104 sorted_attr_string caller. Use XDELETEVEC instead of free.
25105 (ix86_supports_function_versions): Remove.
25106 (make_name): Fix up formatting.
25107 (make_dispatcher_decl): Remove resolver_name and its initialization.
25108 Avoid leaking memory.
25109 (is_function_default_version): Return true if there is
25110 target("default") attribute rather than no target attribute at all.
25111 (make_resolver_func): Avoid leaking memory.
25112 (ix86_generate_version_dispatcher_body): Likewise.
25113 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25114 * target.def (supports_function_versions): Remove.
25115 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25116 * doc/tm.texi: Regenerated.
25117
73cca0cc
VM
251182013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25119
25120 PR rtl-optimization/56144
25121 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25122 for values with side effects.
25123
11452e7b
RB
251242013-01-30 Richard Biener <rguenther@suse.de>
25125
25126 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25127 (sparseset_pop): Likewise.
25128 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25129 to be able to use quick_push in the worker loop.
25130
01cb1ef5
MP
251312013-01-30 Marek Polacek <polacek@redhat.com>
25132
25133 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25134
e892936e
RB
251352013-01-30 Richard Biener <rguenther@suse.de>
25136
25137 PR lto/56147
6edc3e32 25138 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25139
cc06c01d
GJL
251402013-01-30 Georg-Johann Lay <avr@gjlay.de>
25141
25142 PR tree-optimization/56064
25143 * fixed-value.c (fixed_from_double_int): New function.
25144 * fixed-value.h (fixed_from_double_int): New prototype.
25145 (const_fixed_from_double_int): New static inline function.
25146 * fold-const.c (native_interpret_fixed): New static function.
25147 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25148 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25149 (native_encode_fixed): New static function.
25150 (native_encode_expr) <FIXED_CST>: Use it.
25151 (native_interpret_int): Move double_int worker code to...
25152 * double-int.c (double_int::from_buffer): ...this new static method.
25153 * double-int.h (double_int::from_buffer): Prototype it.
25154
d394a308
RB
251552013-01-30 Richard Biener <rguenther@suse.de>
25156
25157 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25158 New pointer-map and obstack.
25159 (init_alias_vars): Allocate pointer-map and obstack.
25160 (delete_points_to_sets): Free them.
25161 (find_what_var_points_to): Cache result.
25162 (find_what_p_points_to): Adjust for changed interface of
25163 find_what_var_points_to.
25164 (compute_points_to_sets): Likewise.
25165 (ipa_pta_execute): Likewise.
25166
20804d96
RO
251672013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25168
25169 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25170 * configure: Regenerate.
25171 * config.in: Regenerate.
25172 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25173 #nobits/#progbits if supported.
25174
a7ad88a2
OE
251752013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25176
25177 PR target/56121
25178 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25179 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25180 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25181
7af79f92
GY
251822013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25183
91bfca59
OE
25184 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25185 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25186
753bcf7b
GY
251872013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25188
91bfca59
OE
25189 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25190 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25191
8cbc2ea8
GY
251922013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25193
91bfca59
OE
25194 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25195 declaration.
25196 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25197 * config/arm/cortex-a7.md: New bypasses using
25198 arm_mac_accumulator_is_result.
8cbc2ea8 25199
697a3325
GY
252002013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25201
91bfca59 25202 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25203 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25204 (cortex_a7_fpfmad): New reservation.
25205 (cortex_a7_fpmacs): Use ffmas and update required units.
25206 (cortex_a7_fpmuld): Update required units and latency.
25207 (cortex_a7_fpmacd): Likewise.
25208 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25209 (cortex_a7_neon). Likewise.
25210 (bypass) Update participating units.
697a3325 25211
29637783
GY
252122013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25213
91bfca59
OE
25214 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25215 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25216 from fmac to ffma.
25217 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25218 (vfp_fmul): Use ffmad.
25219 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25220 (cortex_r4_fmacd): Use ffmad.
25221 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25222 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25223 (cortex_a9_fmacd): Use ffmad.
25224 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25225 (cortex_a8_vfp_macd): Use ffmad.
25226 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25227 (cortex_a5_fpmacd): Use ffmad.
25228 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25229 (cortex_a15_vfp_macd): Use ffmad.
25230 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25231
2ee8a2d5
JM
252322013-01-29 Jason Merrill <jason@redhat.com>
25233
25234 PR libstdc++/54314
25235 * varasm.c (default_assemble_visibility): Don't warn about
25236 visibility on artificial decls.
25237
78d087bc
RB
252382013-01-29 Richard Biener <rguenther@suse.de>
25239
25240 PR tree-optimization/56113
25241 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25242 the bitmap leader.
25243 (label_visit): Free duplicate bitmaps and record the leader instead.
25244 (perform_var_substitution): Adjust.
25245
83ba4d6f
RB
252462013-01-29 Richard Biener <rguenther@suse.de>
25247
25248 PR tree-optimization/55270
25249 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25250 the CFG, schedule loops for fixup.
25251
66dfe13f
NC
252522013-01-29 Nick Clifton <nickc@redhat.com>
25253
25254 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25255 SP_REG.
25256
5a579c3b
LE
252572013-01-28 Leif Ekblad <leif@rdos.net>
25258
25259 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25260 * config/i386/i386.h (TARGET_RDOS): New macro.
25261 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25262 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25263 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25264 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25265 DEFAULT_LARGE_SECTION_THRESHOLD.
25266 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25267 * config/i386/rdos.h: New file.
25268 * config/i386/rdos64.h: New file.
25269
51e44392
BS
252702013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25271
25272 PR other/54814
25273 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25274 TEST_HARD_REG_BIT.
25275
db1fb332
JJ
252762013-01-28 Jakub Jelinek <jakub@redhat.com>
25277
25278 PR rtl-optimization/56117
25279 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25280 call cselib_lookup_from_insn on the MEM before calling
25281 add_insn_mem_dependence.
25282
16917761
RB
252832013-01-28 Richard Biener <rguenther@suse.de>
25284
25285 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25286 to a stmt that didn't have one.
25287 (copy_phis_for_bb): Likewise for PHI arguments.
25288 (copy_debug_stmt): Likewise for debug stmts.
25289
b9fc0497
RB
252902013-01-28 Richard Biener <rguenther@suse.de>
25291
25292 PR tree-optimization/56034
6edc3e32 25293 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25294 (partition_builtin_p): Adjust.
25295 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25296 it is the last partition.
25297 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25298 up the vertex for the definition.
25299 (classify_partition): Classify whether a partition is a
25300 PKIND_REDUCTION, thus has uses outside of the loop.
25301 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25302 Merge all PKIND_REDUCTION partitions into the last partition.
25303 (tree_loop_distribution): Seed partitions from reductions as well.
25304
aa710d25
JJ
253052013-01-28 Jakub Jelinek <jakub@redhat.com>
25306
0bfbca58
JJ
25307 PR tree-optimization/56125
25308 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25309 pow(x,c) into sqrt(x) * powi(x, n/2) or
25310 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25311 optimizing for size.
25312 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25313 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25314 integer.
25315
aa710d25
JJ
25316 PR tree-optimization/56094
25317 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25318 to UNKNOWN_LOCATION while gimplifying expr.
25319
77dc5297
UB
253202013-01-27 Uros Bizjak <ubizjak@gmail.com>
25321
25322 PR target/56114
25323 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25324 operand 0 in movabs insn template for -masm=intel asm alternative.
25325 (*movabs<mode>_2): Ditto for operand 1.
25326
0bfbca58 253272013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25328
25329 PR target/54663
25330 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25331 of microblaze-c.o
25332
0bfbca58 253332013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25334
25335 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25336 tm_file.
25337
0bfbca58 253382013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25339
25340 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25341 Undef to avoid warning.
25342
478f60f9
MH
253432013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25344
25345 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25346 * configure: Regenerate.
25347
d7fa6ee2
JJ
253482013-01-25 Jakub Jelinek <jakub@redhat.com>
25349
25350 PR tree-optimization/56098
25351 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25352 for stmts with volatile ops.
25353 (cond_store_replacement): Don't optimize if assign has volatile ops.
25354 (cond_if_else_store_replacement_1): Don't optimize if either
25355 then_assign or else_assign have volatile ops.
25356 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25357 volatile ops.
25358
f8fe87bd
GJL
253592013-01-25 Georg-Johann Lay <avr@gjlay.de>
25360
25361 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25362
28398d0d
GJL
253632013-01-25 Georg-Johann Lay <avr@gjlay.de>
25364
25365 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25366 missing ':' in asm example.
25367
b7d7d917
TB
253682013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25369
25370 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25371 entries into lane and laneq entries.
77dc5297
UB
25372 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25373 Remove AdvSIMD scalar modes.
b7d7d917
TB
25374 (aarch64_sq<r>dmulh_laneq<mode>): New.
25375 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25376 modes.
25377 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25378 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25379 * config/aarch64/iterators.md (VCOND): New.
25380 (VCONQ): New.
25381
556f9906
GJL
253822013-01-25 Georg-Johann Lay <avr@gjlay.de>
25383
25384 PR target/54222
25385 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25386 Add NULL LIBNAME argument to existing definitions.
25387 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25388 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25389 * config/avr/avr.c (DEF_BUILTIN): Same.
25390 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25391 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25392 implementation is available (DECL_ASSEMBLER_NAME is set).
25393 (avr_fold_absfx): New static function.
25394 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25395 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25396 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25397 AVR_BUILTIN_ABSLLK.
25398 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25399 (abshk, absk, abslk, absllk): Provide as static inline functions.
25400
1f546bbb
MP
254012013-01-25 Marek Polacek <polacek@redhat.com>
25402
25403 PR tree-optimization/56035
25404 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25405
7e184bd7
UB
254062012-01-24 Uros Bizjak <ubizjak@gmail.com>
25407
25408 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25409 (*movtf_internal_rex64): Add (!o,C) alternative
25410 (*movxf_internal_rex64): Ditto.
25411 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25412
f5ba49ac
SM
254132013-01-24 Shenghou Ma <minux.ma@gmail.com>
25414
25415 * doc/invoke.texi: fix typo.
25416 * doc/objc.texi: fix typo.
25417
a6343728
RS
254182013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25419
25420 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25421 for the first two alternatives.
25422
cd030c07
DN
254232013-01-24 Diego Novillo <dnovillo@google.com>
25424
77dc5297 25425 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25426 (ggc-zone.o): Remove.
25427 * configure.ac: Remove option --with-gc.
25428 * configure: Re-generate.
25429 * doc/install.texi: Remove documentation for --with-gc.
25430 * gengtype.c (write_enum_defn): Remove. Update all users.
25431 (write_Types_process_field): Remove generation of gt_e_* argument.
25432 (output_type_enum): Remove. Update all users.
25433 (write_enum_defn): Remove. Update all users.
25434 (enum alloc_zone): Remove. Update all users.
77dc5297 25435 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25436 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25437 Update all callers.
25438 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25439 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25440 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25441 Update all users.
aaf1e810 25442 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25443 (struct alloc_zone): Remove.
25444 (ggc_internal_alloc_zone_stat): Remove.
25445 (ggc_internal_cleared_alloc_zone_stat): Remove.
25446 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25447 (ggc_pch_count_object): Remove last argument. Update all users.
25448 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25449 (struct alloc_zone): Remove.
25450 * ggc-zone.c: Remove.
77dc5297 25451 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25452 (struct alloc_zone): Remove.
25453 (ggc_alloc_typed_stat): Remove.
25454 (ggc_alloc_typed): Remove.
25455 (ggc_splay_alloc): Remove first argument.
25456 (rtl_zone): Remove. Update all users.
25457 (tree_zone): Remove. Update all users.
25458 (tree_id_zone): Remove. Update all users.
25459 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25460 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25461 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25462 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25463
a861ffa4
GJL
254642013-01-24 Georg-Johann Lay <avr@gjlay.de>
25465
25466 * config/avr/avr.c (avr_out_fract): Make register numbers that
25467 might be outside of source operand signed.
25468
593c0ddd
UB
254692013-01-24 Uros Bizjak <ubizjak@gmail.com>
25470
25471 * config/i386/constraints.md (Yf): New constraint.
25472 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25473 of f constraint to conditionaly disable x87 register preferences.
25474 (*movdf_internal): Ditto.
25475 (*movsf_internal): Ditto.
25476
e86c0101
SB
254772013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25478
25479 PR inline-asm/55934
25480 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25481 that have operands with impossible constraints.
25482 Add a FIXME for a speed-up opportunity.
25483 * lra-constraints.c (process_alt_operands): Verify that a class
25484 selected from constraints on asms is valid for the operand mode.
25485 (curr_insn_transform): Remove incorrect comment.
25486
f6fee35f
DE
254872013-01-23 David Edelsohn <dje.gcc@gmail.com>
25488
25489 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25490 TOC operand is a valid symbol ref in the constant pool.
25491
254922013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25493
aaf1e810 25494 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25495
dc62d7d1
GJL
254962013-01-23 Georg-Johann Lay <avr@gjlay.de>
25497
25498 PR target/54222
25499 * config/avr/stdfix.h: New file.
25500 * t-avr (stdfix-gcc.h): New rule to build it.
25501 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25502
2660d12d
KS
255032013-01-23 Kostya Serebryany <kcc@google.com>
25504
77dc5297
UB
25505 * config/darwin.h: remove dependency on
25506 CoreFoundation (asan on Mac OS).
2660d12d 25507
a70418fc
JJ
255082013-01-23 Jakub Jelinek <jakub@redhat.com>
25509
25510 PR target/49069
25511 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25512 instead of cmpdi_operand for first comparison operand.
25513 Don't assert that comparison operands aren't both constants.
25514
47876a2a
JW
255152013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25516
25517 * doc/install.texi (Downloading the Source): Update references to
25518 downloading separate components.
25519
255202013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25521
25522 * doc/extend.texi (__int128): Improve grammar.
25523
47876a2a 255242013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25525
25526 PR target/56028
25527 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25528 alternative to (o,r).
25529 (*movdi_internal_rex64): Remove (!o,n) alternative.
25530 (DImode immediate->memory splitter): Remove.
25531 (DImode immediate->memory peephole2): Remove.
25532 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25533 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25534 alternative to (!o,*r).
25535 (*movtf_internal_sse): New pattern.
25536 (*movxf_internal_rex64): New pattern.
25537 (*movxf_internal): Disable for TARGET_64BIT.
25538 (*movdf_internal_rex64): Remove (!o,F) alternative.
25539
3a984f10
JJ
255402013-01-22 Jakub Jelinek <jakub@redhat.com>
25541
502498d5
JJ
25542 PR middle-end/56074
25543 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25544 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25545 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25546 stmt locations where LOCATION_LOCUS of the stmt location is
25547 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25548
3a984f10
JJ
25549 PR target/55686
25550 * config/i386/i386.md (UNSPEC_STOS): New.
25551 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25552 *strsetqi_1): Add UNSPEC_STOS.
25553
fa817f7f
PC
255542013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25555
25556 PR c++/56067
25557 * doc/invoke.texi: Remove left over -Wsynth example.
25558
8f498c1b
JJ
255592013-01-21 Jakub Jelinek <jakub@redhat.com>
25560
25561 PR tree-optimization/56051
25562 * fold-const.c (fold_binary_loc): Don't fold
25563 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25564 a narrowing conversion, or widening conversion from signed
25565 to unsigned.
25566
47876a2a 255672013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25568
25569 PR rtl-optimization/56023
25570 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25571 dependent on debug instruction.
25572
5b9db1bc
MJ
255732013-01-21 Martin Jambor <mjambor@suse.cz>
25574
25575 PR middle-end/56022
25576 * function.c (allocate_struct_function): Call
25577 invoke_set_current_function_hook earlier.
25578
e8bb7d68
JJ
255792013-01-21 Jakub Jelinek <jakub@redhat.com>
25580
25581 * reload1.c (init_reload): Only initialize reload_obstack
25582 during the first call.
25583
616a4e32
MP
255842013-01-21 Marek Polacek <polacek@redhat.com>
25585
25586 * cfgloop.c (verify_loop_structure): Fix up grammar.
25587
4401981b
YHH
255882013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25589
25590 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25591 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25592
8e87740b
RR
255932013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25594
25595 PR target/56058
25596 * config/arm/marvell-pj4.md: Update copyright year.
25597 Fix up use of alu to alu_reg and simple_alu_imm.
25598
47876a2a 255992013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25600
25601 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25602
89d56d79
VM
256032013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25604
25605 PR target/55433
25606 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25607 insn for secondary memory move when memory mode should be different.
89d56d79 25608
fe603553
JDA
256092013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25610
25611 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25612 atomic_storedi_1): New patterns.
25613
01284895
VK
256142013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25615
25616 btver2 pipeline descriptions.
25617 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25618 descriptions.
25619 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25620 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25621 type attributes.
25622 * config/i386/btver2.md: New file describing btver2 pipelines.
25623
5630e3e1
JL
256242013-01-19 Andrew Pinski <apinski@cavium.com>
25625
25626 PR tree-optimization/52631
25627 * tree-ssa-sccvn (visit_use): Before looking up the original
25628 statement, try looking up the simplified expression.
25629
650ae806
AG
256302013-01-19 Anthony Green <green@moxielogic.com>
25631
25632 * config/moxie/moxie.c (moxie_expand_prologue): Set
25633 current_function_static_stack_size.
25634
e300ec2d
JJ
256352013-01-18 Jakub Jelinek <jakub@redhat.com>
25636
25637 PR tree-optimization/56029
25638 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25639 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25640
a3d7af04
SS
256412013-01-18 Sharad Singhai <singhai@google.com>
25642
25643 PR tree-optimization/55995
25644 * dumpfile.c (dump_loc): Print location only if available.
25645 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25646
66aa7879
VM
256472013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25648
25649 PR target/55433
25650 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25651 secondary memory move.
25652 (inherit_reload_reg): Use rclass instead of cl for
25653 check_secondary_memory_needed_p.
25654
3f0fee7b
JJ
256552013-01-18 Jakub Jelinek <jakub@redhat.com>
25656
25657 PR middle-end/56015
25658 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 25659 the case where writing real complex part of target modifies op1.
3f0fee7b 25660
70c67693
JG
256612013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25662
25663 * config/aarch64/aarch64-simd.md
25664 (aarch64_vcond_internal<mode>): Handle unordered cases.
25665 * config/aarch64/iterators.md (v_cmp_result): New.
25666
df8de9b3
YHH
256672013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25668 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25669
25670 * config/arm/marvell-pj4.md: New file.
25671 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25672 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25673 (generic_vfp): Likewise.
25674 * config/arm/arm-cores.def: Add marvell-pj4.
25675 * config/arm/arm-tune.md: Regenerate.
25676 * config/arm/arm-tables.opt: Regenerate.
25677 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25678 * doc/invoke.texi: Document marvell-pj4.
25679
be30c356
TB
256802013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25681
25682 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25683
0bfbca58 256842013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
25685
25686 PR debug/54114
25687 PR debug/54402
25688 PR debug/49888
25689 * var-tracking.c (negative_power_of_two_p): New.
25690 (global_get_addr_cache, local_get_addr_cache): New.
25691 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25692 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25693 heading comment.
25694 (vt_stack_offset_p): Remove.
25695 (vt_canon_true_dep): Always canonicalize loc's address.
25696 (clobber_overlapping_mems): Make sure we have a MEM.
25697 (local_get_addr_clear_given_value): New.
25698 (val_reset): Clear local cached entries.
25699 (compute_bb_dataflow): Create and release the local cache.
25700 Disable duplicate MEMs clobbering.
25701 (emit_notes_in_bb): Clobber MEMs likewise.
25702 (vt_emit_notes): Create and release the local cache.
25703 (vt_initialize, vt_finalize): Create and release the global
25704 cache, respectively.
1f6bc337 25705 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 25706
0bfbca58 257072013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
25708
25709 PR libmudflap/53359
25710 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
25711 not found in the symtab.
25712
0bfbca58 257132013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 25714
c350ba53 25715 PR debug/56006
3aa03517
AO
25716 PR rtl-optimization/55547
25717 PR rtl-optimization/53827
25718 PR debug/53671
25719 PR debug/49888
25720 * alias.c (offset_overlap_p): New, factored out of...
25721 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
25722 the conservative special case for symbolic constants. Don't
25723 adjust zero sizes on alignment.
25724
c664546f
JL
257252013-01-18 Bernd Schmidt <bernds@codesourcery.com>
25726
25727 PR rtl-optimization/52573
25728 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
25729 REG_UNUSED for the same register.
25730
1bd3f750
MP
257312013-01-17 Richard Biener <rguenther@suse.de>
25732 Marek Polacek <polacek@redhat.com>
25733
25734 PR rtl-optimization/55833
25735 * loop-unswitch.c (unswitch_loops): Move loop verification...
25736 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
25737 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
25738 Set it to true when we're removing a loop from hierarchy tree in
25739 an irreducible region.
25740 (fix_bb_placements): Adjust caller.
25741 (fix_loop_placements): Likewise.
25742
e52a8b71
GJL
257432013-01-17 Georg-Johann Lay <avr@gjlay.de>
25744
25745 * config/avr/builtins.def (DEF_BUILTIN): Factor out
25746 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
25747 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
25748 Remove ID. Adjust comments.
25749 * config/avr/avr-c.c (avr_builtin_name): Remove.
25750 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
25751 * config/avr/avr.c (avr_tolower): New static function.
25752 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
25753 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
25754 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
25755 default expansion.
25756
8386a7ea
JH
257572013-01-17 Jan Hubicka <jh@suse.cz>
25758
610fb637 25759 PR tree-optimization/55273
8386a7ea
JH
25760 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
25761
47876a2a 257622013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
25763
25764 PR target/55981
25765 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
25766 store through atomic_store<mode>_1.
25767 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
25768
8222c37e
MJ
257692013-01-17 Martin Jambor <mjambor@suse.cz>
25770
25771 PR tree-optimizations/55264
25772 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
25773 for virtual methods.
25774 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
25775 virtual methods before inlining is over.
25776 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
25777 virtual functions.
25778 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
25779 non-virtual.
25780
79f01c76
VM
257812013-01-16 Vladimir Makarov <vmakarov@redhat.com>
25782
25783 PR rtl-optimization/56005
25784 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
25785 pending reads for prefetch.
25786
d0b6bb1b
IB
257872013-01-16 Ian Bolton <ian.bolton@arm.com>
25788
aaf1e810 25789 * config/aarch64/aarch64.md
d0b6bb1b
IB
25790 (*cstoresi_neg_uxtw): New pattern.
25791 (*cmovsi_insn_uxtw): New pattern.
25792 (*<optab>si3_uxtw): New pattern.
25793 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
25794 (*<optab>si3_insn_uxtw): New pattern.
25795 (*bswapsi2_uxtw): New pattern.
25796
cb9cf03b
RB
257972013-01-16 Richard Biener <rguenther@suse.de>
25798
25799 * tree-inline.c (tree_function_versioning): Remove set but
25800 never used variable.
25801
2cfc56b9
RB
258022013-01-16 Richard Biener <rguenther@suse.de>
25803
25804 PR tree-optimization/55964
25805 * tree-flow.h (rename_variables_in_loop): Remove.
25806 (rename_variables_in_bb): Likewise.
25807 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
25808 (copy_loop_before): Adjust and delete update-ssa status.
25809 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 25810 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
25811 (rename_variables_in_loop): Remove.
25812 (slpeel_update_phis_for_duplicate_loop): Likewise.
25813 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
25814 use available cfg machinery instead of duplicating it.
25815 Update PHI nodes and perform poor-mans SSA update here.
25816 (slpeel_tree_peel_loop_to_edge): Adjust.
25817
c25a0c60
RB
258182013-01-16 Richard Biener <rguenther@suse.de>
25819
25820 PR tree-optimization/54767
25821 PR tree-optimization/53465
25822 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
25823 (vrp_visit_phi_node): For PHI arguments coming via backedges
25824 drop all symbolical range information.
25825 (execute_vrp): Compute backedges.
25826
04b535af
RB
258272013-01-16 Richard Biener <rguenther@suse.de>
25828
25829 * doc/install.texi: Update CLooG and ISL requirements to
25830 0.18.0 and 0.11.1.
25831
8b0a1e0b
CB
258322013-01-16 Christian Bruel <christian.bruel@st.com>
25833
25834 PR target/55301
25835 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
25836 (broken_move): Handle UNSPECV_SP_SWITCH_B.
25837 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
25838
258392013-01-16 DJ Delorie <dj@redhat.com>
25840
25841 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
25842 (UNSPECV_SP_SWITCH_E): New.
25843 (sp_switch_1): Change to an unspec.
25844 (sp_switch_2): Change to an unspec. Don't use post-inc when we
25845 replace $r15.
25846
258472013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
25848
25849 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
25850 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
25851 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
25852 (expand_mem_thread_fence): Ditto.
25853 (expand_mem_signal_fence): Ditto.
25854 (expand_atomic_load): Ditto.
25855 (expand_atomic_store): Ditto.
25856
0bfbca58 258572013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
25858
25859 PR rtl-optimization/55547
25860 PR rtl-optimization/53827
25861 PR debug/53671
25862 PR debug/49888
25863 * alias.c (memrefs_conflict_p): Set sizes to negative after
25864 AND adjustments.
25865
305e3ac1
JJ
258662013-01-15 Jakub Jelinek <jakub@redhat.com>
25867
25868 PR target/55940
25869 * function.c (thread_prologue_and_epilogue_insns): Always
25870 add crtl->drap_reg to set_up_by_prologue.set, even if
25871 stack_realign_drap is false.
25872
f78ac4f2
JBG
258732013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25874
25875 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
25876 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
25877 *call): Fix indention.
25878
a78a8cc4
TV
258792013-01-15 Tom de Vries <tom@codesourcery.com>
25880
25881 PR target/55876
25882 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
25883 Update comment.
25884
0e80383f
VM
258852013-01-15 Vladimir Makarov <vmakarov@redhat.com>
25886
305e3ac1 25887 PR rtl-optimization/55153
0e80383f
VM
25888 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
25889
207b5956
MJ
258902013-01-15 Martin Jambor <mjambor@suse.cz>
25891
25892 PR tree-optimization/55920
25893 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
25894 accesses as grp_to_be_debug_replaced.
25895
a7818b54
JJ
258962013-01-15 Jakub Jelinek <jakub@redhat.com>
25897
25898 PR tree-optimization/55920
25899 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
25900 there is non-useless type conversion needed from debug rhs to lhs,
25901 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
25902
b0fe107e
JM
259032013-01-15 Joseph Myers <joseph@codesourcery.com>
25904 Mikael Pettersson <mikpe@it.uu.se>
25905
25906 PR target/43961
25907 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
25908 Thumb.
25909 (ASM_OUTPUT_CASE_LABEL): Remove.
25910 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
25911 * final.c (shorten_branches): Update alignment of labels before
25912 jump tables if CASE_VECTOR_SHORTEN_MODE.
25913
34ab62ee
RB
259142013-01-15 Richard Biener <rguenther@suse.de>
25915
25916 PR bootstrap/55961
25917 * system.h: Do not include gmp.h for building host tools.
25918
783a3a05
RB
259192013-01-15 Richard Biener <rguenther@suse.de>
25920
25921 PR middle-end/55882
25922 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
25923 account for bitpos when computing alignment.
25924
3a579e09
VY
259252013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
25926
25927 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
25928 (ix86_target_macros_internal): Likewise.
25929
25930 * config/i386/i386.c (m_CORE2I7): Removed.
25931 (m_CORE_HASWELL): New macro.
25932 (m_CORE_ALL): Likewise.
25933 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
25934 (initial_ix86_arch_features): Likewise.
25935 (processor_target_table): Initializations for Core avx2.
25936 (cpu_names): New names "core-avx2".
25937 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
25938 PROCESSOR_CORE_HASWELL.
25939 (ix86_issue_rate): New case.
25940 (ia32_multipass_dfa_lookahead): Likewise.
25941 (ix86_sched_init_global): Likewise.
25942
25943 * config/i386/i386.h (TARGET_HASWELL): New macro.
25944 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
25945 (processor_type): New PROCESSOR_HASWELL.
25946
955f5a07
JJ
259472013-01-15 Jakub Jelinek <jakub@redhat.com>
25948
ff784829
JJ
25949 PR tree-optimization/55955
25950 * tree-vect-loop.c (vectorizable_reduction): Give up early on
25951 *SHIFT_EXPR and *ROTATE_EXPR codes.
25952
955f5a07
JJ
25953 PR tree-optimization/48766
25954 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
25955 -ftrapv disable -fwrapv.
25956
aeb8b4e9
GJL
259572013-01-14 Georg-Johann Lay <avr@gjlay.de>
25958
25959 PR target/55974
25960 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
25961 etc. to 1 and not to __flash.
25962 Use LL suffix for __INT24_MAX__ with -mint8.
25963 Use ULL suffix for __UINT24_MAX__ with -mint8.
25964
1c494c6a
GJL
259652013-01-14 Georg-Johann Lay <avr@gjlay.de>
25966
25967 * config/avr/avr-arch.h
25968 (struct base_arch_s): Use typedef avr_arch_t instead.
25969 (struct arch_info_s): Use typedef avr_arch_info_t instead.
25970 (struct mcu_type_s): Use typedef avr_mcu_t instead.
25971 * config/avr/avr.c: Same.
25972 * config/avr/avr-devices.c: Same.
25973 * config/avr/driver-avr.c: Same.
25974 * config/avr/gen-avr-mmcu-texi.c: Same.
25975 * config/avr/avr-mcus.def: Adjust comment.
25976
a50344cb
TB
259772013-01-14 Tejas Belagod <tejas.belagod@arm.com>
25978
88e784e6
UB
25979 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
25980 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 25981
47876a2a 259822013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
25983 Andi Kleen <ak@linux.intel.com>
25984
25985 PR target/55948
25986 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
25987 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
25988 memmodel flag.
25989
00892272
GJL
259902013-01-14 Georg-Johann Lay <avr@gjlay.de>
25991
25992 * config/avr/avr-stdint.h: Remove trailing blanks.
25993 * config/avr/avr-log.h: Same.
25994 * config/avr/avr-arch.h: Same.
25995 * config/avr/avr-devices.c: Same.
25996 * config/avr/avr-dimode.md: Same.
25997 * config/avr/predicates.md: Same.
25998 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 25999
00892272
GJL
26000 * config/avr/avr-protos.h: Same. And:
26001 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26002 (init_cumulative_args): Rename to avr_init_cumulative_args.
26003 (expand_prologue): Rename to avr_expand_prologue.
26004 (expand_epilogue): Rename to avr_expand_epilogue.
26005 (adjust_insn_length): Rename to avr_adjust_insn_length.
26006 (notice_update_cc): Rename to avr_notice_update_cc.
26007 (final_prescan_insn): Rename to avr_final_prescan_insn.
26008 * config/avr/avr.c: Same.
26009 * config/avr/avr.h: Same.
26010 * config/avr/avr.md: Remove trailing blanks.
26011 (prologue): Use avr_expand_prologue.
26012 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26013
7bb01996
RB
260142013-01-14 Richard Biener <rguenther@suse.de>
26015
26016 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26017 verify_location, collect_subblocks): New functions.
26018 (verify_gimple_in_cfg): Verify that locations only reference
26019 BLOCKs in the functions BLOCK tree.
26020
2724573f
RB
260212013-01-14 Richard Biener <rguenther@suse.de>
26022
26023 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26024 PHI argument.
26025 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26026 unshare reference.
26027 (insert_out_of_ssa_copy_on_edge): Likewise.
26028 (rewrite_close_phi_out_of_ssa): Likewise.
26029 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26030 debug expressions.
26031 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26032 propagated constants.
26033 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26034 can not be shared.
26035
9a0bbab6
GJL
260362013-01-14 Georg-Johann Lay <avr@gjlay.de>
26037
26038 * config/avr/avr-modes.def: Add GPL copyright notice.
26039
45805f17
UB
260402013-01-13 Uros Bizjak <ubizjak@gmail.com>
26041
26042 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26043 MEMMODEL_MASK to determine memory model.
26044 (atomic_store<mode>): Ditto from operands[2].
26045 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26046
9d60be38
JJ
260472013-01-13 Jakub Jelinek <jakub@redhat.com>
26048
26049 PR fortran/55935
45805f17 26050 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26051 (fold_gimple_assign): Don't call unshare_expr here.
26052 (fold_ctor_reference): Call unshare_expr.
26053
e7f49d92
TG
260542013-01-13 Terry Guo <terry.guo@arm.com>
26055
aaf1e810
EB
26056 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26057 * doc/fragments.texi: Document MULTILIB_REUSE.
26058 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26059 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26060 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26061 (tmpmultilib4): Ditto.
26062 (multilib_reuse): New multilib argument.
26063
fbd03a27
RS
260642013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26065
26066 * Makefile.in: Update copyright.
26067
b3681f13
TV
260682013-01-12 Tom de Vries <tom@codesourcery.com>
26069
26070 PR middle-end/55890
26071 * calls.c (expand_call): Check if arg_nr is valid.
26072
3f287e4b
MM
260732013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26074
26075 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26076 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26077 documentation. Add missing '__' in front of
26078 __builtin_ia32_packssdw256.
3f287e4b 26079
1abcd5eb
AK
260802013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26081
26082 PR target/55719
26083 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26084 NO_REGS for larl operands.
26085 (s390_reload_larl_operand): Use s390_load_address instead of
26086 emit_move_insn.
26087
980d0812
RB
260882013-01-11 Richard Biener <rguenther@suse.de>
26089
26090 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26091 (verify_node_sharing): ... here.
26092 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26093
7cb9fd07
EB
260942013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26095
26096 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26097 Substitute TREECHECKING.
26098 * configure: Regenerate.
26099 * Makefile.in (TREECHECKING): New.
26100
47876a2a 261012013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26102
26103 PR tree-optimization/44061
26104 * tree-vrp.c (extract_range_basic): Compute zero as
26105 value-range for __builtin_constant_p of function parameters.
26106
d1e082c2
RS
261072013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26108
45805f17 26109 Update copyright years.
d1e082c2 26110
f85021b0
VM
261112013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26112
9d60be38 26113 PR rtl-optimization/55672
0160442c
VM
26114 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26115 const to be eliminable.
f85021b0 26116
7a8b1ec4
DE
261172013-01-10 David Edelsohn <dje.gcc@gmail.com>
26118
26119 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26120 * configure: Regenerate.
26121
ad2e5b71
RB
261222013-01-10 Richard Biener <rguenther@suse.de>
26123
ddf9322d 26124 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26125
ffc5b2bb
RB
261262013-01-10 Richard Biener <rguenther@suse.de>
26127
26128 PR bootstrap/55792
26129 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26130 locations for virtual PHI arguments.
26131 (rewrite_update_phi_arguments): Likewise.
26132
e1f674e4
JS
261332013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26134
26135 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26136 on to assembler.
26137
a57fc743
JJ
261382013-01-10 Jakub Jelinek <jakub@redhat.com>
26139
26140 PR tree-optimization/55921
26141 * tree-complex.c (expand_complex_asm): New function.
26142 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26143
0ff4390d
AK
261442013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26145
26146 PR target/55718
26147 * config/s390/s390.c (s390_symref_operand_p)
26148 (s390_loadrelative_operand_p): Merge the two functions.
26149 (s390_check_qrst_address, print_operand_address): Add parameters
26150 to s390_loadrelative_operand_p invokation.
26151 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26152 (s390_reload_larl_operand, s390_secondary_reload): Use
26153 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26154 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26155
6f557e0e
MS
261562013-01-09 Mike Stump <mikestump@comcast.net>
26157
26158 * dse.c (record_store): Remove unnecessary assert.
26159
7770c9e9
JH
261602013-01-09 Jan Hubicka <jh@suse.cz>
26161
26162 PR tree-optimization/55569
26163 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26164 * cfgloop.h (scale_loop_profile): Likewise.
26165
a19b1432
JH
261662013-01-09 Jan Hubicka <jh@suse.cz>
26167
26168 PR lto/45375
ddf9322d
UB
26169 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26170 functions.
a19b1432
JH
26171 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26172
9a002da8
RS
261732013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26174
26175 PR middle-end/55114
26176 * expr.h (maybe_emit_group_store): Declare.
26177 * expr.c (maybe_emit_group_store): New function.
26178 * builtins.c (expand_builtin_int_roundingfn): Call it.
26179 (expand_builtin_int_roundingfn_2): Likewise.
26180
511dcace
VM
261812013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26182
e1f2b729 26183 PR rtl-optimization/55829
511dcace
VM
26184 * lra-constraints.c (match_reload): Add code for absent output.
26185 (curr_insn_transform): Add code for reloads of matched inputs
26186 without output.
26187
7b0fe4f4
UB
261882013-01-09 Uros Bizjak <ubizjak@gmail.com>
26189
26190 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26191 attribute of movddup insn to DF.
26192 (*vec_interleave_lowv2df): Ditto.
26193 (vec_dupv2df): Ditto.
26194
870ca331
JH
261952013-01-09 Jan Hubicka <jh@suse.cz>
26196
26197 PR tree-optimiation/55875
26198 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26199 EVERY_ITERATION parameter.
7b0fe4f4 26200 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26201 (idx_infer_loop_bounds): Similarly here.
26202 (n_of_executions_at_most): Simplify
26203 to only test for cases where statement is dominated by the
7b0fe4f4 26204 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26205 (scev_probably_wraps_p): Use max loop iterations info
26206 as a global bound first.
26207
6f575fe4 262082013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26209 Nick Clifton <nickc@redhat.com>
26210
26211 * config/v850/v850.md (cbranchsf4): New pattern.
26212 (cstoresf4): New pattern.
26213 (cbranchdf4): New pattern.
26214 (cstoredf4): New pattern.
26215 (movsicc): Disallow floating point comparisons.
26216 (cmpsf_le_insn): Fix order of operators.
26217 (cmpsf_lt_insn): Likewise.
26218 (cmpsf_eq_insn): Likewise.
26219 (cmpdf_le_insn): Likewise.
26220 (cmpdf_lt_insn): Likewise.
26221 (cmpdf_eq_insn): Likewise.
26222 (cmpsf_ge_insn): Use LE comparison.
26223 (cmpdf_ge_insn): Likewise.
26224 (cmpsf_gt_insn): Use LT comparison.
26225 (cmpdf_gt_insn): Likewise.
26226 (cmpsf_ne_insn): Delete pattern.
26227 (cmpdf_ne_insn): Delete pattern.
26228 * config/v850/v850.c (v850_gen_float_compare): Use
26229 gen_cmpdf_eq_insn for NE comparison.
26230 (v850_float_z_comparison_operator)
26231 (v850_float_nz_comparison_operator): Move from here ...
26232 * config/v850/predicates.md: ... to here. Move GT and GE
26233 comparisons into v850_float_z_comparison_operator.
26234 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26235 Delete prototype.
26236 (v850_float_nz_comparison_operator): Likewise.
26237
f0d54148
JDA
262382013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26239
26240 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26241 with calls to gen_insvsi/gen_insvdi.
26242
8f01beca
VK
262432013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26244
26245 * config/i386/i386.c (initial_ix86_tune_features): Set up
26246 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26247
2aa579ad
JJ
262482013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26249 Jakub Jelinek <jakub@redhat.com>
26250
26251 PR tree-optimization/48189
26252 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26253 If nitercst is 0, don't predict the exit edge.
26254
6edc3e32 262552013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26256
26257 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26258 in asm_fprintf with reg_names.
26259 (aarch64_print_operand_address): Likewise.
26260 (aarch64_return_addr): Likewise.
26261 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26262
f6f94d94
JDA
262632013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26264
26265 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26266 (INT_U6_BITS): Likewise.
26267 * config/pa/predicates.md (uint6_operand): New predicate.
26268 (shift5_operand, shift6_operand): Likewise.
26269 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26270 arith32_operand.
26271 (lshrdi3): Use shift6_operand.
26272 (shrpsi4, shrpdi4): New insn patterns.
26273 (extzv): Delete expander.
26274 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26275 predicates in unamed zero extract patterns. Tighten common constraint.
26276 (extv): Delete expander.
26277 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26278 predicates in unamed sign extract patterns. Tighten common constraint.
26279 (insv): Delete expander.
26280 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26281 predicates in unamed insert patterns. Tighten common constraint.
26282 Change uint32_operand predicate to uint6_operand predicate in unamed
26283 DImode pattern to insert constant values of type 1...1xxxx.
26284
36b72910
JH
262852013-01-04 Jan Hubicka <jh@suse.cz>
26286
26287 PR tree-optimization/55823
7b0fe4f4
UB
26288 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26289 issue.
36b72910 26290
47876a2a 262912013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26292 Uros Bizjak <ubizjak@gmail.com>
26293
26294 PR rtl-optimization/55845
26295 * df-problems.c (can_move_insns_across): Stop scanning at
26296 volatile_insn_p source instruction or give up if
26297 across_from .. across_to range contains any volatile_insn_p
26298 instructions.
26299
4369c11e
TB
263002013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26301
7b0fe4f4
UB
26302 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26303 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26304 Declare.
4369c11e 26305 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26306 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26307
aeb7e7c1
JJ
263082013-01-08 Jakub Jelinek <jakub@redhat.com>
26309
26310 PR fortran/55341
26311 * asan.c (asan_clear_shadow): New function.
26312 (asan_emit_stack_protection): Use it.
26313
a02ad1aa
TB
263142013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26315
26316 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26317 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26318 with tab instead of space.
26319
f90d87f5
NC
263202013-01-08 Nick Clifton <nickc@redhat.com>
26321
26322 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26323 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26324 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26325 MDBH registers.
f90d87f5 26326
385eb93d
JG
263272013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26328
26329 * config/aarch64/aarch64-simd.md
26330 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26331 (aarch64_simd_bsl): Likewise.
26332 (aarch64_vcond_internal<mode>): Likewise.
26333 (vcond<mode><mode>): Likewise.
26334 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26335 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26336
4dcd1054
JG
263372013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26338
26339 * config/aarch64/aarch64-builtins.c
26340 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26341
4267a4a6
MJ
263422013-01-08 Martin Jambor <mjambor@suse.cz>
26343
26344 PR debug/55579
26345 * tree-sra.c (analyze_access_subtree): Return true also after
26346 potentially creating a debug-only replacement.
26347
5f4e6de3
JJ
263482013-01-08 Jakub Jelinek <jakub@redhat.com>
26349
3138f224
JJ
26350 PR middle-end/55890
26351 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26352
5f4e6de3
JJ
26353 PR tree-optimization/54120
26354 * tree-vrp.c (range_fits_type_p): Don't allow
26355 src_precision < precision from signed vr to unsigned_p
26356 if vr->min or vr->max is negative.
26357 (simplify_float_conversion_using_ranges): Test can_float_p
26358 against CODE_FOR_nothing.
26359
f3ef18ff
JJ
263602013-01-08 Jakub Jelinek <jakub@redhat.com>
26361 Richard Biener <rguenther@suse.de>
26362
26363 PR middle-end/55851
26364 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26365 types instead of just INTEGER_TYPE types.
26366
25c210f9
MK
263672013-01-07 Mark Kettenis <kettenis@openbsd.org>
26368
26369 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26370 TF_SIZE): Define.
f90d87f5 26371
81826a7b
SE
263722013-01-07 Steve Ellcey <sellcey@mips.com>
26373
26374 PR target/42661
26375 * config/mips/mips.opt: Change mad to mmad to match documentation.
26376
35678514
GJL
263772013-01-07 Georg-Johann Lay <avr@gjlay.de>
26378
26379 PR target/55897
26380 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26381 .progmemx.data now.
26382
e5669488
GJL
263832013-01-07 Georg-Johann Lay <avr@gjlay.de>
26384
26385 PR target/55897
26386 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26387 (avr_addrspace_t): Add .section_name field.
26388 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26389 array size.
26390 (avr_addrspace): Same. Initialize .section_name. Remove last
26391 NULL entry. Put __memx into .progmemx.data.
26392 (progmem_section_prefix): Remove.
26393 (avr_asm_init_sections): No need to initialize progmem_section.
26394 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26395 section name prefix.
26396 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26397 retrieve the progmem section.
26398 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26399 boundary to run over avr_addrspace[].
26400 (avr_register_target_pragmas): Ditto.
26401
656e6f37
JJ
264022013-01-06 Jakub Jelinek <jakub@redhat.com>
26403
26404 * varasm.c (output_constant_def_contents): For asan_protect_global
26405 protected strings, adjust DECL_ALIGN if needed, before testing for
26406 anchored symbols.
26407 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26408 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26409 normal decls.
26410 (output_object_block): For asan protected decls, emit asan padding
26411 after their contents.
26412 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26413 (asan_finish_file): Test it here instead.
26414
6edc3e32
UB
264152013-01-07 Nick Clifton <nickc@redhat.com>
26416 Matthias Klose <doko@debian.org>
26417 Doug Kwan <dougkwan@google.com>
26418 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26419
26420 PR driver/55470
26421 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26422
26423 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26424
26425 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26426
7b0fe4f4 26427 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26428
26429 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26430
2a095093
GJL
264312013-01-07 Georg-Johann Lay <avr@gjlay.de>
26432
f3b503f4 26433 PR target/54461
2a095093
GJL
26434 * doc/install.texi (Cross-Compiler-Specific Options): Document
26435 --with-avrlibc.
26436
383f9b34
TB
264372013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26438
26439 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26440 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26441 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26442 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26443 vqmovun_high_s64): Fix source operand number and update copyright.
26444
3626621a
RB
264452013-01-07 Richard Biener <rguenther@suse.de>
26446
26447 PR middle-end/55890
26448 * gimple.h (gimple_call_builtin_p): New overload.
26449 * gimple.c (validate_call): New function.
26450 (gimple_call_builtin_p): Likewise.
26451 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26452 Use gimple_call_builtin_p.
26453 (find_func_clobbers): Likewise.
26454 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26455 (strlen_optimize_stmt): Likewise.
26456
8b2ea410
JG
264572013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26458
26459 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26460 (vld1q_dup_*): Likewise.
26461 (vld1_*): Likewise.
26462 (vld1q_*): Likewise.
26463 (vld1_lane_*): Likewise.
26464 (vld1q_lane_*): Likewise.
26465
9713d329
RB
264662013-01-07 Richard Biener <rguenther@suse.de>
26467
26468 * lto-streamer.h (LTO_minor_version): Bump to 2.
26469
3520f7cc
JG
264702013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26471
26472 * config/aarch64/aarch64-protos.h
26473 (aarch64_const_double_zero_rtx_p): Rename to...
26474 (aarch64_float_const_zero_rtx_p): ...this.
26475 (aarch64_float_const_representable_p): New.
26476 (aarch64_output_simd_mov_immediate): Likewise.
26477 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26478 move immediate case.
26479 * config/aarch64/aarch64.c
26480 (aarch64_const_double_zero_rtx_p): Rename to...
26481 (aarch64_float_const_zero_rtx_p): ...this.
26482 (aarch64_print_operand): Allow printing of new constants.
26483 (aarch64_valid_floating_const): New.
26484 (aarch64_legitimate_constant_p): Check for valid floating-point
26485 constants.
26486 (aarch64_simd_valid_immediate): Likewise.
26487 (aarch64_vect_float_const_representable_p): New.
26488 (aarch64_float_const_representable_p): Likewise.
26489 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26490 (aarch64_output_simd_mov_immediate): New.
26491 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26492 (*movdf_aarch64): Likewise.
26493 * config/aarch64/constraints.md (Ufc): New.
26494 (Y): call aarch64_float_const_zero_rtx.
26495 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26496
e167c04d
RB
264972013-01-07 Richard Biener <rguenther@suse.de>
26498
26499 PR tree-optimization/55888
26500 PR tree-optimization/55862
26501 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26502 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26503 not if it is contained therein.
26504
0139aaab
GJL
265052013-01-07 Georg-Johann Lay <avr@gjlay.de>
26506
26507 * config/avr/t-avr: Typo.
26508
4a176b23
GJL
265092013-01-07 Georg-Johann Lay <avr@gjlay.de>
26510
26511 PR55243
26512 * config/avr/t-avr: Don't automatically rebuild
26513 $(srcdir)/config/avr/t-multilib
26514 $(srcdir)/config/avr/avr-tables.opt
26515 $(srcdir)/doc/avr-mmcu.texi
26516 (avr-mcus): New phony target to build them on request.
26517 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26518 * avr/avr-mcus.def: Adjust comments.
26519
c7afdc98
UB
265202013-01-07 Uros Bizjak <ubizjak@gmail.com>
26521
26522 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26523
1ab05c31
RS
265242013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26525
26526 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26527
488e3acc
RS
265282013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26529
26530 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26531
a89599d2
DE
265322013-01-05 David Edelsohn <dje.gcc@gmail.com>
26533
26534 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26535 to generate profiling.
26536 * config/rs6000/aix64.h (LIB_SPEC): Same.
26537
70f09188
AP
265382013-01-04 Andrew Pinski <apinski@cavium.com>
26539
26540 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26541 New function.
26542 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26543
918d445f
UB
265442013-01-04 Uros Bizjak <ubizjak@gmail.com>
26545
26546 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26547 unconditionally.
26548 (ix86_expand_move): Ditto.
26549 (ix86_zero_extend_to_Pmode): Ditto.
26550 (ix86_expand_call): Ditto.
26551 (ix86_expand_special_args_builtin): Ditto.
26552 (ix86_expand_builtin): Ditto.
26553
361618ec
RB
265542013-01-04 Richard Biener <rguenther@suse.de>
26555
26556 PR tree-optimization/55862
26557 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26558 translating them through PHI nodes.
26559
87eab554
MJ
265602013-01-04 Martin Jambor <mjambor@suse.cz>
26561
26562 PR tree-optimization/55755
26563 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26564 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26565
33879b9f
MP
265662013-01-04 Marek Polacek <polacek@redhat.com>
26567
26568 PR middle-end/55859
26569 * opts.c (default_options_optimization): Clarify error message.
26570
3068819a
RB
265712013-01-04 Richard Biener <rguenther@suse.de>
26572
26573 PR middle-end/55863
26574 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26575 reassociation.
26576
0e4ae794
JDA
265772013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26578
26579 PR target/53789
26580 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26581 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26582 references.
0e4ae794 26583
65c88cef
RH
265842013-01-03 Richard Henderson <rth@redhat.com>
26585
26586 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26587 after eliminating TLS symbols.
26588
8ac16127
MG
265892013-01-03 Marc Glisse <marc.glisse@inria.fr>
26590
26591 PR bootstrap/50167
26592 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26593 * graphite-poly.c (debug_gmp_value): Likewise.
26594
bb664f09
UB
265952013-01-03 Uros Bizjak <ubizjak@gmail.com>
26596
26597 PR target/55712
26598 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26599 selected code model, define __code_mode_small__, __code_model_medium__,
26600 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26601 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26602 xchg temporary register with %k. Declare temporary register as
26603 early clobbered.
26604 [__x86_64__]: For medium and large code models, preserve %rbx register.
26605
bcf1ef00
RB
266062013-01-03 Richard Biener <rguenther@suse.de>
26607
0506634a 26608 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26609 (dump_subscript): Adjust.
26610 (finalize_ddr_dependent): Do not dump redundant info.
26611 (analyze_siv_subscript): Adjust.
26612 (subscript_dependence_tester): Likewise.
26613 (compute_affine_dependence): Likewise.
26614
59fd17e3
RB
266152013-01-03 Richard Biener <rguenther@suse.de>
26616
26617 Revert
26618 2013-01-03 Richard Biener <rguenther@suse.de>
26619
26620 PR tree-optimization/55857
26621 * tree-vect-stmts.c (vectorizable_load): Do not setup
26622 re-alignment for invariant loads.
26623
26624 2013-01-02 Richard Biener <rguenther@suse.de>
26625
26626 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26627 invariant load do not generate a vector load from the scalar location.
59fd17e3 26628
595c2679
RB
266292013-01-03 Richard Biener <rguenther@suse.de>
26630
26631 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26632 for not vectorizing.
26633 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26634 not build INDIRECT_REFs, call get_name once only.
26635 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26636 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26637
90bb7d7a
RB
266382013-01-03 Richard Biener <rguenther@suse.de>
26639
26640 PR tree-optimization/55857
26641 * tree-vect-stmts.c (vectorizable_load): Do not setup
26642 re-alignment for invariant loads.
26643
f09b77ca
RB
266442013-01-03 Richard Biener <rguenther@suse.de>
26645
26646 PR lto/55848
26647 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26648 prefer a built-in decl.
26649
3461a16e
JJ
266502013-01-03 Jakub Jelinek <jakub@redhat.com>
26651
df8e2b4f
JJ
26652 * gcc.c (process_command): Update copyright notice dates.
26653 * gcov.c (print_version): Likewise.
26654 * gcov-dump.c (print_version): Likewise.
26655
3461a16e
JJ
26656 PR rtl-optimization/55838
26657 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26658 iv0.step, iv1.step and step.
26659
8b5546d6
JJ
266602013-01-03 Jakub Jelinek <jakub@redhat.com>
26661 Marc Glisse <marc.glisse@inria.fr>
26662
26663 PR tree-optimization/55832
26664 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26665 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26666 integer_{one,zero}_node.
26667
8ab1d2e9
JJ
266682013-01-03 Jakub Jelinek <jakub@redhat.com>
26669
26670 PR debug/54402
26671 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26672 * var-tracking.c (reverse_op): Don't add reverse ops to
26673 VALUEs that have already
0506634a 26674 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 26675
5b9ad1d4
GP
266762013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26677
26678 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26679
e25a6711
TJ
266802013-01-02 Teresa Johnson <tejohnson@google.com>
26681
26682 * dumpfile.c (dump_loc): Print filename with location.
26683 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26684 new location_t parameter to emit complete unroll message with
26685 new dump framework.
26686 (canonicalize_loop_induction_variables): Compute loops location
26687 and pass to try_unroll_loop_completely.
26688 * loop-unroll.c (report_unroll_peel): New function.
26689 (peel_loops_completely): Use new dump format with location
26690 for main dumpfile message, and invoke report_unroll_peel on success.
26691 (decide_unrolling_and_peeling): Ditto.
26692 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26693 by report_unroll_peel.
26694 (decide_peel_completely): Ditto.
26695 (decide_unroll_constant_iterations): Ditto.
26696 (decide_unroll_runtime_iterations): Ditto.
26697 (decide_peel_simple): Ditto.
26698 (decide_unroll_stupid): Ditto.
26699 * cfgloop.c (get_loop_location): New function.
26700 * cfgloop.h (get_loop_location): Declare.
26701
77878621
ST
267022013-01-02 Sriraman Tallam <tmsriram@google.com>
26703
26704 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26705 NULL.
26706
9e65d03e
JDA
267072013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26708
26709 PR middle-end/55198
26710 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
26711 BLKmode objects when EXPAND_MEMORY is specified.
26712
6a7da30f
ST
267132013-01-02 Sriraman Tallam <tmsriram@google.com>
26714
26715 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
26716 in loop predicate.
26717 (fold_builtin_cpu): Do not share cpu model decls across statements.
26718
e78167f2
JM
267192013-01-02 Jason Merrill <jason@redhat.com>
26720
26721 PR c++/55804
26722 * tree.c (build_array_type_1): Revert earlier change.
26723
8c075fb4
YZ
267242013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
26725
26726 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
26727 "cortex-a57".
26728 * config/aarch64/aarch64-tune.md: Re-generate.
26729
0682ed3e
RB
267302013-01-02 Richard Biener <rguenther@suse.de>
26731
26732 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26733 invariant load do not generate a vector load from the scalar location.
0682ed3e 26734
b8f6a302
RB
267352013-01-02 Richard Biener <rguenther@suse.de>
26736
26737 PR bootstrap/55784
26738 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
26739 * configure: Regenerate.
26740
04b80dbb
RS
267412013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26742
26743 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
26744 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
26745 (expand_builtin_int_roundingfn_2): Keep the original target around
26746 for the fallback case.
26747
635b0b0c
RS
267482013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26749
26750 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
26751 to be clear for sign changes.
26752
42d57399
JH
267532013-01-01 Jan Hubicka <jh@suse.cz>
26754
26755 * ipa-inline-analysis.c: Fix formatting.
26756
5bb6669d
JJ
267572013-01-01 Jakub Jelinek <jakub@redhat.com>
26758
26759 PR tree-optimization/55831
26760 * tree-vect-loop.c (get_initial_def_for_induction): Use
26761 gsi_after_labels instead of gsi_start_bb.
ad41bd84 26762\f
86a2db33 26763Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
26764
26765Copying and distribution of this file, with or without modification,
26766are permitted in any medium without royalty provided the copyright
26767notice and this notice are preserved.