]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR c++/58596 ([c++11] ICE with decltype in non-static data member initializer)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f541a481
KT
12013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2
3 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
4
51bb310d
MS
52013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
6
7 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
8 handling of STACK_REG.
9
f4bed77b
RB
102013-10-17 Richard Biener <rguenther@suse.de>
11
12 PR tree-optimization/58143
13 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
14 New function.
15 (rewrite_to_defined_overflow): Likewise.
16 (move_computations_dom_walker::before_dom): Rewrite stmts
17 with undefined signed overflow that are not always executed
18 into unsigned arithmetic.
19
d358fb9d
MM
202013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
21
22 PR target/57756
23 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
24 explicit isa flag to be an options variable, instead of using
25 global_options_set. Remove define from rs6000.h.
26 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
27
28 * config/rs6000/rs6000.c (rs6000_option_override_internal):
29 Initialize rs6000_isa_flags_explicit.
30 (rs6000_function_specific_save): Add gcc_options* parameter, so
31 that the powerpc builds after the 2013-10-15 changes.
32 (rs6000_function_specific_restore): Likewise.
33
c71aed47
DD
342013-10-16 DJ Delorie <dj@redhat.com>
35
36 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
37 op is a REG before checking REGNO.
38 (rl78_alloc_physical_registers): Verify pattern is a SET before
39 checking SET_SRC.
40
90d3bd51
BS
412013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42
43 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
44 endianness.
45 (vec_unpacks_lo_v4sf): Likewise.
46 (vec_unpacks_float_hi_v4si): Likewise.
47 (vec_unpacks_float_lo_v4si): Likewise.
48 (vec_unpacku_float_hi_v4si): Likewise.
49 (vec_unpacku_float_lo_v4si): Likewise.
50
de75c876
BS
512013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
52
53 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
54 (vsx_concat_v2sf): Likewise.
55
21216998
JG
562013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
57
58 * config/aarch64/aarch64.md
59 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
60
1ef88893 612013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 62
1ef88893 63 PR tree-optimization/58697
7ab4168e 64 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
65 estimated_loop_iterations_int.
66 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 67 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
68 get_max_loop_iterations.
69 * cfgloop.h: Add prototypes.
70 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 71 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
72 get_estimated_loop_iterations_int.
73 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
74 * tree-ssa-loop-niter.h: Tweak prototypes.
75
c22df64f
DM
762013-10-16 David Malcolm <dmalcolm@redhat.com>
77
78 * gengtype-parse.c (struct_field_seq): Ignore access-control
79 keywords ("public:" etc).
80
f24bb080
MS
812013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
82
83 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
84 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
85
c281bf26
YR
862013-10-16 Yvan Roux <yvan.roux@linaro.org>
87
88 * config/arm/arm.opt (mlra): New option.
89 * config/arm/arm.c (arm_lra_p): New function.
90 (TARGET_LRA_P): Define.
91
5806f481
PM
922013-10-16 Paulo Matos <pmatos@broadcom.com>
93
94 * tree-core.h (tree_code_name): Remove.
95 * tree.h (get_tree_code_name): New prototype.
96 * tree.c (tree_code_name): Make static.
97 (get_tree_code_name): New function.
98 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
99 tree_class_check_failed, tree_range_check_failed,
100 tree_not_class_check_failed, omp_clause_check_failed,
101 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
102 wrapper get_tree_code_name instead of calling tree_code_name directly.
103 * tree-vrp.c (dump_asserts_for): Likewise.
104 * tree-dump.c (dequeue_and_dump): Likewise.
105 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
106 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
107 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
108 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
109 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
110 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
111 dump_gimple_omp_for): Likewise.
112 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
113 * tree-ssa-pre.c (print_pre_expr): Likewise.
114 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
115 * print-tree.c (print_node_brief, print_node): Likewise.
116 * gimple.c (gimple_check_failed): Likewise.
117 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
118 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
119 * config/mep/mep.c (mep_validate_vliw): Likewise.
120 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
121 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
122
82c9df56
GG
1232013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
124
125 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
126 for AMD bdver3.
127
b82d0df9
HPN
1282013-10-16 Hans-Peter Nilsson <hp@axis.com>
129
130 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
131 (MULTILIB_MATCHES): Add multilib for -march=v8.
132
bf7b5747
ST
1332013-10-15 Sriraman Tallam <tmsriram@google.com>
134
135 PR target/57756
136 * optc-save-gen.awk: Add extra parameter to the save and restore
137 target calls.
138 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
139 * tree.c (build_optimization_node): New parameter. Add extra parameter
140 to call to cl_optimization_save.
141 (build_target_option_node): New parameter. Add extra parameter
142 to call to cl_target_option_save.
143 * tree.h (build_optimization_node): New parameter.
144 (build_target_option_node): New parameter.
145 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
146 build_optimization_node and build_target_option_node.
147 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
148 (handle_pragma_push_options): Ditto.
149 * toplev.c (process_options): Ditto.
150 * opts.c (init_options_struct): Check for opts_set non-null.
151 * target.def (target_option.save): New parameter.
152 (target_option.restore): New parameter.
153 * tm.texi: Generate.
154 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
155 (ix86_pragma_target_parse): Ditto.
156 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
157 parameters.
158 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
159 to build_optimization_node and build_target_option_node.
160 (rs6000_valid_attribute_p): Ditto.
161 (rs6000_pragma_target_parse): Ditto.
162 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
163 data.
164 * config/i386/i386.h:
165 TARGET_64BIT_P: New Macro
166 TARGET_MMX_P: New Macro.
167 TARGET_3DNOW_P: New Macro.
168 TARGET_3DNOW_A_P: New Macro.
169 TARGET_SSE_P: New Macro.
170 TARGET_SSE2_P: New Macro.
171 TARGET_SSE3_P: New Macro.
172 TARGET_SSSE3_P: New Macro.
173 TARGET_SSE4_1_P: New Macro.
174 TARGET_SSE4_2_P: New Macro.
175 TARGET_AVX_P: New Macro.
176 TARGET_AVX2_P: New Macro.
177 TARGET_AVX512F_P: New Macro.
178 TARGET_AVX512PF_P: New Macro.
179 TARGET_AVX512ER_P: New Macro.
180 TARGET_AVX512CD_P: New Macro.
181 TARGET_FMA_P: New Macro.
182 TARGET_SSE4A_P: New Macro.
183 TARGET_FMA4_P: New Macro.
184 TARGET_XOP_P: New Macro.
185 TARGET_LWP_P: New Macro.
186 TARGET_ABM_P: New Macro.
187 TARGET_BMI_P: New Macro.
188 TARGET_BMI2_P: New Macro.
189 TARGET_LZCNT_P: New Macro.
190 TARGET_TBM_P: New Macro.
191 TARGET_POPCNT_P: New Macro.
192 TARGET_SAHF_P: New Macro.
193 TARGET_MOVBE_P: New Macro.
194 TARGET_CRC32_P: New Macro.
195 TARGET_AES_P: New Macro.
196 TARGET_PCLMUL_P: New Macro.
197 TARGET_CMPXCHG16B_P: New Macro.
198 TARGET_FSGSBASE_P: New Macro.
199 TARGET_RDRND_P: New Macro.
200 TARGET_F16C_P: New Macro.
201 TARGET_RTM_P: New Macro.
202 TARGET_HLE_P: New Macro.
203 TARGET_RDSEED_P: New Macro.
204 TARGET_PRFCHW_P: New Macro.
205 TARGET_ADX_P: New Macro.
206 TARGET_FXSR_P: New Macro.
207 TARGET_XSAVE_P: New Macro.
208 TARGET_XSAVEOPT_P: New Macro.
209 TARGET_LP64_P: New Macro.
210 TARGET_X32_P: New Macro.
211 TARGET_FPMATH_DEFAULT_P: New Macro.
212 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
213 * config/i386/i386.c (ix86_option_override_internal): New parameters.
214 opts and opts_set.
215 Change ix86_tune_string to access opts->x_ix86_tune_string.
216 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
217 Change ix86_arch_string to access opts->x_ix86_arch_string.
218 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
219 Change ix86_pmode to access opts->x_ix86_pmode.
220 Change ix86_abi to access opts->x_ix86_abi.
221 Change ix86_cmodel to access opts->x_ix86_cmodel.
222 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
223 Change ix86_isa_flags_explicit to access
224 opts->x_ix86_isa_flags_explicit.
225 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
226 Change ix86_regparm to access opts->x_ix86_regparm.
227 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
228 Change ix86_preferred_stack_boundary_arg to access
229 opts->x_ix86_preferred_stack_boundary_arg.
230 Change ix86_force_align_arg_pointer to access
231 opts->x_ix86_force_align_arg_pointer.
232 Change ix86_incoming_stack_boundar_arg to access
233 opts->x_ix86_incoming_stack_boundar_arg.
234 Change ix86_fpmath to access opts->x_ix86_fpmath.
235 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
236 Change ix86_recip_name to access opts->x_ix86_recip_name.
237 Change ix86_stack_protector_guard to access
238 opts->x_ix86_stack_protector_guard.
239 Change ix86_tune_memcpy_strategy to access
240 opts->x_ix86_tune_memcpy_strategy.
241 Change ix86_tune_memset_strategy to access
242 opts->x_ix86_tune_memset_strategy.
243 Change global_options to access opts.
244 Change global_options_set to access opts_set.
245 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
246 Change TARGET_MMX to TARGET_MMX_P (opts->...)
247 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...)
248 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...)
249 Change TARGET_SSE to TARGET_SSE_P (opts->...)
250 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
251 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...)
252 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...)
253 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...)
254 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...)
255 Change TARGET_AVX to TARGET_AVX_P (opts->...)
256 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...)
257 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...)
258 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...)
259 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...)
260 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...)
261 Change TARGET_FMA to TARGET_FMA_P (opts->...)
262 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...)
263 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...)
264 Change TARGET_XOP to TARGET_XOP_P (opts->...)
265 Change TARGET_LWP to TARGET_LWP_P (opts->...)
266 Change TARGET_ABM to TARGET_ABM_P (opts->...)
267 Change TARGET_BMI to TARGET_BMI_P (opts->...)
268 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...)
269 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...)
270 Change TARGET_TBM to TARGET_TBM_P (opts->...)
271 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...)
272 Change TARGET_SAHF to TARGET_SAHF_P (opts->...)
273 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...)
274 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...)
275 Change TARGET_AES to TARGET_AES_P (opts->...)
276 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...)
277 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...)
278 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...)
279 Change TARGET_RDRND to TARGET_RDRND_P (opts->...)
280 Change TARGET_F16C to TARGET_F16C_P (opts->...)
281 Change TARGET_RTM to TARGET_RTM_P (opts->...)
282 Change TARGET_HLE to TARGET_HLE_P (opts->...)
283 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...)
284 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...)
285 Change TARGET_ADX to TARGET_ADX_P (opts->...)
286 Change TARGET_FXSR to TARGET_FXSR_P (opts->...)
287 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...)
288 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...)
289 Change TARGET_LP64 to TARGET_LP64_P (opts->...)
290 Change TARGET_X32 to TARGET_X32_P (opts->...)
291 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...)
292 Change TARGET_FLOAT_RETURNS_IN_80387 to
293 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...)
294 (ix86_function_specific_save): New parameter. Use opts-> fields
295 to replace global fields.
296 (ix86_function_specific_restore): Ditto.
297 (ix86_valid_target_attribute_inner_p): New parameters.
298 Fix recursive call.
299 Fix call to ix86_handle_option and set_option.
300 (ix86_valid_target_attribute_tree): New parameters.
301 Change global_options to access opts.
302 Change global_options_set to access opts_set.
303 Fix call to ix86_valid_target_attribute_inner_p.
304 Change ix86_tune_string to access opts->x_ix86_tune_string.
305 Change ix86_arch_string to access opts->x_ix86_arch_string.
306 Change ix86_fpmath to access opts->x_ix86_fpmath
307 Fix call to ix86_option_override_internal.
308 Fix call to ix86_add_new_builtins.
309 Fix calls to build_optimization_node and build_target_option_node.
310 (ix86_valid_target_attribute_p): Remove access to global_options.
311 Use new gcc_options structure func_options.
312 Fix call to ix86_valid_target_attribute_tree.
313 Fix call to build_optimization_node.
314 (get_builtin_code_for_version): Fix call to
315 ix86_valid_target_attribute_tree.
316
459260ec
DM
3172013-10-15 David Malcolm <dmalcolm@redhat.com>
318
319 * Makefile.in (PICFLAG): New.
320 (enable_host_shared): New.
321 (INTERNAL_CFLAGS): Use PICFLAG.
322 (LIBIBERTY): Use pic build of libiberty.a if configured with
323 --enable-host-shared.
324 * configure.ac: Add --enable-host-shared, setting up new
325 PICFLAG variable.
326 * configure: Regenerate.
327 * doc/install.texi (--enable-shared): Add note contrasting it
328 with...
329 (--enable-host-shared): New option.
330
16022041
RS
3312013-10-15 Richard Biener <rguenther@suse.de>
332
333 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
334 for built-in functions.
335
b114bfb4
ZC
3362013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
337
338 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
339 (optimize_range_tests_1): New function,
340 extracted from optimize_range_tests.
341 (optimize_range_tests_xor): Similarly.
342 (optimize_range_tests_diff): New function.
343 (optimize_range_tests): Use optimize_range_tests_1.
344
69b8f2f9
CH
3452013-10-15 Cong Hou <congh@google.com>
346
7ab4168e
MS
347 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
348 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
349 reduction operation can come from outside of the loop.
350
8ff5a4e4
JG
3512013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
352
353 * config/arm/neon-schedgen.ml: Remove.
354 * config/arm/cortex-a9-neon.md: Remove comment regarding
355 neon-schedgen.ml.
356
52b69ad2
JG
3572013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
358
359 * config/arm/types: Remove old neon types.
360
e7c6a556
JG
3612013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
362
363 * config/arm/cortex-a7.md
364 (cortex_a7_neon_type): New.
365 (cortex_a7_neon_mul): Update for new types.
366 (cortex_a7_neon_mla): Likewise.
367 (cortex_a7_neon): Likewise.
368
795dd8d5
JG
3692013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
370
371 * config/arm/cortex-a15-neon.md
372 (cortex_a15_neon_type): New,
373
374 (cortex_a15_neon_int_1): Remove.
375 (cortex_a15_neon_int_2): Likewise.
376 (cortex_a15_neon_int_3): Likewise.
377 (cortex_a15_neon_int_4): Likewise.
378 (cortex_a15_neon_int_5): Likewise.
379 (cortex_a15_neon_vqneg_vqabs): Likewise.
380 (cortex_a15_neon_vmov): Likewise.
381 (cortex_a15_neon_vaba): Likewise.
382 (cortex_a15_neon_vaba_qqq): Likewise.
383 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
384 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
385 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
386 Likewise.
387 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
388 (cortex_a15_neon_mla_qqq_8_16): Likewise.
389 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
390 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
391 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
392 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
393 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
394 (cortex_a15_neon_shift_1): Likewise.
395 (cortex_a15_neon_shift_2): Likewise.
396 (cortex_a15_neon_shift_3): Likewise.
397 (cortex_a15_neon_vshl_ddd): Likewise.
398 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
399 (cortex_a15_neon_vsra_vrsra): Likewise.
400 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
401 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
402 (cortex_a15_neon_bp_3cycle): Likewise.
403 (cortex_a15_neon_ldm_2): Likewise.
404 (cortex_a15_neon_stm_2): Likewise.
405 (cortex_a15_neon_mcr): Likewise.
406 (cortex_a15_neon_mrc): Likewise.
407 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
408 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
409 (cortex_a15_neon_fp_vmul_ddd): Likewise.
410 (cortex_a15_neon_fp_vmul_qqd): Likewise.
411 (cortex_a15_neon_fp_vmla_ddd): Likewise.
412 (cortex_a15_neon_fp_vmla_qqq): Likewise.
413 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
414 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
415 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
416 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
417 (cortex_a15_neon_bp_simple): Likewise.
418 (cortex_a15_neon_bp_2cycle): Likewise.
419 (cortex_a15_neon_bp_3cycle): Likewise.
420 (cortex_a15_neon_vld1_1_2_regs): Likewise.
421 (cortex_a15_neon_vld1_3_4_regs): Likewise.
422 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
423 (cortex_a15_neon_vld2_4_regs): Likewise.
424 (cortex_a15_neon_vld3_vld4): Likewise.
425 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
426 (cortex_a15_neon_vst1_3_4_regs): Likewise.
427 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
428 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
429 (cortex_a15_neon_vst3_vst4): Rename to...
430 (cortex_a15_neon_vst4): This, update for new attributes.
431 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
432 (cortex_a15_neon_vld3_vld4_lane): Likewise.
433 (cortex_a15_neon_vst1_vst2_lane): Likewise.
434 (cortex_a15_neon_vst3_vst4_lane): Likewise.
435 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
436 (cortex_a15_neon_ldm_2): Likewise.
437 (cortex_a15_neon_stm_2): Likewise.
438 (cortex_a15_neon_mcr): Likewise.
439 (cortex_a15_neon_mcr_2_mcrr): Likewise.
440 (cortex_a15_neon_mrc): Likewise.
441 (cortex_a15_neon_mrrc): Likewise.
442
443 (cortex_a15_neon_abd): New.
444 (cortex_a15_neon_abd_q): Likewise.
445 (cortex_a15_neon_aba): Likewise.
446 (cortex_a15_neon_aba_q): Likewise.
447 (cortex_a15_neon_acc): Likewise.
448 (cortex_a15_neon_acc_q): Likewise.
449 (cortex_a15_neon_arith_basic): Likewise.
450 (cortex_a15_neon_arith_complex): Likewise.
451 (cortex_a15_neon_multiply): Likewise.
452 (cortex_a15_neon_multiply_q): Likewise.
453 (cortex_a15_neon_mla): Likewise.
454 (cortex_a15_neon_mla_q): Likewise.
455 (cortex_a15_neon_sat_mla_long): Likewise.
456 (cortex_a15_neon_shift_acc): Likewise.
457 (cortex_a15_neon_shift_imm_basic): Likewise.
458 (cortex_a15_neon_shift_imm_complex): Likewise.
459 (cortex_a15_neon_shift_reg_basic): Likewise.
460 (cortex_a15_neon_shift_reg_basic_q): Likewise.
461 (cortex_a15_neon_shift_reg_complex): Likewise.
462 (cortex_a15_neon_shift_reg_complex_q): Likewise.
463 (cortex_a15_neon_fp_negabs): Likewise
464 (cortex_a15_neon_fp_arith): Likewise
465 (cortex_a15_neon_fp_arith_q): Likewise
466 (cortex_a15_neon_fp_cvt_int): Likewise
467 (cortex_a15_neon_fp_cvt_int_q): Likewise
468 (cortex_a15_neon_fp_cvt_16): Likewise
469 (cortex_a15_neon_fp_mul): Likewise
470 (cortex_a15_neon_fp_mul_q): Likewise
471 (cortex_a15_neon_fp_mla): Likewise
472 (cortex_a15_neon_fp_mla_q): Likewise
473 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
474 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
475 (cortex_a15_neon_bitops): Likewise.
476 (cortex_a15_neon_bitops_q): Likewise.
477 (cortex_a15_neon_from_gp): Likewise.
478 (cortex_a15_neon_from_gp_q): Likewise.
479 (cortex_a15_neon_tbl3_tbl4): Likewise.
480 (cortex_a15_neon_zip_q): Likewise.
481 (cortex_a15_neon_to_gp): Likewise.
482 (cortex_a15_neon_load_a): Likewise.
483 (cortex_a15_neon_load_b): Likewise.
484 (cortex_a15_neon_load_c): Likewise.
485 (cortex_a15_neon_load_d): Likewise.
486 (cortex_a15_neon_load_e): Likewise.
487 (cortex_a15_neon_load_f): Likewise.
488 (cortex_a15_neon_store_a): Likewise.
489 (cortex_a15_neon_store_b): Likewise.
490 (cortex_a15_neon_store_c): Likewise.
491 (cortex_a15_neon_store_d): Likewise.
492 (cortex_a15_neon_store_e): Likewise.
493 (cortex_a15_neon_store_f): Likewise.
494 (cortex_a15_neon_store_g): Likewise.
495 (cortex_a15_neon_store_h): Likewise.
496 (cortex_a15_vfp_to_from_gp): Likewise.
497
bc5e57e3
JG
4982013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
499
500 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
501
502 (cortex_a9_neon_vshl_ddd): Remove.
503 (cortex_a9_neon_vst3_vst4): Likewise.
504 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
505
506 (cortex_a9_neon_bit_ops_q): New.
507
508 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
509 (cortex_a9_neon_int_2): Likewise.
510 (cortex_a9_neon_int_3): Likewise.
511 (cortex_a9_neon_int_4): Likewise.
512 (cortex_a9_neon_int_5): Likewise.
513 (cortex_a9_neon_vqneg_vqabs): Likewise.
514 (cortex_a9_neon_vmov): Likewise.
515 (cortex_a9_neon_vaba): Likewise.
516 (cortex_a9_neon_vaba_qqq): Likewise.
517 (cortex_a9_neon_shift_1): Likewise.
518 (cortex_a9_neon_shift_2): Likewise.
519 (cortex_a9_neon_shift_3): Likewise.
520 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
521 (cortex_a9_neon_vsra_vrsra): Likewise.
522 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
523 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
524 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
525 Likewise.
526 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
527 (cortex_a9_neon_mla_qqq_8_16): Likewise.
528 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
529 Likewise.
530 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
531 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
532 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
533 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
534 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
535 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
536 (cortex_a9_neon_fp_vsum): Likewise.
537 (cortex_a9_neon_fp_vmul_ddd): Likewise.
538 (cortex_a9_neon_fp_vmul_qqd): Likewise.
539 (cortex_a9_neon_fp_vmla_ddd): Likewise.
540 (cortex_a9_neon_fp_vmla_qqq): Likewise.
541 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
542 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
543 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
544 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
545 (cortex_a9_neon_bp_simple): Likewise.
546 (cortex_a9_neon_bp_2cycle): Likewise.
547 (cortex_a9_neon_bp_3cycle): Likewise.
548 (cortex_a9_neon_ldr): Likewise.
549 (cortex_a9_neon_str): Likewise.
550 (cortex_a9_neon_vld1_1_2_regs): Likewise.
551 (cortex_a9_neon_vld1_3_4_regs): Likewise.
552 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
553 (cortex_a9_neon_vld2_4_regs): Likewise.
554 (cortex_a9_neon_vld3_vld4): Likewise.
555 (cortex_a9_neon_vld1_vld2_lane): Likewise.
556 (cortex_a9_neon_vld3_vld4_lane): Likewise.
557 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
558 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
559 (cortex_a9_neon_vst1_3_4_regs): Likewise.
560 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
561 (cortex_a9_neon_vst1_vst2_lane): Likewise.
562 (cortex_a9_neon_vst3_vst4_lane): Likewise.
563 (cortex_a9_neon_mcr): Likewise.
564 (cortex_a9_neon_mcr_2_mcrr): Likewise.
565 (cortex_a9_neon_mrc): Likewise.
566 (cortex_a9_neon_mrrc): Likewise.
567
9deda8cb
JG
5682013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
569
570 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
571
572 (cortex_a8_neon_vshl_ddd): Remove.
573 (cortex_a8_neon_vst3_vst4): Likewise.
574 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
575
576 (cortex_a8_neon_bit_ops_q): New.
577
578 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
579 (cortex_a8_neon_int_2): Likewise..
580 (cortex_a8_neon_int_3): Likewise.
581 (cortex_a8_neon_int_5): Likewise.
582 (cortex_a8_neon_vqneg_vqabs): Likewise.
583 (cortex_a8_neon_int_4): Likewise.
584 (cortex_a8_neon_vaba): Likewise.
585 (cortex_a8_neon_vaba_qqq): Likewise.
586 (cortex_a8_neon_shift_1): Likewise.
587 (cortex_a8_neon_shift_2): Likewise.
588 (cortex_a8_neon_shift_3): Likewise.
589 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
590 (cortex_a8_neon_vsra_vrsra): Likewise.
591 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
592 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
593 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
594 Likewise.
595 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
596 (cortex_a8_neon_mla_qqq_8_16): Likewise.
597 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
598 Likewise.
599 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
600 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
601 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
602 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
603 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
604 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
605 (cortex_a8_neon_fp_vsum): Likewise.
606 (cortex_a8_neon_fp_vmul_ddd): Likewise.
607 (cortex_a8_neon_fp_vmul_qqd): Likewise.
608 (cortex_a8_neon_fp_vmla_ddd): Likewise.
609 (cortex_a8_neon_fp_vmla_qqq): Likewise.
610 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
611 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
612 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
613 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
614 (cortex_a8_neon_bp_simple): Likewise.
615 (cortex_a8_neon_bp_2cycle): Likewise.
616 (cortex_a8_neon_bp_3cycle): Likewise.
617 (cortex_a8_neon_ldr): Likewise.
618 (cortex_a8_neon_str): Likewise.
619 (cortex_a8_neon_vld1_1_2_regs): Likewise.
620 (cortex_a8_neon_vld1_3_4_regs): Likewise.
621 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
622 (cortex_a8_neon_vld2_4_regs): Likewise.
623 (cortex_a8_neon_vld3_vld4): Likewise.
624 (cortex_a8_neon_vld1_vld2_lane): Likewise.
625 (cortex_a8_neon_vld3_vld4_lane): Likewise.
626 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
627 (cortex_a8_neon_vst1_3_4_regs): Likewise.
628 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
629 (cortex_a8_neon_vst1_vst2_lane): Likewise.
630 (cortex_a8_neon_vst3_vst4_lane): Likewise.
631 (cortex_a8_neon_mcr): Likewise.
632 (cortex_a8_neon_mcr_2_mcrr): Likewise.
633 (cortex_a8_neon_mrc): Likewise.
634 (cortex_a8_neon_mrrc): Likewise.
635
0f686aa9
JG
6362013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
637
638 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
639 (fp): New.
640 * config/aarch64/aarch64-simd.md (neon_type): Remove.
641 (aarch64_simd_dup<mode>): Add "type" attribute.
642 (aarch64_dup_lane<mode>): Likewise.
643 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
644 (*aarch64_simd_mov<mode>): Likewise.
645 (aarch64_simd_mov_from_<mode>low): Likewise.
646 (aarch64_simd_mov_from_<mode>high): Likewise.
647 (orn<mode>3): Likewise.
648 (bic<mode>3): Likewise.
649 (add<mode>3): Likewise.
650 (sub<mode>3): Likewise.
651 (mul<mode>3): Likewise.
652 (*aarch64_mul3_elt<mode>): Likewise.
653 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
654 (*aarch64_mul3_elt_to_128df): Likewise.
655 (*aarch64_mul3_elt_to_64v2df): Likewise.
656 (neg<mode>2): Likewise.
657 (abs<mode>2): Likewise.
658 (abd<mode>_3): Likewise.
659 (aba<mode>_3): Likewise.
660 (fabd<mode>_3): Likewise.
661 (*fabd_scalar<mode>3): Likewise.
662 (and<mode>3): Likewise.
663 (ior<mode>3): Likewise.
664 (xor<mode>3): Likewise.
665 (one_cmpl<mode>2): Likewise.
666 (aarch64_simd_vec_set<mode>): Likewise.
667 (aarch64_simd_lshr<mode>): Likewise.
668 (aarch64_simd_ashr<mode>): Likewise.
669 (aarch64_simd_imm_shl<mode>): Likewise.
670 (aarch64_simd_reg_sshl<mode): Likewise.
671 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
672 (aarch64_simd_reg_shl<mode>_signed): Likewise.
673 (aarch64_simd_vec_setv2di): Likewise.
674 (aarch64_simd_vec_set<mode>): Likewise.
675 (aarch64_mla<mode>): Likewise.
676 (*aarch64_mla_elt<mode>): Likewise.
677 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
678 (aarch64_mls<mode>): Likewise.
679 (*aarch64_mls_elt<mode>): Likewise.
680 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
681 (<su><maxmin><mode>3): Likewise.
682 (move_lo_quad_<mode>): Likewise.
683 (aarch64_simd_move_hi_quad_<mode>): Likewise.
684 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
685 (vec_pack_trunc_<mode>): Likewise.
686 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
687 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
688 (*aarch64_<su>mlal_lo<mode>): Likewise.
689 (*aarch64_<su>mlal_hi<mode>): Likewise.
690 (*aarch64_<su>mlsl_lo<mode>): Likewise.
691 (*aarch64_<su>mlsl_hi<mode>): Likewise.
692 (*aarch64_<su>mlal<mode>): Likewise.
693 (*aarch64_<su>mlsl<mode>): Likewise.
694 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
695 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
696 (add<mode>3): Likewise.
697 (sub<mode>3): Likewise.
698 (mul<mode>3): Likewise.
699 (div<mode>3): Likewise.
700 (neg<mode>2): Likewise.
701 (abs<mode>2): Likewise.
702 (fma<mode>4): Likewise.
703 (*aarch64_fma4_elt<mode>): Likewise.
704 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
705 (*aarch64_fma4_elt_to_128df): Likewise.
706 (*aarch64_fma4_elt_to_64v2df): Likewise.
707 (fnma<mode>4): Likewise.
708 (*aarch64_fnma4_elt<mode>): Likewise.
709 (*aarch64_fnma4_elt_<vswap_width_name><mode>
710 (*aarch64_fnma4_elt_to_128df): Likewise.
711 (*aarch64_fnma4_elt_to_64v2df): Likewise.
712 (<frint_pattern><mode>2): Likewise.
713 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
714 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
715 (vec_unpacks_lo_v4sf): Likewise.
716 (aarch64_float_extend_lo_v2df): Likewise.
717 (vec_unpacks_hi_v4sf): Likewise.
718 (aarch64_float_truncate_lo_v2sf): Likewise.
719 (aarch64_float_truncate_hi_v4sf): Likewise.
720 (aarch64_vmls<mode>): Likewise.
721 (<su><maxmin><mode>3): Likewise.
722 (<maxmin_uns><mode>3): Likewise.
723 (reduc_<sur>plus_<mode>): Likewise.
724 (reduc_<sur>plus_v2di): Likewise.
725 (reduc_<sur>plus_v2si): Likewise.
726 (reduc_<sur>plus_<mode>): Likewise.
727 (aarch64_addpv4sf): Likewise.
728 (clz<mode>2): Likewise.
729 (reduc_<maxmin_uns>_<mode>): Likewise.
730 (reduc_<maxmin_uns>_v2di): Likewise.
731 (reduc_<maxmin_uns>_v2si): Likewise.
732 (reduc_<maxmin_uns>_<mode>): Likewise.
733 (reduc_<maxmin_uns>_v4sf): Likewise.
734 (aarch64_simd_bsl<mode>_internal): Likewise.
735 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
736 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
737 (aarch64_get_lane<mode>): Likewise.
738 (*aarch64_combinez<mode>): Likewise.
739 (aarch64_combine<mode>): Likewise.
740 (aarch64_simd_combine<mode>): Likewise.
741 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
742 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
743 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
744 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
745 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
746 (aarch64_<sur>h<addsub><mode>): Likewise.
747 (aarch64_<sur><addsub>hn<mode>): Likewise.
748 (aarch64_<sur><addsub>hn2<mode>): Likewise.
749 (aarch64_pmul<mode>): Likewise.
750 (aarch64_<su_optab><optab><mode>): Likewise.
751 (aarch64_<sur>qadd<mode>): Likewise.
752 (aarch64_sqmovun<mode>): Likewise.
753 (aarch64_<sur>qmovn<mode>): Likewise.
754 (aarch64_s<optab><mode>): Likewise.
755 (aarch64_sq<r>dmulh<mode>): Likewise.
756 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
757 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
758 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
759 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
760 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
761 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
762 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
763 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
764 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
765 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
766 (aarch64_sqdmull<mode>): Likewise.
767 (aarch64_sqdmull_lane<mode>_internal): Likewise.
768 (aarch64_sqdmull_n<mode>): Likewise.
769 (aarch64_sqdmull2<mode>_internal): Likewise.
770 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
771 (aarch64_sqdmull2_n<mode>_internal): Likewise.
772 (aarch64_<sur>shl<mode>): Likewise.
773 (aarch64_<sur>q<r>shl<mode>
774 (aarch64_<sur>shll_n<mode>): Likewise.
775 (aarch64_<sur>shll2_n<mode>): Likewise.
776 (aarch64_<sur>shr_n<mode>): Likewise.
777 (aarch64_<sur>sra_n<mode>): Likewise.
778 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
779 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
780 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
781 (aarch64_cm<optab><mode>): Likewise.
782 (aarch64_cm<optab>di): Likewise.
783 (aarch64_cm<optab><mode>): Likewise.
784 (aarch64_cm<optab>di): Likewise.
785 (aarch64_cmtst<mode>): Likewise.
786 (aarch64_cmtstdi): Likewise.
787 (aarch64_cm<optab><mode>): Likewise.
788 (*aarch64_fac<optab><mode>): Likewise.
789 (aarch64_addp<mode>): Likewise.
790 (aarch64_addpdi): Likewise.
791 (sqrt<mode>2): Likewise.
792 (vec_load_lanesoi<mode>): Likewise.
793 (vec_store_lanesoi<mode>): Likewise.
794 (vec_load_lanesci<mode>): Likewise.
795 (vec_store_lanesci<mode>): Likewise.
796 (vec_load_lanesxi<mode>): Likewise.
797 (vec_store_lanesxi<mode>): Likewise.
798 (*aarch64_mov<mode>): Likewise.
799 (aarch64_ld2<mode>_dreg): Likewise.
800 (aarch64_ld2<mode>_dreg): Likewise.
801 (aarch64_ld3<mode>_dreg): Likewise.
802 (aarch64_ld3<mode>_dreg): Likewise.
803 (aarch64_ld4<mode>_dreg): Likewise.
804 (aarch64_ld4<mode>_dreg): Likewise.
805 (aarch64_tbl1<mode>): Likewise.
806 (aarch64_tbl2v16qi): Likewise.
807 (aarch64_combinev16qi): Likewise.
808 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
809 (aarch64_st2<mode>_dreg): Likewise.
810 (aarch64_st2<mode>_dreg): Likewise.
811 (aarch64_st3<mode>_dreg): Likewise.
812 (aarch64_st3<mode>_dreg): Likewise.
813 (aarch64_st4<mode>_dreg): Likewise.
814 (aarch64_st4<mode>_dreg): Likewise.
815 (*aarch64_simd_ld1r<mode>): Likewise.
816 (aarch64_frecpe<mode>): Likewise.
817 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
818 (aarch64_frecps<mode>): Likewise.
819
f7379e5e
JG
8202013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
821
822 * config/arm/iterators.md (V_elem_ch): New.
823 (q): Likewise.
824 (VQH_type): Likewise.
825 * config/arm/arm.md (is_neon_type): New.
826 (conds): Use is_neon_type.
827 (anddi3_insn): Update type attribute.
828 (xordi3_insn): Likewise.
829 (one_cmpldi2): Likewise.
830 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
831 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
832 (*movmisalign<mode>_neon_store): Likewise.
833 (*movmisalign<mode>_neon_load): Likewise.
834 (vec_set<mode>_internal): Likewise.
835 (vec_set<mode>_internal): Likewise.
836 (vec_setv2di_internal): Likewise.
837 (vec_extract<mode>): Likewise.
838 (vec_extract<mode>): Likewise.
839 (vec_extractv2di): Likewise.
840 (*add<mode>3_neon): Likewise.
841 (adddi3_neon): Likewise.
842 (*sub<mode>3_neon): Likewise.
843 (subdi3_neon): Likewise.
844 (fma<VCVTF:mode>4): Likewise.
845 (fma<VCVTF:mode>4_intrinsic): Likewise.
846 (*fmsub<VCVTF:mode>4): Likewise.
847 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
848 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
849 (ior<mode>3): Likewise.
850 (and<mode>3): Likewise.
851 (orn<mode>3_neon): Likewise.
852 (orndi3_neon): Likewise.
853 (bic<mode>3_neon): Likewise.
854 (bicdi3_neon): Likewise.
855 (xor<mode>3): Likewise.
856 (one_cmpl<mode>2): Likewise.
857 (abs<mode>2): Likewise.
858 (neg<mode>2): Likewise.
859 (negdi2_neon): Likewise.
860 (*umin<mode>3_neon): Likewise.
861 (*umax<mode>3_neon): Likewise.
862 (*smin<mode>3_neon): Likewise.
863 (*smax<mode>3_neon): Likewise.
864 (vashl<mode>3): Likewise.
865 (vashr<mode>3_imm): Likewise.
866 (vlshr<mode>3_imm): Likewise.
867 (ashl<mode>3_signed): Likewise.
868 (ashl<mode>3_unsigned): Likewise.
869 (neon_load_count): Likewise.
870 (ashldi3_neon_noclobber): Likewise.
871 (ashldi3_neon): Likewise.
872 (signed_shift_di3_neon): Likewise.
873 (unsigned_shift_di3_neon): Likewise.
874 (ashrdi3_neon_imm_noclobber): Likewise.
875 (lshrdi3_neon_imm_noclobber): Likewise.
876 (<shift>di3_neon): Likewise.
877 (widen_ssum<mode>3): Likewise.
878 (widen_usum<mode>3): Likewise.
879 (quad_halves_<code>v4si): Likewise.
880 (quad_halves_<code>v4sf): Likewise.
881 (quad_halves_<code>v8hi): Likewise.
882 (quad_halves_<code>v16qi): Likewise.
883 (reduc_splus_v2di): Likewise.
884 (neon_vpadd_internal<mode>): Likewise.
885 (neon_vpsmin<mode>): Likewise.
886 (neon_vpsmax<mode>): Likewise.
887 (neon_vpumin<mode>): Likewise.
888 (neon_vpumax<mode>): Likewise.
889 (*ss_add<mode>_neon): Likewise.
890 (*us_add<mode>_neon): Likewise.
891 (*ss_sub<mode>_neon): Likewise.
892 (*us_sub<mode>_neon): Likewise.
893 (neon_vadd<mode>_unspec): Likewise.
894 (neon_vaddl<mode>): Likewise.
895 (neon_vaddw<mode>): Likewise.
896 (neon_vhadd<mode>): Likewise.
897 (neon_vqadd<mode>): Likewise.
898 (neon_vaddhn<mode>): Likewise.
899 (neon_vmul<mode>): Likewise.
900 (neon_vfms<VCVTF:mode>): Likewise.
901 (neon_vmlal<mode>): Likewise.
902 (neon_vmls<mode>): Likewise.
903 (neon_vmlsl<mode>): Likewise.
904 (neon_vqdmulh<mode>): Likewise.
905 (neon_vqdmlal<mode>): Likewise.
906 (neon_vqdmlsl<mode>): Likewise.
907 (neon_vmull<mode>): Likewise.
908 (neon_vqdmull<mode>): Likewise.
909 (neon_vsub<mode>_unspec): Likewise.
910 (neon_vsubl<mode>): Likewise.
911 (neon_vsubw<mode>): Likewise.
912 (neon_vqsub<mode>): Likewise.
913 (neon_vhsub<mode>): Likewise.
914 (neon_vsubhn<mode>): Likewise.
915 (neon_vceq<mode>): Likewise.
916 (neon_vcge<mode>): Likewise.
917 (neon_vcgeu<mode>): Likewise.
918 (neon_vcgt<mode>): Likewise.
919 (neon_vcgtu<mode>): Likewise.
920 (neon_vcle<mode>): Likewise.
921 (neon_vclt<mode>): Likewise.
922 (neon_vcage<mode>): Likewise.
923 (neon_vcagt<mode>): Likewise.
924 (neon_vtst<mode>): Likewise.
925 (neon_vabd<mode>): Likewise.
926 (neon_vabdl<mode>): Likewise.
927 (neon_vaba<mode>): Likewise.
928 (neon_vabal<mode>): Likewise.
929 (neon_vmax<mode>): Likewise.
930 (neon_vmin<mode>): Likewise.
931 (neon_vpaddl<mode>): Likewise.
932 (neon_vpadal<mode>): Likewise.
933 (neon_vpmax<mode>): Likewise.
934 (neon_vpmin<mode>): Likewise.
935 (neon_vrecps<mode>): Likewise.
936 (neon_vrsqrts<mode>): Likewise.
937 (neon_vqabs<mode>): Likewise.
938 (neon_vqneg<mode>): Likewise.
939 (neon_vcls<mode>): Likewise.
940 (clz<mode>2): Likewise.
941 (popcount<mode>2): Likewise.
942 (neon_vrecpe<mode>): Likewise.
943 (neon_vrsqrte<mode>): Likewise.
944 (neon_vget_lane<mode>_sext_internal): Likewise.
945 (neon_vget_lane<mode>_zext_internal): Likewise.
946 (neon_vdup_n<mode>): Likewise.
947 (neon_vdup_n<mode>): Likewise.
948 (neon_vdup_nv2di): Likewise.
949 (neon_vdup_lane<mode>_interal): Likewise.
950 (*neon_vswp<mode>): Likewise.
951 (neon_vcombine<mode>): Likewise.
952 (float<mode><V_cvtto>2): Likewise.
953 (floatuns<mode><V_cvtto>2): Likewise.
954 (fix_trunc<mode><V_cvtto>2): Likewise.
955 (fixuns_trunc<mode><V_cvtto>2
956 (neon_vcvt<mode>): Likewise.
957 (neon_vcvt<mode>): Likewise.
958 (neon_vcvtv4sfv4hf): Likewise.
959 (neon_vcvtv4hfv4sf): Likewise.
960 (neon_vcvt_n<mode>): Likewise.
961 (neon_vcvt_n<mode>): Likewise.
962 (neon_vmovn<mode>): Likewise.
963 (neon_vqmovn<mode>): Likewise.
964 (neon_vqmovun<mode>): Likewise.
965 (neon_vmovl<mode>): Likewise.
966 (neon_vmul_lane<mode>): Likewise.
967 (neon_vmul_lane<mode>): Likewise.
968 (neon_vmull_lane<mode>): Likewise.
969 (neon_vqdmull_lane<mode>): Likewise.
970 (neon_vqdmulh_lane<mode>): Likewise.
971 (neon_vqdmulh_lane<mode>): Likewise.
972 (neon_vmla_lane<mode>): Likewise.
973 (neon_vmla_lane<mode>): Likewise.
974 (neon_vmlal_lane<mode>): Likewise.
975 (neon_vqdmlal_lane<mode>): Likewise.
976 (neon_vmls_lane<mode>): Likewise.
977 (neon_vmls_lane<mode>): Likewise.
978 (neon_vmlsl_lane<mode>): Likewise.
979 (neon_vqdmlsl_lane<mode>): Likewise.
980 (neon_vext<mode>): Likewise.
981 (neon_vrev64<mode>): Likewise.
982 (neon_vrev32<mode>): Likewise.
983 (neon_vrev16<mode>): Likewise.
984 (neon_vbsl<mode>_internal): Likewise.
985 (neon_vshl<mode>): Likewise.
986 (neon_vqshl<mode>): Likewise.
987 (neon_vshr_n<mode>): Likewise.
988 (neon_vshrn_n<mode>): Likewise.
989 (neon_vqshrn_n<mode>): Likewise.
990 (neon_vqshrun_n<mode>): Likewise.
991 (neon_vshl_n<mode>): Likewise.
992 (neon_vqshl_n<mode>): Likewise.
993 (neon_vqshlu_n<mode>): Likewise.
994 (neon_vshll_n<mode>): Likewise.
995 (neon_vsra_n<mode>): Likewise.
996 (neon_vsri_n<mode>): Likewise.
997 (neon_vsli_n<mode>): Likewise.
998 (neon_vtbl1v8qi): Likewise.
999 (neon_vtbl2v8qi): Likewise.
1000 (neon_vtbl3v8qi): Likewise.
1001 (neon_vtbl4v8qi): Likewise.
1002 (neon_vtbl1v16qi): Likewise.
1003 (neon_vtbl2v16qi): Likewise.
1004 (neon_vcombinev16qi): Likewise.
1005 (neon_vtbx1v8qi): Likewise.
1006 (neon_vtbx2v8qi): Likewise.
1007 (neon_vtbx3v8qi): Likewise.
1008 (neon_vtbx4v8qi): Likewise.
1009 (*neon_vtrn<mode>_insn): Likewise.
1010 (*neon_vzip<mode>_insn): Likewise.
1011 (*neon_vuzp<mode>_insn): Likewise.
1012 (neon_vld1<mode>): Likewise.
1013 (neon_vld1_lane<mode>): Likewise.
1014 (neon_vld1_lane<mode>): Likewise.
1015 (neon_vld1_dup<mode>): Likewise.
1016 (neon_vld1_dup<mode>): Likewise.
1017 (neon_vld1_dupv2di): Likewise.
1018 (neon_vst1<mode>): Likewise.
1019 (neon_vst1_lane<mode>): Likewise.
1020 (neon_vst1_lane<mode>): Likewise.
1021 (neon_vld2<mode>): Likewise.
1022 (neon_vld2<mode>): Likewise.
1023 (neon_vld2_lane<mode>): Likewise.
1024 (neon_vld2_lane<mode>): Likewise.
1025 (neon_vld2_dup<mode>): Likewise.
1026 (neon_vst2<mode>): Likewise.
1027 (neon_vst2<mode>): Likewise.
1028 (neon_vst2_lane<mode>): Likewise.
1029 (neon_vst2_lane<mode>): Likewise.
1030 (neon_vld3<mode>): Likewise.
1031 (neon_vld3qa<mode>): Likewise.
1032 (neon_vld3qb<mode>): Likewise.
1033 (neon_vld3_lane<mode>): Likewise.
1034 (neon_vld3_lane<mode>): Likewise.
1035 (neon_vld3_dup<mode>): Likewise.
1036 (neon_vst3<mode>): Likewise.
1037 (neon_vst3qa<mode>): Likewise.
1038 (neon_vst3qb<mode>): Likewise.
1039 (neon_vst3_lane<mode>): Likewise.
1040 (neon_vst3_lane<mode>): Likewise.
1041 (neon_vld4<mode>): Likewise.
1042 (neon_vld4qa<mode>): Likewise.
1043 (neon_vld4qb<mode>): Likewise.
1044 (neon_vld4_lane<mode>): Likewise.
1045 (neon_vld4_lane<mode>): Likewise.
1046 (neon_vld4_dup<mode>): Likewise.
1047 (neon_vst4<mode>): Likewise.
1048 (neon_vst4qa<mode>): Likewise.
1049 (neon_vst4qb<mode>): Likewise.
1050 (neon_vst4_lane<mode>): Likewise.
1051 (neon_vst4_lane<mode>): Likewise.
1052 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1053 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1054 (neon_vec_<US>mult_lo_<mode>): Likewise.
1055 (neon_vec_<US>mult_hi_<mode>): Likewise.
1056 (neon_vec_<US>shiftl_<mode>): Likewise.
1057 (neon_unpack<US>_<mode>): Likewise.
1058 (neon_vec_<US>mult_<mode>): Likewise.
1059 (vec_pack_trunc_<mode>): Likewise.
1060 (neon_vec_pack_trunc_<mode>): Likewise.
1061 (neon_vabd<mode>_2): Likewise.
1062 (neon_vabd<mode>_3): Likewise.
1063
a9e66678
JG
10642013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1065
1066 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1067 (load_pair): Update type attribute.
1068 (store_pair): Update type attribute.
1069 * config/aarch64/iterators.md (q): New.
1070
20445ed6
JG
10712013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1072
1073 * config/arm/types.md: Add new types for Neon insns.
1074
afb4ac68
AI
10752013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1076 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1077 Sergey Lega <sergey.s.lega@intel.com>
1078 Anna Tikhonova <anna.tikhonova@intel.com>
1079 Ilya Tocar <ilya.tocar@intel.com>
1080 Andrey Turetskiy <andrey.turetskiy@intel.com>
1081 Ilya Verbin <ilya.verbin@intel.com>
1082 Kirill Yukhin <kirill.yukhin@intel.com>
1083 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1084
1085 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1086 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1087 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1088 (rcp14<mode>): New.
1089 (srcp14<mode>): Ditto.
1090 (rsqrt14<mode>): Ditto.
1091 (rsqrt14<mode>): Ditto.
1092 (avx512f_vmscalef<mode>): Ditto.
1093 (avx512f_scalef<mode>): Ditto.
1094 (avx512f_getexp<mode>): Ditto.
1095 (avx512f_sgetexp<mode>): Ditto.
1096 (avx512f_fixupimm<mode>): Ditto.
1097 (avx512f_sfixupimm<mode>): Ditto.
1098 (avx512f_rndscale<mode>): Ditto.
1099 (*avx512er_exp2<mode>): Ditto.
1100 (*avx512er_rcp28<mode>): Ditto.
1101 (avx512er_rsqrt28<mode>): Ditto.
1102 (avx512f_getmant<mode>): Ditto.
1103 (avx512f_getmant<mode>): Ditto.
1104 (avx512f_rndscale<mode>): Fix formatting.
1105
a1b499a3
JL
11062013-10-15 Martin Jambor <mjambor@suse.cz>
1107
1108 * ipa-utils.h (ipa_edge_within_scc): Declare.
1109 * ipa-cp.c (edge_within_scc): Moved...
1110 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1111
2e2206fa
AI
11122013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1113 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1114 Sergey Lega <sergey.s.lega@intel.com>
1115 Anna Tikhonova <anna.tikhonova@intel.com>
1116 Ilya Tocar <ilya.tocar@intel.com>
1117 Andrey Turetskiy <andrey.turetskiy@intel.com>
1118 Ilya Verbin <ilya.verbin@intel.com>
1119 Kirill Yukhin <kirill.yukhin@intel.com>
1120 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1121
1122 * config/i386/predicates.md (const_8_to_15_operand): New.
1123 (const_16_to_31_operand): Ditto.
1124 * config/i386/sse.md (V8FI): New.
1125 (V16FI): Ditto.
1126 (reduc_splus_v8df): Ditto.
1127 (reduc_splus_v16sf): Ditto.
1128 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1129 (vec_extract_hi_<mode>): Ditto.
1130 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1131 (vec_set_lo_<mode>): Ditto.
1132 (vec_set_hi_<mode>): Ditto.
1133 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1134 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1135 (avx512f_pshufd_1): Ditto.
1136 (avx512f_broadcast<mode>): Ditto.
1137 (avx512f_broadcast<mode>): Ditto.
1138 (define_split): Split vec_extract_lo into move.
1139 (ssequartermode): Ditto.
1140 (ssedoublemode): Extened with wider modes.
1141 (vec_extract_lo_<mode>): Ditto.
1142
0fe65b75
AI
11432013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1144 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1145 Sergey Lega <sergey.s.lega@intel.com>
1146 Anna Tikhonova <anna.tikhonova@intel.com>
1147 Ilya Tocar <ilya.tocar@intel.com>
1148 Andrey Turetskiy <andrey.turetskiy@intel.com>
1149 Ilya Verbin <ilya.verbin@intel.com>
1150 Kirill Yukhin <kirill.yukhin@intel.com>
1151 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1152
1153 * config/i386/predicates.md (register_or_constm1_operand): New.
1154 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1155 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1156 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1157 UNSPEC_SCATTER_PREFETCH
1158 (VI48_512): New.
1159 (avx512f_ucmp<mode>3): Ditto.
1160 (avx512f_vternlog<mode>): Ditto.
1161 (avx512f_align<mode>): Ditto.
1162 (<shift_insn><mode>3): Ditto.
1163 (avx512f_<rotate>v<mode>): Ditto.
1164 (avx512f_<rotate><mode>): Ditto.
1165 (avx512f_eq<mode>3): Ditto.
1166 (avx512f_eq<mode>3_1): Ditto.
1167 (avx512f_gt<mode>3): Ditto.
1168 (avx512f_testm<mode>3): Ditto.
1169 (avx512f_testnm<mode>3): Ditto.
1170 (avx512pf_gatherpf<mode>): Ditto.
1171 (*avx512pf_gatherpf<mode>_mask): Ditto.
1172 (*avx512pf_gatherpf<mode>): Ditto.
1173 (avx512pf_scatterpf<mode>): Ditto.
1174 (*avx512pf_scatterpf<mode>_mask): Ditto.
1175 (*avx512pf_scatterpf<mode>): Ditto.
1176 (avx512f_vec_dup_gpr<mode>): Ditto.
1177 (clz<mode>2): Ditto.
1178 (conflict<mode>): Ditto.
1179 (REDUC_SMINMAX_MODE): Extened with wider modes.
1180 (reduc_<code>_<mode>): Ditto.
1181 (vlshr<mode>3): Ditto.
1182 (vashl<mode>3): Ditto.
1183
ab931c71
AI
11842013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1185 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1186 Sergey Lega <sergey.s.lega@intel.com>
1187 Anna Tikhonova <anna.tikhonova@intel.com>
1188 Ilya Tocar <ilya.tocar@intel.com>
1189 Andrey Turetskiy <andrey.turetskiy@intel.com>
1190 Ilya Verbin <ilya.verbin@intel.com>
1191 Kirill Yukhin <kirill.yukhin@intel.com>
1192 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1193
1194 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1195 UNSPEC_SCATTER.
1196 (VI48F_512): New.
1197 (avx512fmaskmode): Ditto.
1198 (bcstscalarsuff): Ditto.
1199 (avx512f_blendm<mode>): Ditto.
1200 (cmp_imm_predicate): Ditto.
1201 (avx512f_cmp<mode>3): Ditto.
1202 (avx512f_vec_dup<mode>): Ditto.
1203 (avx512f_vec_dup_mem<mode>): Ditto.
1204 (avx512f_vpermi2var<mode>3): Ditto.
1205 (avx512f_vpermt2var<mode>3): Ditto.
1206 (vec_init<mode>): Ditto.
1207 (avx512f_gathersi<mode>): Ditto.
1208 (*avx512f_gathersi<mode>): Ditto.
1209 (*avx512f_gathersi<mode>_2): Ditto.
1210 (avx512f_gatherdi<mode>): Ditto.
1211 (*avx512f_gatherdi<mode>): Ditto.
1212 (*avx512f_gatherdi<mode>_2): Ditto.
1213 (avx512f_scattersi<mode>): Ditto.
1214 (*avx512f_scattersi<mode>): Ditto.
1215 (avx512f_scatterdi<mode>): Ditto.
1216 (*avx512f_scatterdi<mode>): Ditto.
1217 (sseintprefix): Extened with wider modes.
1218 (VEC_GATHER_IDXSI): Ditto.
1219 (VEC_GATHER_IDXDI): Ditto.
1220 (VEC_GATHER_SRCDI): Ditto.
1221
c9acb877
MGD
12222013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1223 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1224
1225 * config/arm/t-aprofile: New file.
1226 * config.gcc: Handle --with-multilib-list option.
1227
ecbda484
BS
12282013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1229
1230 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
1231 r2.
1232
24f161fd
RB
12332013-10-15 Richard Biener <rguenther@suse.de>
1234
1235 * tree-loop-distribution.c (build_empty_rdg): Inline into
1236 single user.
1237 (rdg_flag_vertex): Inline into single user.
1238 (rdg_flag_vertex_and_dependent): Likewise.
1239 (build_rdg_partition_for_vertex): Remove processed bitmap.
1240 (rdg_build_partitions): Simplify.
1241
5de989ed
RB
12422013-10-15 Richard Biener <rguenther@suse.de>
1243
1244 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1245 Restructure forwarding through conversions and copies to
1246 avoid performing copy-propagation the wrong way. Adjust
1247 recursion invocations.
1248 (forward_propagate_addr_expr): Add argument stating if we
1249 are recursing from a single-use.
1250 (ssa_forward_propagate_and_combine): Adjust.
1251
47e0da37
DM
12522013-10-14 David Malcolm <dmalcolm@redhat.com>
1253
1254 * dumpfile.h (gcc::dump_manager): New class, to hold state
1255 relating to dumpfile management.
1256 (get_dump_file_name): Remove in favor of method of dump_manager.
1257 (dump_initialized_p): Likewise.
1258 (dump_start): Likewise.
1259 (dump_finish): Likewise.
1260 (dump_switch_p): Likewise.
1261 (dump_register): Likewise.
1262 (get_dump_file_info): Likewise.
1263 * context.c (gcc::context::context): Construct the dump_manager
1264 instance.
1265 * context.h (gcc::context::get_dumps): New.
1266 (gcc::context::m_dumps): New.
1267 * coverage.c (coverage_init): Port to dump_manager API.
1268 * dumpfile.c (extra_dump_files): Convert to field of
1269 gcc::dump_manager.
1270 (extra_dump_files_in_use): Likewise.
1271 (extra_dump_files_alloced): Likewise.
1272 (gcc::dump_manager::dump_manager): New.
1273 (dump_register): Convert to...
1274 (gcc::dump_manager::dump_register): ...method, replacing
1275 function-static next_dump with m_next_dump field.
1276 (get_dump_file_info): Convert to...
1277 (gcc::dump_manager::get_dump_file_info): ...method.
1278 (get_dump_file_name): Convert to...
1279 (gcc::dump_manager::get_dump_file_name): ...method.
1280 (dump_start): Convert to...
1281 (gcc::dump_manager::dump_start): ...method.
1282 (dump_finish): Convert to...
1283 (gcc::dump_manager::dump_finish): ...method.
1284 (dump_begin): Replace body with...
1285 (gcc::dump_manager::dump_begin): ...new method.
1286 (dump_phase_enabled_p): Convert to...
1287 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1288 (dump_phase_enabled_p): Convert to...
1289 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1290 (dump_initialized_p): Convert to...
1291 (gcc::dump_manager::dump_initialized_p): ...method.
1292 (dump_flag_name): Replace body with...
1293 (gcc::dump_manager::dump_flag_name): ...new method.
1294 (dump_enable_all): Convert to...
1295 (gcc::dump_manager::dump_enable_all): ...new method.
1296 (opt_info_enable_passes): Convert to...
1297 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1298 (dump_switch_p_1): Convert to...
1299 (gcc::dump_manager::dump_switch_p_1): ...new method.
1300 (dump_switch_p): Convert to...
1301 (gcc::dump_manager::dump_switch_p): ...new method.
1302 (opt_info_switch_p): Port to dump_manager API.
1303 (enable_rtl_dump_file): Likewise.
1304 * opts-global.c (handle_common_deferred_options): Port to new
1305 dump_manager API.
1306 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1307 (pass_manager::register_one_dump_file): Likewise.
1308 (pass_manager::register_pass): Likewise.
1309 (pass_init_dump_file): Likewise.
1310 (pass_fini_dump_file): Likewise.
1311 * statistics.c (statistics_early_init): Likewise.
1312
83fd5d11
RB
13132013-10-14 Richard Biener <rguenther@suse.de>
1314
1315 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1316 iterative_hash_canonical_type, gimple_canonical_type_hash,
1317 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1318 gimple_register_canonical_type, print_gimple_types_stats,
1319 free_gimple_type_tables): Move to lto/lto.c
1320 (gt-gimple.h): Do not include.
1321 * gimple.h (gimple_register_canonical_type,
1322 print_gimple_types_stats, free_gimple_type_tables): Remove.
1323 * Makefile.in (GTFILES): Remove gimple.c.
1324
a6dbd0f7
TS
13252013-10-14 Travis Snoozy <quandary@remstate.com>
1326
1327 PR target/58716
1328 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1329 scanning for msp430x targets.
1330
b5ccb9ed
EB
13312013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1332
1333 PR bootstrap/58509
1334 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1335 (registers_ok_for_ldd_peep): Move around.
1336 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1337 * config/sparc/sparc.md (widening peepholes): Use it.
1338
fd7e5084
RB
13392013-10-14 Richard Biener <rguenther@suse.de>
1340
1341 PR middle-end/58712
1342 PR middle-end/55358
1343 * gimple.c (iterative_hash_canonical_type): Make sure to
1344 record the hash into the correct hashtable slot.
1345
3246afaa
EB
13462013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1347
1348 PR rtl-optimization/58662
1349 * combine.c (try_combine): Take into account death nodes on I2 when
1350 splitting a PARALLEL of two independent SETs. Fix dump message.
1351
5d30dc5b
OE
13522013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1353
1354 PR target/51244
1355 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1356 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1357 * config/sh/t-sh (sh_treg_combine.o): New entry.
1358 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1359 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1360 (register_sh_passes): New function. Register sh_treg_combine pass.
1361 (sh_option_override): Invoke it.
1362 (sh_canonicalize_comparison): Handle op0_preserve_value.
1363 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1364 opportunities. Canonicalize branch condition.
1365 (nott): Allow only if pseudos can be created for non-SH2A.
1366
37d1c5db
L
13672013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1368
1369 PR target/58690
1370 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1371 (ix86_expand_movmem): Replace copy_addr_to_reg with
1372 ix86_copy_addr_to_reg.
1373 (ix86_expand_setmem): Likewise.
1374
b86a70ff
AM
13752013-10-12 Alexander Monakov <amonakov@ispras.ru>
1376
1377 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1378 provided by ix86_fp_compare_mode instead of CCFPUmode.
1379
6e1d5961
JG
13802013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1381
1382 * config/aarch64/arm_neon.h
1383 (vtbx<1,3>_<psu>8): Fix register constriants.
1384
ef3cfba2
JL
13852013-10-11 Jeff Law <law@redhat.com>
1386
1387 PR tree-optimization/58640
adcfd489
UB
1388 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1389 threading paths that cross over two loop entry points.
ef3cfba2 1390
6e8b7d9c
BS
13912013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1392
1393 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1394 handle vector float as well.
1395 (*vsx_le_perm_load_v4si): Likewise.
1396 (*vsx_le_perm_store_v2di): Likewise.
1397 (*vsx_le_perm_store_v4si): Likewise.
1398
f200869a
BS
13992013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1400
1401 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1402 directly to circumvent subtract from splat{31} workaround.
1403 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1404 prototype.
1405 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1406 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1407 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1408 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1409 separate big and little endian logic.
1410 (*altivec_vperm_<mode>_internal): New define_insn.
1411 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1412 separate big and little endian logic.
1413 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1414 (vec_permv16qi): Add little endian logic.
1415
8d28e3fc
MG
14162013-10-11 Marc Glisse <marc.glisse@inria.fr>
1417
1418 * doc/extend.texi (returns_nonnull): Remove arguments.
1419
3c87b77b
AI
14202013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1421 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1422 Sergey Lega <sergey.s.lega@intel.com>
1423 Anna Tikhonova <anna.tikhonova@intel.com>
1424 Ilya Tocar <ilya.tocar@intel.com>
1425 Andrey Turetskiy <andrey.turetskiy@intel.com>
1426 Ilya Verbin <ilya.verbin@intel.com>
1427 Kirill Yukhin <kirill.yukhin@intel.com>
1428 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1429
1430 * config/i386/sse.md (VI48F_256_512): New.
1431 (avx2_permvar<mode>): Change to ...
1432 (<avx2_avx512f>_permvar<mode>): This.
1433
50e60d7d
AI
14342013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1435 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1436 Sergey Lega <sergey.s.lega@intel.com>
1437 Anna Tikhonova <anna.tikhonova@intel.com>
1438 Ilya Tocar <ilya.tocar@intel.com>
1439 Andrey Turetskiy <andrey.turetskiy@intel.com>
1440 Ilya Verbin <ilya.verbin@intel.com>
1441 Kirill Yukhin <kirill.yukhin@intel.com>
1442 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1443
1444 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
1445 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1446 * config/i386/sse.md (VI4_AVX): New.
1447 (sf2simodelower): Ditto.
1448 (sse2_cvtps2dq): Change to ...
1449 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1450
f62ce24f
AI
14512013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1452 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1453 Sergey Lega <sergey.s.lega@intel.com>
1454 Anna Tikhonova <anna.tikhonova@intel.com>
1455 Ilya Tocar <ilya.tocar@intel.com>
1456 Andrey Turetskiy <andrey.turetskiy@intel.com>
1457 Ilya Verbin <ilya.verbin@intel.com>
1458 Kirill Yukhin <kirill.yukhin@intel.com>
1459 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1460
1461 * config/i386/sse.md (V_512): New.
1462 (VI_512): Ditto.
1463 (vcond<V_512:mode><VF_512:mode>): Ditto.
1464 (vcond<V_512:mode><VI_512:mode>): Ditto.
1465 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1466
558d9f79
AI
14672013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1468 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1469 Sergey Lega <sergey.s.lega@intel.com>
1470 Anna Tikhonova <anna.tikhonova@intel.com>
1471 Ilya Tocar <ilya.tocar@intel.com>
1472 Andrey Turetskiy <andrey.turetskiy@intel.com>
1473 Ilya Verbin <ilya.verbin@intel.com>
1474 Kirill Yukhin <kirill.yukhin@intel.com>
1475 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1476
1477 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1478 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1479 (FMAMODE): Ditto.
1480 (fma<mode>4): Removed condition.
1481 (fms<mode>4): Ditto.
1482 (fnma<mode>4): Ditto.
1483 (fnms<mode>4): Ditto.
1484 (fma4i_fmadd_<mode>): Ditto.
1485 (*fma_fmadd_<mode>): Ditto.
1486 (*fma_fmsub_<mode>): Ditto.
1487 (*fma_fnmadd_<mode>): Ditto.
1488 (*fma_fnmsub_<mode>): Ditto.
1489 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1490 (*fma_fmaddsub_<mode>): Ditto.
1491 (*fma_fmsubadd_<mode>): Ditto.
1492 (*fmai_fmadd_<mode>): Ditto.
1493 (*fmai_fmsub_<mode>): Ditto.
1494 (*fmai_fnmadd_<mode>): Ditto.
1495 (*fmai_fnmsub_<mode>): Ditto.
1496
e8d08206
AI
14972013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1498 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1499 Sergey Lega <sergey.s.lega@intel.com>
1500 Anna Tikhonova <anna.tikhonova@intel.com>
1501 Ilya Tocar <ilya.tocar@intel.com>
1502 Andrey Turetskiy <andrey.turetskiy@intel.com>
1503 Ilya Verbin <ilya.verbin@intel.com>
1504 Kirill Yukhin <kirill.yukhin@intel.com>
1505 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1506
1507 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1508 (VI124_256): Changed to ...
1509 (VI124_256_48_512): This.
1510 (ssepackmode): Extended with wider modes.
1511 (<code><mode>3): Changed iterator.
1512 (*avx2_<code><mode>3): Ditto.
1513 (vec_pack_trunc_<mode>): Ditto.
1514
16821545
AI
15152013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1516 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1517 Sergey Lega <sergey.s.lega@intel.com>
1518 Anna Tikhonova <anna.tikhonova@intel.com>
1519 Ilya Tocar <ilya.tocar@intel.com>
1520 Andrey Turetskiy <andrey.turetskiy@intel.com>
1521 Ilya Verbin <ilya.verbin@intel.com>
1522 Kirill Yukhin <kirill.yukhin@intel.com>
1523 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1524
1525 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1526 (VI8F_256_512): Ditto.
1527 (abs<mode>2): Changed iterator.
1528 (avx2_perm<mode>): Changed to ...
1529 (<avx2_avx512f>_perm<mode>): This.
1530 (avx2_perm<mode>_1): Changed to ...
1531 (<avx2_avx512f>_perm<mode>_1): This.
1532
5348cff8
AI
15332013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1534 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1535 Sergey Lega <sergey.s.lega@intel.com>
1536 Anna Tikhonova <anna.tikhonova@intel.com>
1537 Ilya Tocar <ilya.tocar@intel.com>
1538 Andrey Turetskiy <andrey.turetskiy@intel.com>
1539 Ilya Verbin <ilya.verbin@intel.com>
1540 Kirill Yukhin <kirill.yukhin@intel.com>
1541 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1542
1543 * config/i386/sse.md (VI48_AVX512F): New.
1544 (VI48_AVX2): Changed to ...
1545 (VI48_AVX2_48_AVX512F): This.
1546 (avx2_ashrv<mode>): Changed to ...
1547 (<avx2_avx512f>_ashrv<mode>): This.
1548 (avx2_<shift_insn>v<mode>): Changed to ...
1549 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1550
f5f41d88
AI
15512013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1552 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1553 Sergey Lega <sergey.s.lega@intel.com>
1554 Anna Tikhonova <anna.tikhonova@intel.com>
1555 Ilya Tocar <ilya.tocar@intel.com>
1556 Andrey Turetskiy <andrey.turetskiy@intel.com>
1557 Ilya Verbin <ilya.verbin@intel.com>
1558 Kirill Yukhin <kirill.yukhin@intel.com>
1559 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1560
1561 * config/i386/sse.md (VI4_AVX512F): New.
1562 (VI8_AVX2_AVX512F): Ditto.
1563 (mul<mode>3): Extended with wider modes.
1564 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1565 (mul<mode>3): Ditto.
1566 (vec_widen_<s>mult_odd_<mode>): Ditto.
1567
3bdf6340
AI
15682013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1569 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1570 Sergey Lega <sergey.s.lega@intel.com>
1571 Anna Tikhonova <anna.tikhonova@intel.com>
1572 Ilya Tocar <ilya.tocar@intel.com>
1573 Andrey Turetskiy <andrey.turetskiy@intel.com>
1574 Ilya Verbin <ilya.verbin@intel.com>
1575 Kirill Yukhin <kirill.yukhin@intel.com>
1576 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1577
1578 * config/i386/sse.md (VI2_AVX512F): New.
1579 (VI124_AVX512F): Ditto.
1580 (sseunpackmode): Extended with wider modes.
1581 (sseunpackfltmode): Ditto.
1582 (vec_unpacks_float_hi_<mode>): Ditto.
1583 (vec_unpacks_float_lo_<mode>): Ditto.
1584 (vec_unpacku_float_hi_<mode>): Ditto.
1585 (vec_unpacku_float_lo_<mode>): Ditto.
1586 (vec_unpacks_lo_<mode>): Ditto.
1587 (vec_unpacks_hi_<mode>): Ditto.
1588 (vec_unpacku_lo_<mode>): Ditto.
1589 (vec_unpacku_hi_<mode>): Ditto.
1590
67f783cb
AI
15912013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1592 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1593 Sergey Lega <sergey.s.lega@intel.com>
1594 Anna Tikhonova <anna.tikhonova@intel.com>
1595 Ilya Tocar <ilya.tocar@intel.com>
1596 Andrey Turetskiy <andrey.turetskiy@intel.com>
1597 Ilya Verbin <ilya.verbin@intel.com>
1598 Kirill Yukhin <kirill.yukhin@intel.com>
1599 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1600
1601 * config/i386/i386.md (multdiv): New.
1602 (multdiv_mnemonic): Ditto.
1603 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1604 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1605 (<sse>_vmdiv<mode>3): Removed.
1606
ec5e777c
AI
16072013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1608 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1609 Sergey Lega <sergey.s.lega@intel.com>
1610 Anna Tikhonova <anna.tikhonova@intel.com>
1611 Ilya Tocar <ilya.tocar@intel.com>
1612 Andrey Turetskiy <andrey.turetskiy@intel.com>
1613 Ilya Verbin <ilya.verbin@intel.com>
1614 Kirill Yukhin <kirill.yukhin@intel.com>
1615 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1616
1617 * config/i386/sse.md (V): Extended with wider modes.
1618 (VF2): Ditto.
1619 (ssehalfvecmode): Ditto.
1620 (i128): Ditto.
1621 (ssepackfltmode): Ditto.
1622 (avx_vec_concat<mode>): Ditto.
1623 (V_256_512): New iterator.
1624 (VF2_512_256): Ditto.
1625 (si2dfmode): New attribute.
1626 (si2dfmodelower): Ditto.
1627 (sf2dfmode): Ditto.
1628 (concat_tg_mode): Ditto.
1629 (floatv4siv4df2): Changed to ...
1630 (float<si2dfmodelower><mode>2): This.
1631 (avx_cvtps2pd256): Changed to ...
1632 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1633 (vec_pack_trunc_v4df): Changed to ...
1634 (vec_pack_trunc_<mode>): This.
1635 (avx_vpermil<mode>): Changed to ...
1636 (<sse2_avx_avx512f>_vpermil<mode>): This.
1637 (<fixsuffix>fix_truncv8dfv8si2): New.
1638 (vec_pack_sfix_trunc_v8df): Ditto.
1639 (avx512f_rndscale<mode>): Ditto.
1640 (avx512f_roundpd512): Ditto.
1641 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1642
a9ccbba2
AI
16432013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1644 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1645 Sergey Lega <sergey.s.lega@intel.com>
1646 Anna Tikhonova <anna.tikhonova@intel.com>
1647 Ilya Tocar <ilya.tocar@intel.com>
1648 Andrey Turetskiy <andrey.turetskiy@intel.com>
1649 Ilya Verbin <ilya.verbin@intel.com>
1650 Kirill Yukhin <kirill.yukhin@intel.com>
1651 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1652
1653 * config/i386/i386.md (any_fix): New iterator.
1654 (fixsuffix): New attribute.
1655 * config/i386/sse.md (VF1): Extened with wider modes.
1656 (VI): Ditto.
1657 (VI_AVX2): Ditto.
1658 (VI8): Ditto.
1659 (sseintvecmodelower): Ditto.
1660 (ssescalarmode): Ditto.
1661 (ssescalarnum): Ditto.
1662 (VF1_128_256): New.
1663 (ssexmmmode): Ditto.
1664 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1665 (<sse>_rcp<mode>2): Change iterator.
1666 (rsqrt<mode>2): Ditto.
1667 (<sse>_rsqrt<mode>2): Ditto.
1668 (avx2_vec_dup<mode>): Ditto.
1669 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1670 (round<mode>2_sfix): Ditto.
1671 (avx2_pbroadcast<mode>): Ditto.
1672 (*andnot<mode>3): Handle XI mode.
1673 (*<code><mode>3): Ditto.
1674 (AVXTOSSEMODE): Removed.
1675 (avx_vpermil<mode>): Changed to ...
1676 (<sse2_avx_avx512f>_vpermil<mode>): This.
1677
2b1ebb0c
AI
16782013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1679 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1680 Sergey Lega <sergey.s.lega@intel.com>
1681 Anna Tikhonova <anna.tikhonova@intel.com>
1682 Ilya Tocar <ilya.tocar@intel.com>
1683 Andrey Turetskiy <andrey.turetskiy@intel.com>
1684 Ilya Verbin <ilya.verbin@intel.com>
1685 Kirill Yukhin <kirill.yukhin@intel.com>
1686 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1687
1688 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1689 (<sse>_comi): Ditto.
1690 (<sse>_ucomi): Ditto.
1691 (sse_cvtss2siq_2): Ditto.
1692 (sse2_cvtsd2si): Ditto.
1693 (sse2_cvtsd2siq): Ditto.
1694 (sse2_cvttsd2si): Ditto.
1695 (sse2_cvttsd2siq): Ditto.
1696 (<shift_insn><mode>3): Ditto.
1697 (sse2_cvtsi2sdq): Update constraint and prefix.
1698 (sse_cvtsi2ss): Update prefix.
1699 (sse_cvtsi2ssq): Ditto.
1700
d89124ed
JJ
17012013-10-11 Jakub Jelinek <jakub@redhat.com>
1702
1703 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1704 ignore internal calls.
1705
e6ad28c3
RB
17062013-10-11 Richard Biener <rguenther@suse.de>
1707
1708 * tree-pretty-print.c (dump_generic_node): Allow to dump
1709 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
1710 (OVF) if TREE_OVERFLOW is set.
1711
d1227447
TS
17122013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1713
1ac4b8e4
TS
1714 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1715
7d05cebb
TS
1716 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1717 * gimple.h: Likewise.
1718
adcfd489 1719 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 1720
1a79fb8a
TS
1721 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1722 macros.
1723
3afd2873
TS
1724 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1725
adcfd489 1726 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
1727 * configure: Regenerate.
1728
acf0174b
JJ
17292013-10-11 Jakub Jelinek <jakub@redhat.com>
1730
1731 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1732 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1733 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1734 similarly pp_right_paren.
1735 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1736 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1737 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1738 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1739 clauses.
1740 (omp_declare_simd_clauses_equal,
1741 omp_remove_redundant_declare_simd_attrs): New functions.
1742 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1743 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1744 * tree.h (OMP_LOOP_CHECK): Define.
1745 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1746 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1747 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1748 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1749 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1750 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1751 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1752 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1753 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1754 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1755 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1756 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1757 (omp_remove_redundant_declare_simd_attrs): New prototype.
1758 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
1759 GIMPLE_OMP_TEAMS): New codes.
1760 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
1761 * omp-low.c (struct omp_context): Add cancel_label and cancellable
1762 fields.
1763 (target_nesting_level): New variable.
1764 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
1765 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
1766 for collapse > 1 static schedule unless ordered.
1767 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
1768 (determine_parallel_type): Adjust get_ws_args_for caller.
1769 (install_var_field): Handle mask & 4 for double indirection.
1770 (scan_sharing_clauses): Ignore shared clause on teams construct.
1771 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
1772 (create_omp_child_function): If inside target or declare target
adcfd489 1773 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
1774 (find_combined_for): New function.
1775 (scan_omp_parallel): Handle combined loops.
1776 (scan_omp_target, scan_omp_teams): New functions.
1777 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
1778 restrictions and set ctx->cancellable for cancellable constructs.
1779 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
1780 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
1781 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 1782 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b
JJ
1783 (omp_clause_aligned_alignment): New function.
1784 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
1785 on decls.
1786 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
1787 on teams constructs. Handle user defined reductions and new
1788 OpenMP 4.0 clauses.
1789 (lower_reduction_clauses): Don't set placeholder to address of ref
1790 if it has already the right type.
1791 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
1792 (expand_parallel_call): Use the new non-_start suffixed builtins,
1793 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
1794 and GOMP_parallel_end after the call.
1795 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
1796 (expand_omp_for_init_counts): Handle combined loops.
1797 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
1798 loops.
1799 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
1800 end of cancellable loops.
1801 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1802 Likewise. Handle collapse > 1 loops.
1803 (expand_omp_simd): Handle combined loops.
1804 (expand_omp_for): Add inner_stmt argument, adjust callers of
1805 expand_omp_for* functions, use expand_omp_for_static*chunk even
1806 for collapse > 1 unless ordered.
1807 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
1808 of cancellable sections.
1809 (expand_omp_single): Remove need_barrier variable, just rely on
1810 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
1811 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
1812 (expand_omp_atomic_load, expand_omp_atomic_store,
1813 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
1814 (expand_omp_target): New function.
1815 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
1816 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
1817 (build_omp_regions_1): Immediately close region for
1818 GF_OMP_TARGET_KIND_UPDATE.
1819 (maybe_add_implicit_barrier_cancel): New function.
1820 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
1821 cancellation.
1822 (lower_omp_single): Likewise. Add clobber after the barrier.
1823 (lower_omp_taskgroup): New function.
1824 (lower_omp_for): Handle combined loops. Adjust
1825 lower_rec_input_clauses caller. Handle cancellation.
1826 (lower_depend_clauses): New function.
1827 (lower_omp_taskreg): Lower depend clauses. Adjust
1828 lower_rec_input_clauses caller. Add clobber after the call. Handle
1829 cancellation.
1830 (lower_omp_target, lower_omp_teams): New functions.
1831 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
1832 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
1833 and GOMP_cancellation_point calls.
1834 (lower_omp): Fold stmts inside of target region.
1835 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
1836 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1837 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
1838 (BT_FN_VOID_OMPFN_PTR_UINT,
1839 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1840 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
1841 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
1842 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
1843 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
1844 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
1845 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
1846 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1847 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1848 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
1849 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1850 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
1851 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
1852 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
1853 BUILT_IN_GOMP_PARALLEL_END.
1854 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
1855 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1856 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1857 GF_OMP_FOR_KIND_DISTRIBUTE.
1858 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
1859 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
1860 (dump_gimple_omp_return): Print lhs if it has any.
1861 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
1862 gimple_omp_atomic_seq_cst_p.
1863 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
1864 and GIMPLE_OMP_TEAMS.
1865 * langhooks.c (lhd_omp_mappable_type): New function.
1866 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
1867 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
1868 hook.
1869 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
1870 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
1871 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
1872 ORT_TARGET.
1873 (struct gimplify_omp_ctx): Add combined_loop field.
1874 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
1875 on stmts inside of target region.
1876 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
1877 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
1878 ORT_TARGET and ORT_TARGET_DATA.
1879 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
1880 Handle GOVD_MAP.
1881 (omp_notice_threadprivate_variable): Complain about threadprivate
1882 variables in target region.
1883 (omp_notice_variable): Complain about vars with non-mappable type
1884 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
1885 (omp_check_private): Ignore ORT_TARGET* regions.
1886 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
1887 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
1888 (find_combined_omp_for): New function.
1889 (gimplify_omp_for): Handle gimplification of combined loops.
1890 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
1891 OMP_TEAMS.
1892 (gimplify_omp_target_update): New function.
1893 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
1894 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
1895 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
1896 (gimplify_body): If fndecl has "omp declare target" attribute, add
1897 implicit ORT_TARGET context around it.
1898 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
1899 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
1900 * tree-nested.c (convert_nonlocal_reference_stmt,
1901 convert_local_reference_stmt, convert_gimple_call): Handle
1902 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1903 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
1904 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
1905 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
1906 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
1907 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
1908 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
1909 BUILT_IN_GOMP_LOOP_END_CANCEL,
1910 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
1911 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
1912 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
1913 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
1914 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
1915 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
1916 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
1917 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
1918 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1919 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1920 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1921 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1922 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
1923 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
1924 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
1925 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1926 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
1927 gimple_build_omp_teams): New functions.
1928 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
1929 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
1930 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
1931 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1932 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
1933 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
1934 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
1935 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
1936 GF_OMP_ATOMIC_SEQ_CST): New.
1937 (gimple_build_omp_taskgroup, gimple_build_omp_target,
1938 gimple_build_omp_teams): New prototypes.
1939 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
1940 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1941 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
1942 GIMPLE_OMP_SINGLE as end of range.
1943 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
1944 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
1945 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
1946 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
1947 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
1948 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
1949 gimple_omp_target_kind, gimple_omp_target_set_kind,
1950 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
1951 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
1952 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
1953 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
1954 gimple_omp_teams_set_clauses): New inlines.
1955 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
1956 and GIMPLE_OMP_TASKGROUP.
adcfd489 1957 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
1958 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
1959 enum omp_clause_proc_bind_kind): New.
1960 (union omp_clause_subcode): Add depend_kind, map_kind and
1961 proc_bind_kind fields.
1962 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
1963 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1964 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
1965 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
1966 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1967
67fa7880
TJ
19682013-10-10 Teresa Johnson <tejohnson@google.com>
1969
1970 * predict.c (tree_estimate_probability): Add new parameter
1971 for estimate_bb_frequencies.
1972 (estimate_bb_frequencies): Add new parameter to force estimation.
1973 (rebuild_frequencies): When max frequency in function is small,
1974 recompute counts from frequencies.
1975 * predict.h (estimate_bb_frequencies): New parameter.
1976
b591a8b7
DM
19772013-10-10 David Malcolm <dmalcolm@redhat.com>
1978
1979 * ipa-inline.c (ipa_inline): Fix leak of "order" when
1980 optimizations are disabled.
1981
782f0db2
DM
19822013-10-10 David Malcolm <dmalcolm@redhat.com>
1983
1984 * coverage.c (coverage_finish): Fix leak of da_file_name.
1985
13ef00fa
JH
19862013-10-10 Jan Hubicka <jh@suse.cz>
1987
1988 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
1989 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
1990 Bobcat and generic.
1991
a1d50386
JJ
19922013-10-10 Jakub Jelinek <jakub@redhat.com>
1993
1994 PR middle-end/58670
1995 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
1996 if any labels are in FALLTHRU_BB, use a special label emitted
1997 immediately after the asm goto insn rather than label_rtx
1998 of the LABEL_DECL.
1999 (expand_asm_stmt): Adjust caller.
2000 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2001 edge if the last insn in predecessor is a jump with single successor,
2002 but it isn't simplejump_p.
2003
e2c2fde2
RB
20042013-10-10 Richard Biener <rguenther@suse.de>
2005
2006 PR tree-optimization/58656
2007 * tree-ssa-pre.c (phi_translate): Do not cache failed
2008 translations.
2009
de6a5608
AM
20102013-10-10 Andrew MacLeod <amacleod@redhat.com>
2011
adcfd489
UB
2012 * gimplify.c: Include expr.h and tm_p.h for targets with special
2013 va-arg padding requirements.
de6a5608 2014
b184c8f1
AM
20152013-10-10 Andrew MacLeod <amacleod@redhat.com>
2016
2017 * tree-flow.h: Move some prototypes to gimple.h.
2018 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2019 * gimple.h: Relocate some prototypes from tree-flow.h
2020 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2021 Move to gimplify.c.
2022 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2023 (build_va_arg_indirect_ref): Relocate and make static.
2024 (std_gimplify_va_arg_expr): Relocate here.
2025 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2026 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2027
13b72c22
AK
20282013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2029
2030 * doc/md.texi: Document the mnemonic attribute.
2031
5db40447
AK
20322013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2033
2034 PR target/57377
2035 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2036 (set_attr_alternative x ...) when searching for user defined
2037 mnemonic attribute.
2038
ed018d4b
AM
20392013-10-10 Andrew MacLeod <amacleod@redhat.com>
2040
2041 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2042
4d5b5e9f
ER
20432013-10-09 Easwaran Raman <eraman@google.com>
2044
2045 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2046 * cfgexpand.c (defer_stack_allocation): ...use here
2047 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2048
c9ef86a1
ZC
20492013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2050
2051 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2052 (operand_equal_for_value_replacement): New function, extracted from
2053 value_replacement and enhanced to catch more cases.
2054 (value_replacement): Use operand_equal_for_value_replacement.
2055
2431114f
AM
20562013-10-09 Andrew MacLeod <amacleod@redhat.com>
2057
adcfd489 2058 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2059 get_max_loop_iterations.
2060
1dd2a9a0
KT
20612013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2062
2063 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2064 Place comment above function.
2065
c1bf2a39
AM
20662013-10-09 Andrew MacLeod <amacleod@redhat.com>
2067
2068 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2069 are not related to tree-cfg.c.
2070 * tree-ssa-address.h: New file. Relocate prototypes.
2071 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2072 (addr_for_mem_ref): New. Combine call to get_address_description and
2073 return addr_for_mem_ref.
2074 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2075 * tree-ssa-live.h: Adjust prototypes.
2076 * passes.c: Include tree-ssa-live.h.
2077 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2078 * graphite.c (graphite_transform_loops): Make static.
2079 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2080 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2081 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2082 * ipa-pure-const.c (warn_function_noreturn): Make static.
2083 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2084 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2085 Relocate from tree-cfg.c
2086 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2087 static.
2088 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2089 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2090 Move to ipa-pure-const.c.
adcfd489
UB
2091 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2092 Relocate from tree-optimize.c.
c1bf2a39
AM
2093 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2094 make_pass_fixup_cfg): Move to tree-cfg.c.
2095 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2096 Relocate some prototypes.
2097 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2098 * tree-dump.c (dump_function_to_file): Remove prototype.
2099 Add tree-flow.h to the include file.
2100 * tree-dump.h: Remove prototype.
2101 * tree-parloops.h: New File. Add prototypes.
2102 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2103 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2104 from tree-ssa-loop.c.
2105 * tree-predcom.c (run_tree_predictive_commoning,
2106 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2107 Relocate here from tree-ssa-loop.c.
adcfd489 2108 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2109 ssa_name_values.release ().
2110 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2111 (ssa_name_values): Relocate from tree-flow.h.
2112 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2113 * tree-ssa-loop.c (run_tree_predictive_commoning,
2114 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2115 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2116 make_pass_graphite, pass_data_graphite_transforms,
2117 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2118 tree_parallelize_loops, pass_data_parallelize_loops,
2119 make_pass_parallelize_loops): Move to other files.
2120 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2121 moved here.
2122 * tree.h: Remove prototypes from tree-address.c.
2123
cc524fc7
AM
21242013-10-09 Andrew MacLeod <amacleod@redhat.com>
2125
2126 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2127 (struct int_tree_map): Move to tree-hasher.h
2128 (SCALE, LABEL, PERCENT): Move to gimple.h
2129 * tree-flow-inline.h: Delete. Move functions to other files.
2130 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2131 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2132 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2133 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2134 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2135 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2136 * tree-hasher.h: Don't include tree-flow.h.
2137 (struct int_tree_map): Relocate from tree-flow.h.
2138 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2139 tree-flow-inline.h and make static.
adcfd489
UB
2140 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2141 tree-flow-inline.h.
cc524fc7
AM
2142 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2143 tree-flow-inline.h and make static.
2144 * tree.h (is_global_var, may_be_aliased): Relocate from
2145 tree-flow-inline.h.
2146 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2147 * value-prof.c: No longer include tree-flow-inline.h.
2148 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2149
71343877
AM
21502013-10-09 Andrew MacLeod <amacleod@redhat.com>
2151
2152 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2153 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2154 (enum move_pos): Move to tree-ssa-loop-im.h
2155 * cfgloop.h: Move some prototypes.
2156 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2157 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2158 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2159 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2160 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2161 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2162 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2163 (enum move_pos): Relocate here.
2164 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2165 tree-ssa-loop.c.
2166 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2167 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2168 make_pass_lim): Relocate here from tree-ssa-loop.c.
2169 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2170 tree-ssa-loop.c.
2171 (loop_edge_to_cancel, unloop_loops): Make static.
2172 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2173 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2174 (tree_complete_unroll, gate_tree_complete_unroll,
2175 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2176 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2177 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2178 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2179 (stmt_invariant_in_loop_p): Remove unused function.
2180 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2181 * tree-ssa-loop-manip.h: New file. Add prototypes.
2182 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2183 (gcov_type_to_double_int): Move to cfgloop.h.
2184 (double_int_cmp, bound_index,
2185 estimate_numbers_of_iterations_loop): Make static.
2186 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2187 (max_loop_iterations): Factor out get_max_loop_iterations.
2188 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2189 cfgloop.c.
2190 * tree-ssa-loop-niter.h: New file. Add prototypes.
2191 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2192 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2193 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2194 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2195 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2196 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2197 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2198 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2199 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2200 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2201 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2202 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2203 pass_data_complete_unroll, make_pass_complete_unroll,
2204 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2205 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2206 tree-ssa-loop-ivcanon.c.
2207 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2208 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2209 tree-ssa-loop-prefetch.c.
2210 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2211 tree-ssa-loop-im.c.
2212 (get_lsm_tmp_name): Relocate and add suffix parameter.
2213 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2214 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2215 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2216 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2217 (get_estimated_loop_iterations): Factor out accessor from
71343877 2218 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2219 (get_max_loop_iterations): Factor out accessor from
2220 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2221 * loop-unroll.c (decide_unroll_constant_iterations,
2222 decide_unroll_runtime_iterations, decide_peel_simple,
2223 decide_unroll_stupid): Use new get_* accessors.
2224
826cacfe
MG
22252013-10-09 Marc Glisse <marc.glisse@inria.fr>
2226
2227 PR tree-optimization/20318
2228 * doc/extend.texi (returns_nonnull): New function attribute.
2229 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2230 attribute.
2231 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2232 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2233
378f8976
EB
22342013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2235
2236 PR middle-end/58570
2237 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2238 false if both components are bitfields.
2239
0fe04f5c
AV
22402013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2241
2242 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2243 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2244 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2245 * config/aarch64/aarch64.h
2246 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2247 * config/aarch64/aarch64-simd-builtins.def
2248 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2249
bed9bae4
AV
22502013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2251
2252 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2253
7f3d8b19
AV
22542013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2255
2256 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2257
7df625a6
AV
22582013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2259
2260 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2261 (vneg_f64): New intrinsic.
2262 (vneg_s8): Asm replaced with C.
2263 (vneg_s16): Likewise.
2264 (vneg_s32): Likewise.
2265 (vneg_s64): New intrinsic.
2266 (vnegq_f32): Asm replaced with C.
2267 (vnegq_f64): Likewise.
2268 (vnegq_s8): Likewise.
2269 (vnegq_s16): Likewise.
2270 (vnegq_s32): Likewise.
2271 (vnegq_s64): Likewise.
2272
2b86fca7
RL
22732013-10-09 Renlin Li <Renlin.Li@arm.com>
2274
2275 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2276
e179df83
AK
22772013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2278
2279 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2280 packed stack special handling.
2281 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2282 back to fixed stack slots for FPRs saved due to stdarg.
2283
74129172
AK
22842013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2285
2286 * config/s390/s390.c (s390_frame_info): Restructure function.
2287
6455a49e
AK
22882013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2289
2290 * config/s390/s390.c (struct s390_frame_layout): New field
2291 gpr_save_slots.
2292 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2293 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2294 regs_ever_clobbered to char*.
adcfd489
UB
2295 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2296 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2297 (s390_register_info): Enable FPR save slots. Move/Copy some
2298 functionality into ...
2299 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2300 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2301 function.
2302 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2303 not imply a stack frame.
2304 (s390_init_frame_layout): Remove variable clobbered_regs.
2305 (s390_update_register_info): Remove function.
2306 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2307 cannot be used for register renaming.
2308 (s390_hard_regno_scratch_ok): New function.
2309 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2310 (s390_initial_elimination_offset): Change offset calculation of
2311 the return address pointer.
adcfd489 2312 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2313 (restore_gprs): Set frame related flag.
adcfd489 2314 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2315 (s390_emit_prologue): Call s390_register_info instead of
2316 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2317 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2318 (s390_optimize_prologue): Call s390_optimize_register_info.
2319 Try to remove also FPR slot save/restore INSNs. Remove frame
2320 related flags from restore INSNs.
2321
59d96342
DD
23222013-10-08 DJ Delorie <dj@redhat.com>
2323
0dc7adad
DD
2324 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2325 (movhi): Likewise.
2326
59d96342
DD
2327 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2328 avoid conflict with the MI use of %c.
2329 * config/rl78/rl78-real.md: change %c to %C throughout.
2330 * config/rl78/rl78-virt.md: Likewise.
2331
a81169d8
JH
23322013-10-08 Jan Hubicka <jh@suse.cz>
2333
2334 * config/i386/i386.c (ix86_option_override_internal): Switch
2335 to SSE math for -ffast-math when target ISA supports SSE2.
2336
481d1b81
AM
23372013-10-08 Andrew MacLeod <amacleod@redhat.com>
2338
2339 * tree-flow.h: Remove some prototypes.
2340 * tree.h: Remove some protypes, add a couple.
2341 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2342 using_eh_for_cleanups_p): Add interface routines for front ends.
2343 * tree-eh.h: New file. Add protoptyes.
2344 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2345 (add_stmt_to_eh_lp_fn): Make static.
2346 (lower_try_finally): Use new using_eh_for_cleanups_p.
2347 * emit-rtl.c: Include tree-eh.h.
2348 * gimple.h: Include tree-eh.h.
2349
0e6a0e48
MG
23502013-10-08 Marc Glisse <marc.glisse@inria.fr>
2351
2352 PR tree-optimization/58480
2353 * tree-vrp.c (infer_nonnull_range): New function.
2354 (infer_value_range): Call infer_nonnull_range.
2355
ef6179d1
DC
23562013-10-08 Dehao Chen <dehao@google.com>
2357
2358 PR tree-optimization/58619
2359 * tree-inline.c (copy_phis_for_bb): Combine location data
2360 only if non-null.
2361
07d964d5
ZC
23622013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2363
2364 PR target/58423
2365 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2366 RTX_FRAME_RELATED_P on INSN.
2367
19e9b2a3
BS
23682013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2369
2370 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2371 (altivec_expand_vec_perm_const): Call it.
2372
0cf68694
BS
23732013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2374
2375 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2376 sequences for LE VSX loads and stores at expand time.
2377 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2378 prototype.
2379 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2380 (rs6000_gen_le_vsx_permute): New.
2381 (rs6000_gen_le_vsx_load): New.
2382 (rs6000_gen_le_vsx_store): New.
2383 (rs6000_gen_le_vsx_move): New.
2384 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2385 (*vsx_le_perm_load_v4si): New.
2386 (*vsx_le_perm_load_v8hi): New.
2387 (*vsx_le_perm_load_v16qi): New.
2388 (*vsx_le_perm_store_v2di): New.
2389 (*vsx_le_perm_store_v4si): New.
2390 (*vsx_le_perm_store_v8hi): New.
2391 (*vsx_le_perm_store_v16qi): New.
2392 (*vsx_xxpermdi2_le_<mode>): New.
2393 (*vsx_xxpermdi4_le_<mode>): New.
2394 (*vsx_xxpermdi8_le_V8HI): New.
2395 (*vsx_xxpermdi16_le_V16QI): New.
2396 (*vsx_lxvd2x2_le_<mode>): New.
2397 (*vsx_lxvd2x4_le_<mode>): New.
2398 (*vsx_lxvd2x8_le_V8HI): New.
2399 (*vsx_lxvd2x16_le_V16QI): New.
2400 (*vsx_stxvd2x2_le_<mode>): New.
2401 (*vsx_stxvd2x4_le_<mode>): New.
2402 (*vsx_stxvd2x8_le_V8HI): New.
2403 (*vsx_stxvd2x16_le_V16QI): New.
2404
9520e1eb
RL
24052013-10-07 Renlin Li <Renlin.Li@arm.com>
2406
2407 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2408
36c0bd4f
AK
24092013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2410
2411 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2412 loop to work also for 31bit ABI.
2413 Save the stack pointer for frame_size > 0.
2414
ee163e72
AK
24152013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2416
2417 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2418 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2419 constraint letters from expanders.
2420 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2421 retry count to general_operand.
2422 ("tabort"): Give operand 0 a mode.
2423 ("tabort_1"): Add mode and constraint letter for operand 0.
2424 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2425
45d99234
JL
24262013-10-04 Jeff Law <law@redhat.com>
2427
2428 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2429
adcfd489
UB
2430 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2431 out of ...
45d99234
JL
2432 (thread_across_edge): Here. Call it.
2433
7c327f7b
CC
24342013-10-04 Cary Coutant <ccoutant@google.com>
2435
2436 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2437 discarding a location list expression (or a piece of one).
7c327f7b 2438
6867e128
JH
24392013-10-03 Jan Hubicka <jh@suse.cz>
2440
65efa7e7
UB
2441 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2442 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2443 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2444
c7f36d55
JH
24452013-10-03 Jan Hubicka <jh@suse.cz>
2446
65efa7e7 2447 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2448 accumulate-outgoing-args when producing unwind info.
2449
4f0bee4c
WM
24502013-10-03 Wei Mi <wmi@google.com>
2451
2452 * lra-constraints.c (insert_move_for_subreg): New function
2453 extracted from simplify_operand_subreg.
2454 (simplify_operand_subreg): Add reload for paradoxical subreg.
2455
111c3f39
RX
24562013-10-03 Rong Xu <xur@google.com>
2457
65efa7e7
UB
2458 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2459 the candidate of builtin_expect such that we should fix the
2460 size/time estimation.
2461 (estimate_function_body_sizes): Do the acutally size/time fix-up
2462 for builtin_expect.
111c3f39 2463
942df739
RX
24642013-10-03 Rong Xu <xur@google.com>
2465
65efa7e7
UB
2466 * predict.c (tree_predict_by_opcode): Get the probability
2467 for builtin_expect from param builtin_expect_probability.
2468 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2469 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2470 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2471
2284b034
MG
24722013-10-03 Marc Glisse <marc.glisse@inria.fr>
2473
2474 PR c++/19476
2475 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2476 * calls.c (alloca_call_p): Use get_callee_fndecl.
2477 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2478 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2479 Likewise.
2480 (vrp_visit_stmt): Remove duplicated code.
2481
0609bdf2
MM
24822013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2483
2484 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2485 ceildf2, btruncdf2, instead of vsx_* name.
2486
2487 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2488 iterators to only do V2DF and V4SF here. Move the DF code to
2489 rs6000.md where it is combined with SF mode. Replace <VSv> with
2490 just 'v' since only vector operations are handled with these insns
2491 after moving the DF support to rs6000.md.
2492 (vsx_sub<mode>3): Likewise.
2493 (vsx_mul<mode>3): Likewise.
2494 (vsx_div<mode>3): Likewise.
2495 (vsx_fre<mode>2): Likewise.
2496 (vsx_neg<mode>2): Likewise.
2497 (vsx_abs<mode>2): Likewise.
2498 (vsx_nabs<mode>2): Likewise.
2499 (vsx_smax<mode>3): Likewise.
2500 (vsx_smin<mode>3): Likewise.
2501 (vsx_sqrt<mode>2): Likewise.
2502 (vsx_rsqrte<mode>2): Likewise.
2503 (vsx_fms<mode>4): Likewise.
2504 (vsx_nfma<mode>4): Likewise.
2505 (vsx_copysign<mode>3): Likewise.
2506 (vsx_btrunc<mode>2): Likewise.
2507 (vsx_floor<mode>2): Likewise.
2508 (vsx_ceil<mode>2): Likewise.
2509 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2510 (vsx_sminsf3): Likewise.
2511 (vsx_fmadf4): Likewise.
2512 (vsx_fmsdf4): Likewise.
2513 (vsx_nfmadf4): Likewise.
2514 (vsx_nfmsdf4): Likewise.
2515 (vsx_cmpdf_internal1): Likewise.
2516
2517 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2518 simpler to select whether a target has SPE or traditional floating
2519 point support in iterators.
2520 (TARGET_DF_SPE): Likewise.
2521 (TARGET_SF_FPR): Likewise.
2522 (TARGET_DF_FPR): Likewise.
2523 (TARGET_SF_INSN): Macros to say whether floating point support
2524 exists for a given operation for expanders.
2525 (TARGET_DF_INSN): Likewise.
2526
2527 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2528 combining of SF/DF mode operations, using both traditional and VSX
2529 registers.
2530 (Fvsx): Likewise.
2531 (Ff): Likewise.
2532 (Fv): Likewise.
2533 (Fs): Likewise.
2534 (Ffre): Likewise.
2535 (FFRE): Likewise.
2536 (abs<mode>2): Combine SF/DF modes using traditional floating point
2537 instructions. Add support for using the upper DF registers with
2538 VSX support, and SF registers with power8-vector support. Update
2539 expanders for operations supported by both the SPE and traditional
2540 floating point units.
2541 (abs<mode>2_fpr): Likewise.
2542 (nabs<mode>2): Likewise.
2543 (nabs<mode>2_fpr): Likewise.
2544 (neg<mode>2): Likewise.
2545 (neg<mode>2_fpr): Likewise.
2546 (add<mode>3): Likewise.
2547 (add<mode>3_fpr): Likewise.
2548 (sub<mode>3): Likewise.
2549 (sub<mode>3_fpr): Likewise.
2550 (mul<mode>3): Likewise.
2551 (mul<mode>3_fpr): Likewise.
2552 (div<mode>3): Likewise.
2553 (div<mode>3_fpr): Likewise.
2554 (sqrt<mode>3): Likewise.
2555 (sqrt<mode>3_fpr): Likewise.
2556 (fre<Fs>): Likewise.
2557 (rsqrt<mode>2): Likewise.
2558 (cmp<mode>_fpr): Likewise.
2559 (smax<mode>3): Likewise.
2560 (smin<mode>3): Likewise.
2561 (smax<mode>3_vsx): Likewise.
2562 (smin<mode>3_vsx): Likewise.
2563 (negsf2): Delete SF operations that are merged with DF.
2564 (abssf2): Likewise.
2565 (addsf3): Likewise.
2566 (subsf3): Likewise.
2567 (mulsf3): Likewise.
2568 (divsf3): Likewise.
2569 (fres): Likewise.
2570 (fmasf4_fpr): Likewise.
2571 (fmssf4_fpr): Likewise.
2572 (nfmasf4_fpr): Likewise.
2573 (nfmssf4_fpr): Likewise.
2574 (sqrtsf2): Likewise.
2575 (rsqrtsf_internal1): Likewise.
2576 (smaxsf3): Likewise.
2577 (sminsf3): Likewise.
2578 (cmpsf_internal1): Likewise.
2579 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2580 (negdf2): Delete DF operations that are merged with SF.
2581 (absdf2): Likewise.
2582 (nabsdf2): Likewise.
2583 (adddf3): Likewise.
2584 (subdf3): Likewise.
2585 (muldf3): Likewise.
2586 (divdf3): Likewise.
2587 (fred): Likewise.
2588 (rsqrtdf_internal1): Likewise.
2589 (fmadf4_fpr): Likewise.
2590 (fmsdf4_fpr): Likewise.
2591 (nfmadf4_fpr): Likewise.
2592 (nfmsdf4_fpr): Likewise.
2593 (sqrtdf2): Likewise.
2594 (smaxdf3): Likewise.
2595 (smindf3): Likewise.
2596 (cmpdf_internal1): Likewise.
2597 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2598 (btrunc<mode>2): Delete separate expander, and combine with the
2599 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2600 (btrunc<mode>2_fpr): Likewise.
2601 (ceil<mode>2): Likewise.
2602 (ceil<mode>2_fpr): Likewise.
2603 (floor<mode>2): Likewise.
2604 (floor<mode>2_fpr): Likewise.
2605 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2606 Add support for using the upper registers with VSX and
2607 power8-vector. Move insns to be closer to the define_expands. On
2608 VSX systems, prefer the traditional form of FMA over the VSX
2609 version, since the traditional form allows the target not to
2610 overlap with the inputs.
2611 (fms<mode>4_fpr): Likewise.
2612 (nfma<mode>4_fpr): Likewise.
2613 (nfms<mode>4_fpr): Likewise.
2614
5bea0c6c 26152013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2616 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2617
2618 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2619 (struct mult_cost_table): Likewise.
2620 (struct mem_cost_table): Likewise.
2621 (struct fp_cost_table): Likewise.
2622 (struct vector_cost_table): Likewise.
2623 (cpu_cost_table): Likewise.
2624 * config/arm/arm.opt (mold-rts-costs): New option.
2625 (mnew-generic-costs): Likewise.
2626 * config/arm/arm.c (generic_extra_costs): New table.
2627 (cortexa15_extra_costs): Likewise.
2628 (arm_slowmul_tune): Use NULL as new costs.
2629 (arm_fastmul_tune): Likewise.
2630 (arm_strongarm_tune): Likewise.
2631 (arm_xscale_tune): Likewise.
2632 (arm_9e_tune): Likewise.
2633 (arm_v6t2_tune): Likewise.
2634 (arm_cortex_a5_tune): Likewise.
2635 (arm_cortex_a9_tune): Likewise.
2636 (arm_v6m_tune): Likewise.
2637 (arm_fa726te_tune): Likewise.
2638 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2639 (arm_cortex_tune): Use generict_extra_costs.
2640 (shifter_op_p): New function.
2641 (arm_unspec_cost): Likewise.
2642 (LIBCALL_COST): Define.
2643 (arm_new_rtx_costs): New function.
2644 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2645 table is available. Use old costs otherwise unless mnew-generic-costs
2646 is specified.
2647 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2648 (cpu_cost_table): Declare.
2649
24c56925
MS
26502013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2651
2652 PR target/58460
2653 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2654 (*subs_mul_imm_<mode>)
2655 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2656 (*sub_<shift>_<mode>)
2657 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2658 Remove k constraint.
2659
2ab8f063
IB
26602013-10-03 Ian Bolton <ian.bolton@arm.com>
2661
2662 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2663 code.
2664 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2665
79221839
TJ
26662013-10-02 Teresa Johnson <tejohnson@google.com>
2667
2668 * predict.c (probably_never_executed): New function.
2669 (probably_never_executed_bb_p): Invoke probably_never_executed.
2670 (probably_never_executed_edge_p): Ditto.
2671 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2672 Treat profile insanities conservatively.
2673
d441afe0
JDA
26742013-10-02 John David Anglin <danglin@gcc.gnu.org>
2675
2676 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2677
80f466c4
VM
26782013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2679
2680 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2681 use it. Use smaller increase for scratch. Don't increase reject
2682 for early clobber scratch.
2683 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2684 setting eliminated regs except setting fp from hfp.
2685 (lra_eliminate): Check lra_insn_recog_data on NULL.
2686
6e228b4b
MM
26872013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2688
2689 PR target/58587
2690 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 2691 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
2692 (RS6000_CPU, power7 defaults): Likewise.
2693
11b54a5a
UB
26942013-10-02 Uros Bizjak <ubizjak@gmail.com>
2695
2696 * config/x-linux (host-linux.o): Remove header dependencies.
2697 Use $(COMPILE) and $(POSTCOMPILE).
2698 * config/t-linux-android (linux-android.o): Ditto.
2699
bbc02b69
UB
27002013-10-02 Uros Bizjak <ubizjak@gmail.com>
2701
2702 * Makefile.in (expmed.o-warn): Remove.
2703
440917de
AM
27042013-10-02 Andrew MacLeod <amacleod@redhat.com>
2705
2706 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2707 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2708
99206ca9
TJ
27092013-10-02 Teresa Johnson <tejohnson@google.com>
2710
2711 * dojump.c (do_jump_1): Divide probability between
2712 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2713
56e82b14
TT
27142013-10-02 Tom Tromey <tromey@redhat.com>
2715
2716 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2717
3d9c733e
AM
27182013-10-02 Andrew MacLeod <amacleod@redhat.com>
2719
2720 * tree-flow.h: Remove some prototypes.
2721 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2722 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2723 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2724 mark_virtual_phi_result_for_renaming): Relocate here.
2725 * tree-into-ssa.h: Add prototypes.
bbc02b69 2726 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
2727 single_pred_before_succ_order.
2728 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2729 (nonfreeing_call_p) Move to gimple.c.
2730 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2731 tree-ssa-phiopt.c.
2732 * basic-block.h (single_pred_before_succ_order): Add prototype.
2733 * gimple.c (nonfreeing_call_p): Relocate here.
2734 * gimple.h: Add prototype.
2735 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2736 * tree-ssa-dom.h: New file. Relocate prototypes here.
2737 * tree-ssa.h: Include tree-ssa-dom.h.
2738
78cedfb1
UB
27392013-10-02 Uros Bizjak <ubizjak@gmail.com>
2740
2741 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2742 Use $(COMPILE) and $(POSTCOMPILE).
2743
2744 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2745
744730a4
AM
27462013-10-02 Andrew MacLeod <amacleod@redhat.com>
2747
2748 * tree-flow.h: Remove some prototypes.
2749 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2750 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2751 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2752 propagate_tree_value*): Move from here to...
2753 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2754 propagate_tree_value*): Relocate here.
2755 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2756 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2757 * gimple-fold.c: Remove gimple-fold.h from include list.
2758 * tree-vrp.c: Remove gimple-fold.h from include list.
2759 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2760 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
2761 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
2762 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
2763 * sese.c: Add tree-ssa-propagate.h to include list.
2764
826a536d
RB
27652013-10-02 Richard Biener <rguenther@suse.de>
2766
2767 * tree-loop-distribution.c: Include tree-vectorizer.h for
2768 find_loop_location.
2769 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 2770 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
2771 (partition_alloc): Adjust.
2772 (partition_builtin_p): Likewise.
2773 (partition_has_writes): Remove.
2774 (partition_reduction_p): New function.
2775 (partition_merge_into): Likewise.
2776 (generate_code_for_partition): Commonize builtin partition
2777 handling tail.
2778 (rdg_cannot_recompute_vertex_p): Remove.
2779 (already_processed_vertex_p): Likewise.
2780 (rdg_flag_vertex): Do not set has_writes.
2781 (classify_partition): Adjust.
2782 (rdg_build_partitions): Do not set has_writes, treat all
2783 partitions as useful.
78cedfb1 2784 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
2785 (tree_loop_distribution): Report number of loops and library
2786 calls generated as opt-info.
2787
4b403ece
AM
27882013-10-02 Andrew MacLeod <amacleod@redhat.com>
2789
2790 * tree-flow.h: Include new .h files. Move prototypes.
2791 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
2792 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
2793 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
2794 * tree-pretty-print.h: Add prototypes from tree-flow.h.
2795 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
2796 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
2797 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
2798 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 2799 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
2800 tree-dfa.h.
2801 * gimple-low.h: New File. Add prototypes from tree-flow.h.
2802 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
2803 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
2804 * tree-scalar-evolution.c: Include tree.h.
2805 * sese.c: Include tree.h.
2806 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
2807 * dwarf2out.c: Include tree-dfa.h.
2808 * tree-chrec.c: Include tree.h.
2809 * tree-data-ref.c: Include tree.h.
2810
1d2151c6
YZ
28112013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
2812
2813 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
2814 Fix whitespace.
2815
441ad147
RO
28162013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2817
2818 * config/t-sol2 (sol2-c.o): Remove header dependencies.
2819 Use $(COMPILE) and $(POSTCOMPILE).
2820 (sol2-cxx.o): Likewise.
2821 (sol2-stubs.o): Likewise.
2822 (sol2.o): Likewise.
2823 * config/x-solaris (host-solaris.o): Likewise.
2824
2825 * config/sparc/t-sparc (sparc.o): Remove.
2826 (sparc-c.o): Remove header dependencies.
2827 Use $(COMPILE) and $(POSTCOMPILE).
2828 * config/sparc/x-sparc: Likewise.
2829
2deaf8b0
JR
28302013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
2831
2832 * config/arc/arc-opts.h: Add 2013 to Copyright years.
2833 * config/arc/arc700.md: Likewise.
2834 * config/arc/arc-modes.def: Likewise.
2835 * config/arc/arc-simd.h: Likewise.
2836 * config/arc/t-arc-uClibc: Likewise.
2837 * config/arc/t-arc-newlib: Likewise.
2838
f6fe771a
RL
28392013-10-02 Renlin Li <renlin.li@arm.com>
2840
78cedfb1
UB
2841 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2842 plus_constant.
f6fe771a
RL
2843 (aarch64_expand_epilogue): Likewise.
2844
0916f876
YZ
28452013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2846 Yufeng Zhang <yufeng.zhang@arm.com>
2847
2848 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
2849 declaration.
2850 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
2851 'base_in' represent a conversion and legal_cast_p_1 holds; set
2852 'base_in' with the returned value from get_unwidened.
2853
ebfcd719
KT
28542013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2855
2856 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
2857 plus_constant is not used.
2858
157ca3e9
WM
28592013-10-01 Wei Mi <wmi@google.com>
2860
78cedfb1 2861 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
2862 * config/i386/i386.md: Add define_peephole2 to
2863 break partial reg stall for cvtss2sd/cvtsd2ss.
2864
cd4dd8f0
JR
28652013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2866
2867 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 2868 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 2869
1465e5cf
JL
28702013-10-01 Jeff Law <law@redhat.com>
2871
2872 * tree-ssa-threadupdate.c (struct redirection_data): Delete
2873 outgoing_edge and intermediate_edge fields. Instead store the path.
2874 (redirection_data::hash): Hash on the last edge's destination index.
2875 (redirection_data::equal): Check the entire thread path.
2876 (lookup_redirectio_data): Corresponding changes.
2877 (create_edge_and_update_destination_phis): Likewise.
2878 (thread_single_edge): Likewise.
2879
25c606cb 28802013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 2881 Diego Novillo <dnovillo@google.com>
25c606cb
JR
2882
2883 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
2884 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
2885 (vld32wh_insn, vld32wl_insn): Delete commented-out old
2886 versions of these patterns.
2887
0ccbc132
JR
2888 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
2889 (__builtin_arc_aligned): Likewise.
2890
f55d4a20
JR
2891 * config/arc/arc.md: Expand adc_0 comment stating the intended
2892 purpose and why it isn't ready.
2893 Replace commented out call_value_via_label_mixed with a
2894 plain comment about bl_s.
2895
5719867d 2896 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
2897 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
2898 Remove if (1) condition.
2899 (arc_encode_section_info): Fix comment.
2900
6462fab0
JR
29012013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2902
2903 * config/arc/arc.c (arc_conditional_register_usage):
2904 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
2905 Also set reg_alloc_order for DMA config regs.
2906
5d5f6720
JR
29072013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2908 Jeremy Bennett <jeremy.bennett@embecosm.com>
2909
2910 * doc/install.texi (--with-cpu): Mention ARC.
2911 (arc-*-elf32): New paragraph.
2912 (arc-linux-uclibc): Likewise.
2913 * doc/md.texi (Machine Constraints): Add ARC part.
2914 * doc/invoke.texi: (menu): Add ARC Options.
2915 (Machine Dependent Options) <ARC Options>: Add synopsis.
2916 (node ARC Options): Add.
2917 * doc/extend.texi (long_call / short_call attribute): Add ARC.
2918 (ARC Built-in Functions): New section defining
2919 generic ARC built-in functions.
2920 (ARC SIMD Built-in Functions): New section defining SIMD specific
2921 built-in functions.
2922 (Declaring Attributes of Functions): Extended
2923 description of short_call and long_call attributes for ARC and
2924 added index entries.
2925
526b7aee
SV
29262013-10-01 Saurabh Verma <saurabh.verma@codito.com>
2927 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
2928 Joern Rennecke <joern.rennecke@embecosm.com>
2929 Muhammad Khurram Riaz <khurram.riaz@arc.com>
2930 Brendan Kehoe <brendan@zen.org>
2931 Michael Eager <eager@eagercon.com>
2932 Simon Cook <simon.cook@embecosm.com>
2933 Jeremy Bennett <jeremy.bennett@embecosm.com>
2934
2935 * config/arc, common/config/arc: New directories.
2936
53426f6c
JR
29372013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2938 Brendan Kehoe <brendan@zen.org>
2939 Simon Cook <simon.cook@embecosm.com>
2940
2941 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
2942
1df9f5a9
AM
29432013-10-01 Andrew MacLeod <amacleod@redhat.com>
2944
2945 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
2946 * tree-ssa-coalesce.h: New. Move prototype to here.
2947 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
2948 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
2949 (gimple_can_coalesce_p): Move to...
2950 * gimple.c (gimple_can_coalesce_p): Here.
2951
80560f95
AM
29522013-10-01 Andrew MacLeod <amacleod@redhat.com>
2953
2954 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
2955 (dump_decl_set): Move to gimple.c.
2956 * gimple.h: Don't include tree-ssa-operands.h.
2957 (dump_decl_set): Add prototype.
2958 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2959 Move to gimple-ssa.h.
2960 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
2961 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
2962 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
2963 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
2964 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
2965 than PHI_ARG_DEF.
2966 (dump_decl_set): Relocate here.
2967 * gimple-ssa.h: New file.
2968 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2969 Relocate from gimple.h.
2970 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
2971 * tree-ssa-operands.c (swap_ssa_operands): Rename from
2972 swap_tree_operands and remove non-ssa path.
2973 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
2974 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
2975 swap_ssa_operands.
2976 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
2977 vect_is_simple_reduction_1): Use swap_ssa_operands.
2978 * tree-flow.h: Move various prototypes to tree-phinodes.h.
2979 (enum need_phi_state): Move to tree-into-ssa.c.
2980 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2981 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
2982 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
2983 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2984 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2985 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2986 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2987 num_imm_uses): Move to ssa-iterators.h.
2988 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 2989 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
2990 tree-phinodes.h.
2991 (op_iter_done, op_iter_next_def, op_iter_next_tree,
2992 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
2993 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
2994 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
2995 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
2996 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
2997 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
2998 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
2999 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3000 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3001 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3002 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3003 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3004 (set_phi_nodes): Move to tree-phinodes.h.
3005 * tree-ssa-operands.h (enum ssa_op_iter_type,
3006 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3007 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3008 (dump_decl_set): Remove prototype.
3009 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3010 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3011 (set_phi_nodes): Relocate from tree-flow-inline.h.
3012 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3013 tree-flow-inline.h
3014 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3015 include list. Temporarily add gimple.h to include list.
3016 * ssa-iterators.h: New file.
3017 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3018 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3019 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3020 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3021 Relocate from tree-ssa-operands.h.
3022 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3023 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3024 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3025 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3026 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3027 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3028 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3029 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3030 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3031 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3032 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3033 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3034 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3035 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3036 Relocate from tree-flow-inline.h.
3037 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3038
8da00d65
VP
30392013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3040
3041 * aarch64-simd.md
3042 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3043 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3044 Insert '\t' to output template.
3045 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3046 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3047 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3048 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3049
e2ebe1c2
UB
30502013-10-01 Uros Bizjak <ubizjak@gmail.com>
3051
3052 * doc/install.texi (Host/target specific installation notes for GCC):
3053 Put @anchor before @heading.
3054 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3055 Use @email for email addresses.
3056
aee2d611
JL
30572013-10-01 Jeff Law <law@redhat.com>
3058
3059 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3060 a vec. Only delete the path if we create one without successfully
3061 registering a jump thread.
3062 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3063 as a pointer.
3064 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3065 (paths): New vector of jump threading paths.
3066 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3067 (THREAD_PATH): New accessor macro for the entire thread path.
3068 (lookup_redirection_data): Get intermediate and final outgoing edge
3069 from the thread path.
3070 (create_edge_and_update_destination_phis): Copy the threading path.
3071 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3072 jump threading path.
3073 (ssa_redirect_edges): Get edges and block types from the jump threading
3074 path. Free the path vector.
3075 (thread_block): Get edges from the jump threading path. Look at the
3076 entire path to see if we thread to a loop exit. If we cancel a jump
3077 thread request, then free the path vector.
3078 (thread_single_edge): Get edges and block types from the jump threading
3079 path. Free the path vector.
3080 (thread_through_loop_header): Get edges and block types from the jump
3081 threading path. Free the path vector.
3082 (mark_threaded_blocks): Iterate over the vector of paths and store
3083 the path on the appropriate edge. Get edges and block types from the
3084 jump threading path.
3085 (mark_threaded_blocks): Get edges and block types from the jump
3086 threading path. Free the path vector.
3087 (thread_through_all_blocks): Use the vector of paths rather than
3088 a vector of 3-edge sets.
3089 (register_jump_thread): Accept pointer to a path vector rather
3090 than the path vector itself. Store the path vector for later use.
3091 Simplify.
3092
966f97ac 30932013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3094 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3095
3096 PR target/58574
3097 * config/s390/s390.c (s390_split_branches): Modify check for table
3098 jump insns.
3099 (s390_chunkify_start): Rearrange table jump insn check in order to
3100 deal with compare and branch insns correctly.
3101
3a323a38
KV
31022013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3103
3104 PR target/58578
3105 Revert
3106 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3107 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3108 define_insn_and_split.
3109 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3110 (shiftsi3_compare): New pattern.
3111 (rrx): New pattern.
3112 * config/arm/unspecs.md (UNSPEC_RRX): New.
3113
90444831
AM
31142013-10-01 Alan Modra <amodra@gmail.com>
3115
3116 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3117 casing inout operands.
3118
818625cf
RB
31192013-10-01 Richard Biener <rguenther@suse.de>
3120
3121 PR tree-optimization/58553
3122 * tree-loop-distribution.c (struct partition_s): Add niter member.
3123 (classify_partition): Populate niter member for the partition
3124 and properly identify whether the relevant store happens before
3125 or after the loop exit.
3126 (generate_memset_builtin): Use niter member from the partition.
3127 (generate_memcpy_builtin): Likewise.
3128
30f641cd
RS
31292013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3130
3131 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3132 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3133
65d3284b
RS
31342013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3135
3136 * basic-block.h (edge_list): Prefix member names with "m_".
3137 * context.h (context): Likewise.
3138 * domwalk.h (dom_walker): Likewise.
3139 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3140 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3141 * hash-table.h (hash_table): Likewise.
3142 * machmode.h (bit_field_mode_iterator): Likewise.
3143 * pass_manager.h (pass_list): Likewise.
3144 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3145 * tree-pass.h (pass_data): Likewise.
3146 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3147 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3148 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3149 * asan.c (pass_data_asan): Update accordingly.
3150 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3151 (control_dependences::control_dependences): Likewise.
3152 (control_dependences::~control_dependences): Likewise.
3153 (control_dependences::~control_dependences): Likewise.
3154 (control_dependences::get_edges_dependent_on): Likewise.
3155 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3156 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3157 * context.c (gcc::context::context): Likewise.
3158 * cprop.c (pass_rtl_cprop::clone): Likewise.
3159 * domwalk.c (dom_walker::walk): Likewise.
3160 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3161 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3162 * mode-switching.c (pass_mode_switching::clone): Likewise.
3163 * passes.c (opt_pass::opt_pass): Likewise.
3164 (pass_manager::pass_manager): Likewise.
3165 * predict.c (pass_strip_predict_hints::clone): Likewise.
3166 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3167 (pass_split_all_insns::clone): Likewise.
3168 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3169 Likewise.
3170 (bit_field_mode_iterator::next_mode): Likewise.
3171 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3172 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3173 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3174 * tree-complex.c (pass_lower_complex::clone): Likewise.
3175 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3176 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3177 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3178 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3179 (pass_fold_builtins::clone): Likewise.
3180 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3181 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3182 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3183 (pass_cd_dce::clone): Likewise.
3184 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3185 (pass_phi_only_cprop::clone): Likewise.
3186 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3187 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3188 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3189 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3190 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3191 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3192 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3193 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3194 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3195 * tree-vrp.c (pass_vrp::clone): Likewise.
3196 * tsan.c (pass_tsan::clone): Likewise.
3197
f66d0891
JJ
31982013-09-30 Jakub Jelinek <jakub@redhat.com>
3199
d2a365a8
JJ
3200 PR middle-end/58564
3201 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3202 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3203
f66d0891
JJ
3204 PR middle-end/58564
3205 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3206 optimization, punt if sign_bit_p looked through any zero extension.
3207
05357ac3
TJ
32082013-09-30 Teresa Johnson <tejohnson@google.com>
3209
3210 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3211 Update redirected out edge count in joiner case.
3212 (ssa_redirect_edges): Common the joiner and non-joiner cases
3213 so that joiner case gets profile updates.
3214
ca406576
RB
32152013-09-30 Richard Biener <rguenther@suse.de>
3216
3217 PR tree-optimization/58554
e2ebe1c2
UB
3218 * tree-loop-distribution.c (classify_partition): Require
3219 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3220 (tree_loop_distribution): Calculate dominance info.
3221
92d649c4
VK
32222013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3223
3224 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3225 (NO_PROFILE_COUNTERS): Likewise.
3226 (PROFILE_HOOK): Likewise.
3227 (FUNCTION_PROFILER): Likewise.
3228 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3229
bd9534e2
IS
32302013-09-30 Iain Sandoe <iain@codesourcery.com>
3231
3232 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3233 calls and defines in TARGET_MACHO conditional.
3234 (load_macho_picbase_di): Likewise.
3235 (reload_macho_picbase): Likewise.
3236 (reload_macho_picbase_si): Likewise.
3237 (reload_macho_picbase_di): Likewise.
3238 (nonlocal_goto_receiver): Likewise.
3239
4494fbc9
NC
32402013-09-30 Nick Clifton <nickc@redhat.com>
3241
3242 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3243 that use the MSP430X ISA.
3244 (msp430_option_override): Scan -mmcu command line option for any
3245 MCU name that supports the MSP430X ISA.
3246 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3247 -mmcu options which enable the MSP430X ISA.
3248
791d9044
RB
32492013-09-30 Richard Biener <rguenther@suse.de>
3250
3251 PR middle-end/58532
3252 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3253 before looking for setjmp-like calls.
3254
e1c5c877
IS
32552013-09-29 Iain Sandoe <iain@codesourcery.com>
3256
3257 PR target/10901
3258 * config/darwin-protos.h (machopic_get_function_picbase): New.
3259 * config/darwin.c (machopic_get_function_picbase): New.
3260 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3261 label for a new func. (load_macho_picbase_di): Likewise.
3262 (reload_macho_picbase): New expand.
3263 (reload_macho_picbase_si): New insn.
3264 (reload_macho_picbase_di): New insn.
3265 (nonlocal_goto_receiver): New define and split.
3266 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3267 (unspecv enum): Add UNSPECV_NLGR.
3268
749278c5
IS
32692013-09-29 Iain Sandoe <iain@codesourcery.com>
3270
3271 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3272 that altivec registers are correctly sized on Darwin.
3273
2c43a51c
IS
32742013-09-29 Iain Sandoe <iain@codesourcery.com>
3275
3276 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3277 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3278 * config/x-darwin (host-darwin.o): Likewise.
3279 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3280 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3281 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3282
7a5911d3
UB
32832013-09-29 Uros Bizjak <ubizjak@gmail.com>
3284
3285 * doc/invoke.texi: Fix usage of @tie{} command.
3286
3f67a73d
EB
32872013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3288
3289 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3290
9ac2f538
JH
32912013-09-28 Jan Hubicka <jh@suse.cz>
3292
3293 * config/i386/x86-tune.def: Add documentation for each of the options;
3294 add whitespace.
3295
b0ff06da
JH
32962013-09-28 Jan Hubicka <jh@suse.cz>
3297
7a5911d3
UB
3298 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3299 generic.
b0ff06da
JH
3300 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3301 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3302 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3303 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3304 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3305
c3284718
RS
33062013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3307
3308 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3309 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3310 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3311 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3312 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3313 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3314 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3315 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3316 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3317 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3318 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3319 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3320 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3321 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3322 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3323 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3324 gimple.h, godump.c, graphite-clast-to-gimple.c,
3325 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3326 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3327 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3328 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3329 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3330 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3331 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3332 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3333 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3334 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3335 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3336 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3337 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3338 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3339 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3340 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3341 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3342 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3343 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3344 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3345 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3346 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3347 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3348 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3349 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3350 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3351 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3352 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3353 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3354 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3355 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3356 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3357 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3358 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3359 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3360 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3361 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3362 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3363 whitespace before "(".
3364
c6285bd7
SL
33652013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3366
3367 * expr.h (extract_bit_field): Remove packedp parameter.
3368 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3369 from forward declaration.
3370 (store_split_bit_field): Remove packedp arg from calls to
3371 extract_fixed_bit_field.
3372 (extract_bit_field_1): Remove packedp parameter and packedp
3373 argument from recursive calls and calls to extract_fixed_bit_field.
3374 (extract_bit_field): Remove packedp parameter and corresponding
3375 arg to extract_bit_field_1.
3376 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3377 to issue warnings.
3378 (extract_split_bit_field): Remove packedp arg from call to
3379 extract_fixed_bit_field.
3380 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3381 (copy_blkmode_from_reg): Likewise.
3382 (copy_blkmode_to_reg): Likewise.
3383 (read_complex_part): Likewise.
3384 (store_field): Likewise.
3385 (expand_expr_real_1): Likewise.
3386 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3387 to extract_bit_field.
3388 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3389 call to extract_bit_field.
3390 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3391 call to extract_bit_field.
3392 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3393 and special packedp behavior from -fstrict-volatile-bitfields
3394 documentation.
3395
522d4efc
JBG
33962013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3397
3398 * lra-eliminations.c (init_elim_table): Guard value_p.
3399
19cdb489
MM
34002013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3401
3402 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3403 DFmode, DImode, and SFmode in the upper VSX registers based on the
3404 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3405 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3406 of the VSX register handling.
3407
3408 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3409 (f32_sv): Likewise.
3410 (zero_extendsidi2_lfiwzx): Add support for loading into the
3411 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3412 only do VSX memory options on Altivec registers.
3413 (extendsidi2_lfiwax): Likewise.
3414 (extendsfdf2_fpr): Likewise.
3415 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3416 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3417 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3418 (movdi_internal64): Likewise.
3419
d6d11272
XDL
34202013-09-27 Xinliang David Li <davidxl@google.com>
3421
3422 * opts.c (finish_options): Adjust parameters
3423 according to vect cost model.
3424 (common_handle_option): Set dynamic vect cost
3425 model for FDO.
3426 targhooks.c (default_add_stmt_cost): Compute stmt cost
3427 unconditionally.
3428 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3429 Use helper function.
3430 * tree-vectorizer.h (unlimited_cost_model): New function.
3431 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3432 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3433 function.
3434 (vect_enhance_data_refs_alignment): Ditto.
3435 * flag-types.h: New enum.
3436 * common/config/i386/i386-common.c (ix86_option_init_struct):
3437 No need to initialize vect_cost_model flag.
3438 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3439 unconditionally.
3440
ac1857a3
DN
34412013-09-27 Diego Novillo <dnovillo@google.com>
3442
3443 * gimple.h (enum ssa_mode): Remove.
3444
0d0e2af6
PM
34452013-09-27 Paulo Matos <pmatos@broadcom.com>
3446
3447 * cfgloop.h (number_of_loops): Fix typo in check for null.
3448
09dc585e
JJ
34492013-09-27 Jakub Jelinek <jakub@redhat.com>
3450
3451 PR middle-end/58551
3452 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3453 are children of outermost saved_cfun's loop, and set it up to
3454 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3455 if loop != loop0 and SESE region contains bbs that belong to loop0.
3456
ec5a3504
RS
34572013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3458
3459 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3460 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3461 (set_address_segment, set_address_base, set_address_index)
3462 (set_address_disp): Accept the argument unconditionally.
3463 (baseness): Remove must_be_base_p and must_be_index_p checks.
3464 (decompose_normal_address): Classify as much as possible in the
3465 main loop.
3466
f91aec98
RS
34672013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3468
3469 * cse.c (count_reg_usage): Handle INT_LIST.
3470 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3471 * reginfo.c (reg_scan_mark_refs): Likewise.
3472 * reload1.c (eliminate_regs_1): Likewise.
3473
a9195970
IS
34742013-09-27 Iain Sandoe <iain@codesourcery.com>
3475
3476 PR middle-end/58547
3477 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3478 signed.
3479
e6f1c509
RB
34802013-09-27 Richard Biener <rguenther@suse.de>
3481
3482 PR tree-optimization/58459
3483 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3484 restriction not propagating into loops.
3485
84f48495
FW
34862013-09-26 Florian Weimer <fw@deneb.enyo.de>
3487
3488 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3489 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3490 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3491
74fc8b8a
RB
34922013-09-26 Richard Biener <rguenther@suse.de>
3493
7a5911d3 3494 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3495
b4ada065
RB
34962013-09-26 Richard Biener <rguenther@suse.de>
3497
3498 * alias.h (component_uses_parent_alias_set): Rename to ...
3499 (component_uses_parent_alias_set_from): ... this.
3500 * alias.c (component_uses_parent_alias_set): Rename to ...
3501 (component_uses_parent_alias_set_from): ... this and return
3502 the desired parent.
3503 (reference_alias_ptr_type_1): Use the result from
3504 component_uses_parent_alias_set_from instead of stripping
3505 components one at a time.
3506 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3507
78bca40d
AM
35082013-09-26 Andrew MacLeod <amacleod@redhat.com>
3509
7a5911d3
UB
3510 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3511 Move prototypes to...
78bca40d
AM
3512 * tree-ssa-ter.h: New File. Move prototypes here.
3513 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3514 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3515 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3516 from is_replaceable_p.
78bca40d
AM
3517 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3518 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3519 (process_replaceable): Use ter_is_replaceable_p.
3520 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3521 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3522 newly refactored ssa_is_replaceable_p.
3523 * cfgexpand.c: Include tree-outof-ssa.h.
3524 * ssaexpand.h: Delete.
3525
ff2a63a7
AM
35262013-09-26 Andrew MacLeod <amacleod@redhat.com>
3527
3528 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3529 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3530 tree-ssa.c
3531 (create_gimple_tmp): Delete.
3532 (get_expr_type, build_assign, build_type_cast): Move to...
3533 * gimple-builder.c: New File.
3534 (get_expr_type): Relocate from gimple.c.
3535 (build_assign, build_type_cast): Change to only create ssanames.
3536 * gimple.h: Move prototypes to...
3537 * gimple-builder.h: New File. Here.
3538 * tree-ssa.h: And here.
3539 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3540 count_uses_and_derefs): Relocate from gimple.c.
3541 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3542 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3543 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3544 gimple_replace_ssa_lhs.
3545 * asan.c: Include gimple-builder.h.
3546 * Makefile.in: Add gimple-builder.o.
3547
a2544177
RB
35482013-09-26 Richard Biener <rguenther@suse.de>
3549
3550 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3551 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3552 (loe_visit_block): Use gcc_checking_assert.
3553 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3554 gimple_assign_ssa_name_copy_p.
3555 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3556 change.
3557
6d1ca9a0
DE
35582013-09-26 David Edelsohn <dje.gcc@gmail.com>
3559
3560 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3561 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3562
46e950db
RB
35632013-09-26 Richard Biener <rguenther@suse.de>
3564
3565 PR tree-optimization/58539
3566 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3567 the fact that debug statements are not taking part in loop-closed
3568 SSA construction.
3569
40ada30a
NC
35702013-09-26 Nick Clifton <nickc@redhat.com>
3571
3572 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3573 time warning message.
3574 (msp430_print_operand_raw): Delete unused letter parameter.
3575 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3576 (msp430_print_operand_address): New function.
3577 (msp430_print_operand): Move address printing code from here to
3578 new function.
3579 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3580 assembler.
3581 (zero_extendpsisi2): Likewise.
3582 (extendpsisi2): New pattern.
3583 (andneghi3): New pattern.
3584
38e8f663
YR
35852013-09-26 Yvan Roux <yvan.roux@linaro.org>
3586
3587 * config/aarch64/aarch64.opt (mlra): New option.
3588 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3589 (TARGET_LRA_P): Define.
3590
4167e8d4
EB
35912013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3592
3593 * expr.c (expand_assignment): Remove obsolete comment.
3594
5254eac4
JL
35952013-09-25 Jeff Law <law@redhat.com>
3596
3597 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3598 tree-ssa-threadupdate.h.
3599 (register_jump_thread): Similarly.
3600 * tree-ssa-threadupdate.h: New header file.
3601 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3602 * tree-vrp.c: Likewise.
3603 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3604 (thread_around_empty_blocks): Change type of path vector argument to
3605 an edge,type pair from just an edge. Initialize both elements when
3606 appending to a jump threading path. Tweak references to elements
3607 appropriately.
3608 (thread_across_edge): Similarly. Release memory for the elements
3609 as needed.
3610 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3611 (dump_jump_thread_path): New function broken out from
3612 register_jump_thread.
3613 (register_jump_thread): Use dump_jump_thread_path. Change type of
3614 path vector entries. Search the path for NULL edges and dump
3615 the path if one is found. Tweak the conversion of path to 3-edge
3616 form to use the block copy type information embedded in the path.
3617
20f114a3
YR
36182013-09-25 Yvan Roux <yvan.roux@linaro.org>
3619
3620 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3621
3936bafc
YR
36222013-09-25 Yvan Roux <yvan.roux@linaro.org>
3623 Vladimir Makarov <vmakarov@redhat.com>
3624
3625 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3626 from the least significant bit.
3627 (strip_address_mutations): Add bitfield operations handling.
3628 (must_be_index_p): Add shifting and rotate operations handling.
3629 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3630 (set_address_index): Use must_be_index_p predicate.
3936bafc 3631
b86f6e9e
AI
36322013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3633 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3634 Sergey Lega <sergey.s.lega@intel.com>
3635 Anna Tikhonova <anna.tikhonova@intel.com>
3636 Ilya Tocar <ilya.tocar@intel.com>
3637 Andrey Turetskiy <andrey.turetskiy@intel.com>
3638 Ilya Verbin <ilya.verbin@intel.com>
3639 Kirill Yukhin <kirill.yukhin@intel.com>
3640 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3641
3642 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3643 Use new names.
3644 (ix86_expand_vector_move_misalign): Support new unaligned load and
3645 stores and use new names.
3646 (CODE_FOR_sse2_storedqu): Rename to ...
3647 (CODE_FOR_sse2_storedquv16qi): ... this.
3648 (CODE_FOR_sse2_loaddqu): Rename to ...
3649 (CODE_FOR_sse2_loaddquv16qi): ... this.
3650 (CODE_FOR_avx_loaddqu256): Rename to ...
3651 (CODE_FOR_avx_loaddquv32qi): ... this.
3652 (CODE_FOR_avx_storedqu256): Rename to ...
3653 (CODE_FOR_avx_storedquv32qi): ... this.
3654 * config/i386/i386.md (fpint_logic): New.
3655 * config/i386/sse.md (VMOVE): Extend for AVX512.
3656 (VF): Ditto.
3657 (VF_128_256): New.
3658 (VF_512): Ditto.
3659 (VI_UNALIGNED_LOADSTORE): Ditto.
3660 (sse2_avx_avx512f): Ditto.
3661 (sse2_avx2): Extend for AVX512.
3662 (sse4_1_avx2): Ditto.
3663 (avx2_avx512f): New.
3664 (sse): Extend for AVX512.
3665 (sse2): Ditto.
3666 (sse4_1): Ditto.
3667 (avxsizesuffix): Ditto.
3668 (sseintvecmode): Ditto.
3669 (ssePSmode): Ditto.
3670 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3671 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3672 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3673 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3674 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3675 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3676 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3677 (STORENT_MODE): Extend for AVX512.
3678 (*absneg<mode>2): Replace constraint "x" with "v".
3679 (*mul<mode>3): Ditto.
3680 (*ieee_smin<mode>3): Ditto.
3681 (*ieee_smax<mode>3): Ditto.
3682 (avx_cmp<mode>3): Replace VF with VF_128_256.
3683 (*<sse>_maskcmp<mode>3_comm): Ditto.
3684 (<sse>_maskcmp<mode>3): Ditto.
3685 (<sse>_andnot<mode>3): Extend for AVX512.
3686 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3687 (<code><mode>3, fpint_logic): New.
3688 (*<code><mode>3): Extend for AVX512.
3689 (avx512flogicsuff): New.
3690 (avx512f_<logic><mode>): Ditto.
3691 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3692 VF_128_256.
3693 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3694 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3695 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3696 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3697 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3698 (xop_vpermil2<mode>3): Ditto.
3699 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3700 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3701 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3702 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3703
4d44d03c
TT
37042013-09-25 Tom Tromey <tromey@redhat.com>
3705
3706 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3707 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3708 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3709 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3710 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3711 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3712 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3713 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3714 (GRAPHITE_HTAB_H): Remove.
3715
86aaf68d
TT
37162013-09-25 Tom Tromey <tromey@redhat.com>
3717
3718 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3719
c987deb8
TT
37202013-09-25 Tom Tromey <tromey@redhat.com>
3721
3722 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3723
9439747e
TT
37242013-09-25 Tom Tromey <tromey@redhat.com>
3725
3726 * config/i386/t-i386 (i386.o): Remove.
3727 (i386-c.o): Use COMPILE and POSTCOMPILE.
3728
aefc31a1
TT
37292013-09-25 Tom Tromey <tromey@redhat.com>
3730
3731 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3732
b6541edc
TT
37332013-09-25 Tom Tromey <tromey@redhat.com>
3734
3735 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3736 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3737 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3738 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3739 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3740 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3741 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3742 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3743 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3744 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3745 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3746 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3747 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3748 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3749 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3750 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3751 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3752 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3753 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3754 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3755 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3756 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3757 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3758 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3759 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3760 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
3761 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
3762 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
3763 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
3764 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
3765 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
3766 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
3767 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
3768 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
3769 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
3770 (graphite-clast-to-gimple.o, graphite-dependences.o)
3771 (graphite-interchange.o, graphite-poly.o)
3772 (graphite-scop-detection.o, graphite-sese-to-poly.o)
3773 (graphite-optimize-isl.o, tree-vect-loop.o)
3774 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
3775 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
3776 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
3777 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
3778 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
3779 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
3780 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
3781 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
3782 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
3783 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
3784 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
3785 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
3786 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
3787 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
3788 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
3789 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
3790 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
3791 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
3792 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
3793 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
3794 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
3795 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
3796 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
3797 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
3798 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
3799 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
3800 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
3801 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
3802 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
3803 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
3804 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
3805 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
3806 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
3807 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
3808 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
3809 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
3810 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
3811 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
3812 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
3813 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
3814 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
3815 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
3816 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
3817 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
3818 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
3819 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
3820 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
3821 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
3822 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
3823 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
3824 (gcov-dump.o): Remove.
3825 (default-c.o): Use COMPILE and POSTCOMPILE.
3826 (CFLAGS-gcc.o): New variable.
3827 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
3828
8c796d19
TT
38292013-09-25 Tom Tromey <tromey@redhat.com>
3830
3831 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
3832 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
3833 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
3834 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
3835 (c-family/c-pragma.o, c-family/c-pretty-print.o)
3836 (c-family/c-semantics.o, c-family/c-ada-spec.o)
3837 (c-family/array-notation-common.o, c-family/stub-objc.o)
3838 (c-family/c-ubsan.o): Remove.
3839
0a6c2227
TT
38402013-09-25 Tom Tromey <tromey@redhat.com>
3841
3842 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
3843
f3bc55f0
TT
38442013-09-25 Tom Tromey <tromey@redhat.com>
3845
3846 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
3847 to add -DENABLE_SHARED_LIBGCC.
3848 (gcc.o): Don't use subshell.
3849
c11c795e
TT
38502013-09-25 Tom Tromey <tromey@redhat.com>
3851
3852 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
3853 * configure.ac: Don't invoke AM_PROG_CC_C_O.
3854 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
3855 * configure, config.in: Rebuild.
3856
043378c3
TT
38572013-09-25 Tom Tromey <tromey@redhat.com>
3858
3859 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
3860 (COMPILE, POSTCOMPILE): New variables.
3861 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
3862 (DEPFILES): New variable.
3863 Include ".Po" files.
3864 * configure.ac: Add checks for dependency checking.
3865 * configure, aclocal.m4: Regenerate.
3866
eab34643
TT
38672013-09-25 Tom Tromey <tromey@redhat.com>
3868
3869 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 3870 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 3871
d2db5e91
TT
38722013-09-25 Tom Tromey <tromey@redhat.com>
3873
3874 * Makefile.in (generated_files): Add options.h,
3875 target-hooks-def.h, insn-opinit.h,
3876 common/common-target-hooks-def.h, pass-instances.def,
3877 c-family/c-target-hooks-def.h.
3878
af33629e
JL
38792013-09-25 Jeff Law <law@redhat.com>
3880
3881 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
3882 than foo[foo.length () - 1] to access last member in a vec.
3883 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
3884
ed0d3051
RB
38852013-09-25 Richard Biener <rguenther@suse.de>
3886
3887 PR middle-end/58521
3888 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
3889
123485ca
JH
38902013-09-25 Jan Hubicka <jh@suse.cz>
3891
3892 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
3893 test.
3894
d70b0f1f
MP
38952013-09-25 Marek Polacek <polacek@redhat.com>
3896
3897 PR sanitizer/58420
3898 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
3899 when determining the type name.
3900
e3f02798
OE
39012013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
3902
3903 * config/sh/sh.md: Fix formatting.
3904
7a5911d3 39052013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 3906
7a5911d3
UB
3907 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
3908 max peel iterations parameter.
4f17aa0b
XDL
3909 * param.def: New parameter.
3910 * doc/invoke.texi: Document New parameter.
3911
0498471b
CL
39122013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
3913
3914 * gimple-pretty-print.c: Various whitespace tweaks.
3915 * tree-core.h: Likewise.
3916 * tree-pretty-print.c: Likewise.
3917 * tree-ssa-alias.c: Likewise.
3918 * tree-ssa-copy.c: Likewise.
3919 * tree-ssanames.c: Likewise.
3920 * tree-ssanames.h: Likewise.
3921 * tree-vrp.c: Likewise.
3922
5a8c2b57
AM
39232013-09-24 Alan Modra <amodra@gmail.com>
3924
3925 PR middle-end/57134
3926 PR middle-end/57586
7a5911d3
UB
3927 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
3928 for output operands that disallow regs. Don't use EXPAND_WRITE on
3929 inout operands.
5a8c2b57 3930
f40333af
RB
39312013-09-24 Richard Biener <rguenther@suse.de>
3932
3933 PR middle-end/58513
3934 * tree.c (reference_alias_ptr_type): Move ...
3935 * alias.c (reference_alias_ptr_type): ... here and implement
3936 in terms of the new reference_alias_ptr_type_1.
3937 (ref_all_alias_ptr_type_p): New helper.
3938 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
3939 use ref_all_alias_ptr_type_p.
3940 (get_deref_alias_set): Add flag_strict_aliasing check here.
3941 (reference_alias_ptr_type_1): New function, split out from ...
3942 (get_alias_set): ... here.
3943 (alias_ptr_types_compatible_p): New function.
3944 * alias.h (reference_alias_ptr_type): Declare.
3945 (alias_ptr_types_compatible_p): Likewise.
3946 * tree.h (reference_alias_ptr_type): Remove.
3947 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
3948 to compare MEM_REF alias types.
3949
583e8bf5
RB
39502013-09-24 Richard Biener <rguenther@suse.de>
3951
3952 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
3953
5e8586d7
MM
39542013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3955
19c3e797
MM
3956 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3957 reload helper function arrays into a single array reg_addr.
3958 (reload_fpr_gpr): Likewise.
3959 (reload_gpr_vsx): Likewise.
3960 (reload_vsx_gpr): Likewise.
3961 (struct rs6000_reg_addr): Likewise.
3962 (reg_addr): Likewise.
3963 (rs6000_debug_reg_global): Change rs6000_vector_reload,
3964 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3965 (rs6000_init_hard_regno_mode_ok): Likewise.
3966 (rs6000_secondary_reload_direct_move): Likewise.
3967 (rs6000_secondary_reload): Likewise.
3968
5e8586d7
MM
3969 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3970 constraints: wu, ww, and wy. Repurpose wv constraint added during
3971 power8 changes. Put wg constraint in alphabetical order.
3972
3973 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3974 for future work to add ISA 2.07 VSX single precision support.
3975 (-mvsx-scalar-double): Change default from -1 to 1, update
3976 documentation comment.
3977 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3978 (-mupper-regs-df): New debug switch to control whether DF values
3979 can go in the traditional Altivec registers.
3980 (-mupper-regs-sf): New debug switch to control whether SF values
3981 can go in the traditional Altivec registers.
3982
3983 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3984 and wy constraints.
3985 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3986 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
3987 Add new constraints, wu/ww/wy. Repurpose wv constraint.
3988 (rs6000_debug_legitimate_address_p): Print if we are running
3989 before, during, or after reload.
3990 (rs6000_secondary_reload): Add a comment.
3991 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3992
3993 * config/rs6000/constraints.md (wa constraint): Sort w<x>
3994 constraints. Update documentation string.
3995 (wd constraint): Likewise.
3996 (wf constraint): Likewise.
3997 (wg constraint): Likewise.
3998 (wn constraint): Likewise.
3999 (ws constraint): Likewise.
4000 (wt constraint): Likewise.
4001 (wx constraint): Likewise.
4002 (wz constraint): Likewise.
4003 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4004 instructions.
4005 (ww constraint): Likewise.
4006 (wy constraint): Likewise.
4007 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
4008 the previous submissions.
4009 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4010
e5af9ddd
RS
40112013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4012
4013 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4014 (REG_BR_PROB): Say that the probability is stored in an int_list.
4015 * reg-notes.def: Update commentary to mention INT_LIST.
4016 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4017 (INT_LIST): New rtx.
4018 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4019 * rtlanal.c (int_reg_note_p): New function.
4020 (alloc_reg_note): Assert that the note does not have an int argument.
4021 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4022 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4023 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4024 rather than an INSN_LIST. Handle INT_LIST.
4025 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4026 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4027 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4028 Manipulate them as ints rather than rtxes.
4029 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4030 * regmove.c (copy_src_to_dest): Likewise.
4031 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4032
4033 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4034 into the cases that need it.
4035 * config/arm/arm.c (arm_unwind_emit): Likewise.
4036
4037 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4038 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4039 * loop-doloop.c (add_test, doloop_modify): Likewise.
4040 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4041 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4042 * predict.c (combine_predictions_for_insn): Likewise.
4043 * print-rtl.c (print_rtx): Handle INT_LIST.
4044 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4045 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4046 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4047 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4048 (ix86_split_fp_branch, predict_jump): Likewise.
4049 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4050 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4051 * config/spu/spu.c (ea_load_store_inline): Likewise.
4052
4053 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4054 value of a REG_BR_PROB note.
4055 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4056 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4057 * emit-rtl.c (try_split): Likewise.
4058 * predict.c (br_prob_note_reliable_p): Likewise.
4059 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4060 * reorg.c (mostly_true_jump): Likewise.
4061 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4062 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4063 * config/i386/i386.c (ix86_print_operand): Likewise.
4064 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4065 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4066 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4067 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4068 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4069 * config/sparc/sparc.c (output_cbranch): Likewise.
4070 * config/spu/spu.c (get_branch_target): Likewise.
4071 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4072 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4073
450ad0cd
JH
40742013-09-23 Jan Hubicka <jh@suse.cz>
4075
4076 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4077 for ipa-devirt.
4078 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4079 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4080 of external calls
4081 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4082 (gimple_fold_call): Dump inconsistent devirtualizations; add
4083 sanity check for type based devirtualizations.
4084 * ipa-prop.c: Include ipa-utils.h
4085 (ipa_intraprocedural_devirtualization): Add sanity check.
4086 (try_make_edge_direct_virtual_call): Likewise.
4087
cefce769
EB
40882013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4089
4090 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4091 assignment statements.
4092
a895a2b8
KV
40932013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4094
4095 * gimple-pretty-print.c (dump_ssaname_info): New function.
4096 (dump_gimple_phi): Call it.
4097 (pp_gimple_stmt_1): Likewise.
4098 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4099 (range_info_def): Declare.
4100 * tree-pretty-print.c (pp_double_int): New function.
4101 (dump_generic_node): Call it.
4102 * tree-pretty-print.h (pp_double_int): Declare.
4103 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4104 * tree-ssanames.h (range_info_def): New structure.
4105 (value_range_type): Move definition here.
4106 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4107 Declare.
4108 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4109 initialization.
4110 (set_range_info): New function.
4111 (get_range_info): Likewise.
4112 (duplicate_ssa_name_range_info): Likewise.
4113 (duplicate_ssa_name_fn): Check pointer type and call
4114 duplicate_ssa_name_range_info.
4115 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4116 * tree-vrp.c (value_range_type): Remove definition, now in
4117 tree-ssanames.h.
7a5911d3 4118 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4119 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4120 (SSA_NAME_RANGE_INFO): New macro.
4121
984af6ac
RB
41222013-09-23 Richard Biener <rguenther@suse.de>
4123
4124 PR tree-optimization/58464
4125 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4126 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4127 (phi_translate_1): Remove recursion detection here.
4128 (phi_translate): Pre-seed the cache with NULL to catch
4129 recursion here in a more generic way.
4130 (bitmap_find_leader): Adjust comment.
4131 (get_representative_for): Dump value-numbers.
4132 (create_expression_by_pieces): Likewise.
4133 (insert_into_preds_of_block): Likewise.
4134
0e26cf79
CB
41352013-09-23 Christian Bruel <christian.bruel@st.com>
4136
4137 PR target/58475
4138 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4139 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4140
4d0e5b54
JG
41412013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4142
4143 Revert r202780:
4144 2013-09-20 Renlin Li <renlin.li@arm.com>
4145
7a5911d3
UB
4146 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4147 plus_constant.
4d0e5b54
JG
4148 (aarch64_expand_epilogue): Likewise.
4149 (aarch64_legitimize_reload_address): Likewise.
4150
ca081cc8
EB
41512013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4152
4153 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4154 NULL_TREE before pushing them onto the vector. Likewise for labels.
4155
8fc53a5f
EB
41562013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4157
4158 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4159 comparison operators when -fno-trapping-math is in effect.
4160 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4161 comparison operators in TFmode and assert that unsupported operators
4162 cannot reach here.
4163 (ia64_print_operand): Likewise.
4164
41652013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4166
4167 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4168 (sse_typeless_stores): Enable for core
4169 (sse_load0_by_pxor): Likewise.
4170 (four_jump_limit): Disable for core.
4171 (pad_returns): Likewise.
4172 (avoid_vector_decode): Likewise.
4173 (fuse_cmp_and_branch): Enable for cores.
4174 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4175
578e51e6
JDA
41762013-09-20 John David Anglin <danglin@gcc.gnu.org>
4177
96ce28a3
JDA
4178 PR middle-end/56791
4179 * config/pa/pa.c (pa_option_override): Disable auto increment and
4180 decrement instructions until reload is completed.
4181
578e51e6
JDA
4182 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4183 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4184 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4185
6fcd3a13 41862013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4187 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4188
4189 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4190 (need_to_save): Save bank 0 on interrupts.
4191 (characterize_address): Strip far address wrappers.
4192 (rl78_as_legitimate_address): Likewise.
4193 (transcode_memory_rtx): Likewise.
4194 (rl78_peep_movhi_p): Disable this peephole after devirt.
4195 (rl78_propogate_register_origins): Forget all origins when a
4196 CLOBBER is seen.
4197 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4198 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4199 peephole2's.
4200 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4201 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4202 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4203 relocating.
4204 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4205
4a08db33
JDA
42062013-09-20 John David Anglin <danglin@gcc.gnu.org>
4207
4208 * config/pa/pa.md: In "scc" insn patterns, change output template to
4209 handle const0_rtx in reg_or_0_operand operands.
4210
7691132c
JBG
42112013-09-20 Martin Husemann <martin@NetBSD.org>
4212
4213 PR target/56875
4214 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4215 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4216
a3cc13cc
RB
42172013-09-20 Richard Biener <rguenther@suse.de>
4218
4219 PR middle-end/58484
4220 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4221 remembering SSA name version and block index.
4222 (new_scev_info_str): Adjust.
4223 (hash_scev_info): Likewise. Also hash the block index.
4224 (eq_scev_info): Adjust.
4225 (find_var_scev_info): Likewise.
4226 (struct instantiate_cache_entry): Remove.
4227 (struct instantiate_cache_type): Use a htab to map name, block
4228 to chrec.
4229 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4230 (get_instantiated_value_entry): Likewise.
4231 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4232 (instantiate_scev_name): Adjust.
4233
925f3871
JL
42342013-09-20 Jeff Law <law@redhat.com>
4235
4236 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4237
2888c331
YZ
42382013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4239
4240 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4241 Call aarch64_simd_expand_args to update op[argc].
4242
0a811e96
BS
42432013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4244
7a5911d3
UB
4245 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4246 plugin argument.
0a811e96 4247
0078f462
BS
42482013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4249
7a5911d3
UB
4250 * gengtype.c (file_rules): Added rule for *.cc files.
4251 (get_output_file_with_visibility): Give fatal message when no
4252 rules found.
0078f462 4253
d20e48b0
RL
42542013-09-20 Renlin Li <renlin.li@arm.com>
4255
4256 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4257 (aarch64_expand_epilogue): Likewise.
4258 (aarch64_legitimize_reload_address): Likewise.
4259
59bb1544
BE
42602013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4261
4262 PR middle-end/57748
4263 * expr.c (expand_assignment): Remove misalignp code path.
4264
a5430019
MP
42652013-09-20 Marek Polacek <polacek@redhat.com>
4266
4267 PR sanitizer/58413
4268 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4269 TYPE_PRECISION. Add asserts.
4270
9fed7f3a
RB
42712013-09-20 Richard Biener <rguenther@suse.de>
4272
4273 PR tree-optimization/58453
4274 * tree-loop-distribution.c (distribute_loop): Apply the cost
4275 model for -ftree-loop-distribute-patterns, too.
4276
a820c834
RB
42772013-09-20 Richard Biener <rguenther@suse.de>
4278
4279 PR middle-end/58473
4280 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4281 make type comparison less strict.
4282
3cbe17f7
AM
42832013-09-20 Alan Modra <amodra@gmail.com>
4284
4285 * configure: Regenerate.
4286 * aclocal.m4: Regenerate.
4287
87fccdbb
MP
42882013-09-20 Marek Polacek <polacek@redhat.com>
4289
4290 PR other/58467
4291 * doc/extend.texi: Document that attribute used is meant to be used
4292 on variables with static storage duration.
4293
8928eff3
JJ
42942013-09-19 Jakub Jelinek <jakub@redhat.com>
4295
4296 PR tree-optimization/58472
4297 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4298 simd_lane_access set inv_p = false.
4299 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4300 the simduid magic VAR_DECL.
4301
b7b28c53
JH
43022013-09-19 Jan Hubicka <jh@suse.cz>
4303
4304 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4305
83ae86f5
JL
43062013-09-17 Jeff Law <law@redhat.com>
4307
4308 * tree-ssa-dom.c (record_temporary_equivalences): New function
4309 split out of dom_opt_dom_walker::after_dom_children.
4310 (dom_opt_dom_walker::thread_across_edge): Move common code
4311 in here from dom_opt_dom_walker::after_dom_children.
4312 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4313
9d532162
JH
43142013-09-19 Jan Hubicka <jh@suse.cz>
4315
4316 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4317 (TARGET_GENERIC): Use PROCESOR_GENERIC
4318 (enum processor_type): Unify generic32 and 64.
4319 * i386.md (cpu): Likewise.
4320 * x86-tune.def (use_leave): Enable for generic32.
4321 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4322 * athlon.md: Change generic64 to generic in all occurences.
4323 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4324 (ix86_target_macros_internal): Likewise.
4325 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4326 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4327 to ..
9d532162
JH
4328 (generic_memcpy, generic_memset, generic_cost): This one.
4329 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4330 (m_GENERIC32, m_GENERIC64): Remove.
4331 (m_GENERIC): Turn into one flag.
4332 (processor_target): Unify generic tunnings.
4333 (ix86_option_override_internal): Replace generic32/64 by generic.
4334 (ix86_issue_rate): Likewise.
4335 (ix86_adjust_cost): Likewise.
4336
188c7d00
JH
43372013-09-19 Jan Hubicka <jh@suse.cz>
4338
4339 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4340 of speculative flag.
4341
4befd127
JJ
43422013-09-19 Jakub Jelinek <jakub@redhat.com>
4343
4344 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4345 GOMP_sections_start, even if !exit_reachable.
4346
8a26ad39
VM
43472013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4348
4349 * lra-constraints.c (need_for_all_save_p): Use macro
4350 HARD_REGNO_CALL_PART_CLOBBERED.
4351 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4352 set up pseudo conflict hard regs.
4353
09487185
MM
43542013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4355
4356 PR target/58452
4357 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4358 operands.
4359
080cbf9e
VM
43602013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4361
4362 PR rtl-optimization/58438
4363 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4364 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4365 from previous subpasses.
4366
a0f70fcb
RE
43672013-09-18 Richard Earnshaw <rearnsha@arm.com>
4368
4369 * arm.c (arm_get_frame_offsets): Validate architecture supports
4370 LDRD/STRD before accepting the tuning preference.
4371 (arm_expand_prologue): Likewise.
4372 (arm_expand_epilogue): Likewise.
4373
0547c9b6
RB
43742013-09-18 Richard Biener <rguenther@suse.de>
4375
4376 PR tree-optimization/58417
4377 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4378 have chrecs with symbols defined in the loop as operands.
4379 (chrec_fold_multiply): Likewise.
4380 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4381 parameters before folding binary operations.
4382 (struct instantiate_cache_entry_hasher): Remove.
4383 (struct instantiate_cache_type): Use a pointer-map.
4384 (instantiate_cache_type::instantiate_cache_type): New function.
4385 (instantiate_cache_type::get): Likewise.
4386 (instantiate_cache_type::set): Likewise.
4387 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4388 (get_instantiated_value_entry): Likewise.
4389 (global_cache): New global.
4390 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4391 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4392 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4393 (instantiate_scev_name): Adjust.
4394 (instantiate_scev): Construct global instead of local cache.
4395 (resolve_mixers): Likewise.
4396
309dc1aa
DM
43972013-09-18 Daniel Morris <danielm@ecoscentric.com>
4398 Paolo Carlini <paolo.carlini@oracle.com>
4399
4400 PR c++/58458
4401 * doc/implement-cxx.texi: Fix references to the C++ standards.
4402
995a1b4a
JJ
44032013-09-18 Jakub Jelinek <jakub@redhat.com>
4404
4405 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4406 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4407 simd_lane_access drs, update also DR_ALIGNED_TO.
4408
ce6923c5
MP
44092013-09-18 Marek Polacek <polacek@redhat.com>
4410
4411 PR sanitizer/58411
4412 * doc/extend.texi: Document no_sanitize_undefined attribute.
4413 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4414 no_sanitize_undefined attribute.
4415
d30d00a2
NC
44162013-09-18 Nick Clifton <nickc@redhat.com>
4417
4418 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4419 (ASM_DECLARE_FUNCTION_NAME): Define.
4420
4d9192b5
TS
44212013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4422
4423 * compare-elim.c (find_comparison_dom_walker): New class
4424 (find_comparisons_in_bb): Rename to
4425 find_comparison_dom_walker::before_dom_children
4426 (find_comparisons): Adjust
4427 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4428 adjust.
4429 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4430 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4431 (init_walk_dominator_tree): Remove declaration.
4432 (fini_walk_dominator_tree): Remove declaration.
4433 * fwprop.c (single_def_use_dom_walker): New class
4434 (single_def_use_enter_block): Convert to
4435 single_def_use_dom_walker::before_dom_children.
4436 (single_def_use_leave_block): Convert to
4437 single_def_use_dom_walker::after_dom_children.
4438 (build_single_def_use_links): Adjust.
4439 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4440 class.
4441 (find_candidates_in_block): Convert to
4442 find_candidates_dom_walker::before_dom_children.
4443 (execute_strength_reduction): Adjust.
4444 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4445 (sese_dom_walker): New class.
4446 (sese_dom_walker::sese_dom_walker): New constructor.
4447 (sese_dom_walker::~sese_dom_walker): New destructor.
4448 (build_sese_conditions_before): Convert to
4449 sese_dom_walker::before_dom_children.
4450 (build_sese_conditions_after): Convert to
4451 sese_dom_walker::after_dom_children.
4452 (build_poly_scop): Adjust
4453 * tree-into-ssa.c (rewrite_dom_walker): New class
4454 (rewrite_enter_block): Convert to
4455 rewrite_dom_walker::before_dom_children.
4456 (rewrite_leave_block): Convert to
4457 rewrite_dom_walker::after_dom_children.
4458 (rewrite_update_dom_walker): New class.
4459 (rewrite_update_enter_block): Convert to
4460 rewrite_update_dom_walker::before_dom_children.
4461 (rewrite_update_leave_block): Convert to
4462 rewrite_update_dom_walker::after_dom_children.
4463 (rewrite_blocks, rewrite_into_ssa): Adjust.
4464 (mark_def_dom_walker): New class.
4465 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4466 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4467 (mark_def_sites_blocks): Convert to
4468 mark_def_dom_walker::before_dom_children.
4469 (mark_def_site_blocks): Remove.
4470 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4471 (tree_ssa_dominator_optimize): Adjust.
4472 (dom_thread_across_edge): Convert to method
4473 dom_opt_dom_walker::thread_across_edge.
4474 (dom_opt_enter_block): Convert to member function
4475 dom_opt_dom_walker::before_dom_children.
4476 (dom_opt_leave_block): Convert to member function
4477 dom_opt_dom_walker::after_dom_children.
4478 * tree-ssa-dse.c (dse_dom_walker): New class.
4479 (dse_enter_block): Convert to member function
4480 dse_dom_walker::before_dom_children.
4481 (tree_ssa_dse): Adjust.
4482 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4483 (determine_invariantness_stmt): Convert to method
4484 invariantness_dom_walker::before_dom_children.
4485 (determine_invariantness): Remove
4486 (move_computations_dom_walker): New class.
4487 (move_computations_stmt): Convert to method
4488 move_computations_dom_walker::before_dom_children.
4489 (move_computations, tree_ssa_lim): Adjust.
4490 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4491 (nt_init_block): Make method
4492 notrappping_dom_walker::before_dom_children.
4493 (nt_fini_block): Make
4494 method nontrapping_dom_walker::after_dom_children.
4495 (get_non_trapping): Adjust.
4496 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4497 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4498 (eliminate_leave_block): Make method.
4499 eliminate_dom_walker::after_dom_children.
4500 (eliminate): Adjust
4501 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4502 (strlen_enter_block): Make method
4503 strlen_dom_walker::before_dom_children.
4504 (strlen_leave_block): Make
4505 method strlen_dom_walker::after_dom_children.
4506 (tree_ssa_strlen): Adjust.
4507 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4508 (tree_ssa_uncprop): Adjust.
4509 (uncprop_leave_block): Make method
4510 uncprop_dom_walker::after_dom_children.
4511 (uncprop_leave_block): Make method
4512 uncprop_dom_walker::before_dom_children.
4513
3b3cc26b
BC
45142013-09-18 Bin Cheng <bin.cheng@arm.com>
4515
7a5911d3
UB
4516 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4517 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4518
b5ba3a9b
NC
45192013-09-17 Nick Clifton <nickc@redhat.com>
4520
4521 * config/rl78/rl78-real.md (bf): New pattern.
4522 (bt): New pattern.
4523 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4524 (rl78_print_operand): Do not put a # before a %B.
4525 * config/rl78/rl78.opt: Tweak doc strings.
4526
09d5094b
DD
45272013-09-17 DJ Delorie <dj@redhat.com>
4528
4529 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4530 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4531 (rl78_option_override): Likewise, if -mallregs.
4532 (is_virtual_register): Likewise.
4533 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4534 (REGNO_OK_FOR_BASE_P): Likewise.
4535 * config/rl78/rl78.opt (-mallregs): New.
4536
2ba1dca1
NC
45372013-09-17 Nick Clifton <nickc@redhat.com>
4538
4539 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4540 For interrupt functions: save all call clobbered registers if the
4541 interrupt handler is not a leaf function.
4542 (rl78_expand_prologue): Always recompute the frame information.
4543 For interrupt functions: only select bank 0 if one of the bank 0
4544 registers is going to be psuhed.
4545
2e7c3f21
DD
45462013-09-17 DJ Delorie <dj@redhat.com>
4547
4548 * config/rl78/constraints.md: For each W* constraint, rename to C*
4549 and create a W* constraint that checks for an optional ES: prefix
4550 pattern also.
4551 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4552 (es_addr): New. Used to wrap far addresses.
4553 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4554 (rl78_es_base): New.
4555 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4556 wrapped far addresses.
4557 (rl78_print_operand_1): Unwrap far addresses before processing.
4558 (rl78_lo16): Wrap far addresses in unspecs.
4559 (rl78_es_addr): New.
4560 (rl78_es_base): New.
4561 (insn_ok_now): Check for not-yet-wrapped far addresses.
4562 (transcode_memory_rtx): Properly re-wrap far addresses.
4563
5c26a69a
SH
45642013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4565
4566 * config/sparc/t-rtems: Add leon3 multilibs.
4567
181f5f3e
CH
45682013-09-17 Cong Hou <congh@google.com>
4569
4570 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4571 when checking the dot production pattern. The type of rhs operand
4572 of multiply is now checked correctly.
4573
8d34e421
JL
45742013-09-17 Jeff Law <law@redhat.com>
4575
4576 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4577 edge implied equivalences into successor phis.
4578 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4579 here from tree-ssa-threadedge.c.
4580 (mark_threaded_blocks): When threading through a joiner, if both
4581 successors of the joiner's clone reach the same block, verify the
4582 PHI arguments are equal. If not, cancel the jump threading request.
4583 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4584 tree-ssa-threadupdate.c
4585 (thread_across_edge): Don't check PHI argument equality when
4586 threading through joiner block here.
7a5911d3 4587
c152901f
AM
45882013-09-17 Andrew MacLeod <amacleod@redhat.com>
4589
4590 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4591 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4592 (warn_uninit, warn_uninitialized_vars,
4593 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4594 Move to tree-ssa-uninit.c.
78cedfb1 4595 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4596 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4597 ssa_undefined_value_p.
4598 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4599 (warn_uninit, warn_uninitialized_vars,
4600 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4601 Move from tree-ssa.c.
4602 * tree-ssa.h: Adjust prototypes.
c152901f 4603
b631d45a
JH
46042013-09-17 Jan Hubicka <jh@suse.cz>
4605
4606 PR middle-end/58332
4607 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4608 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4609 FUNCTION_NOT_OPTIMIZED.
4610 * ipa-inline-analysis.c (compute_inline_parameters): Function
4611 not optimized is not inlinable unless it is alwaysinline.
4612 (inline_analyze_function): Force calls in not optimized
4613 function not inlinable.
4614
5b79657a
JH
46152013-09-17 Jan Hubicka <jh@suse.cz>
4616
4617 PR middle-end/58329
4618 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4619 to return NULL.
4620 * ipa.c (function_and_variable_visibility): Likewise.
4621 * ipa-profile.c (ipa_profile): Likewise.
4622
27442c24
BE
46232013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4624
4625 PR ipa/58398
4626 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4627 attribute, and don't inline the resolver in this case.
4628
753b9bc3
TJ
46292013-09-17 Teresa Johnson <tejohnson@google.com>
4630
4631 * coverage.c (get_coverage_counts): Add missing newline.
4632
e3d3cfb4
KT
46332013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4634
4635 PR tree-optimization/58088
4636 * fold-const.c (mask_with_trailing_zeros): New function.
4637 (fold_binary_loc): Make sure we don't recurse infinitely
4638 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4639 Use mask_with_trailing_zeros where appropriate.
4640
9a0ac98f
YR
46412013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4642
4643 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4644 of 'prev' var to get better distance estimation.
4645
78bbd765
EB
46462013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4647
4648 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4649 * tree-inline.c (is_parameter_of): New predicate.
4650 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4651 a parameter has been remapped.
4652 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4653 (optimize_inline_calls): Initialize transform_parameter.
4654 (copy_gimple_seq_and_replace_locals): Likewise.
4655 (tree_function_versioning): Likewise.
4656 (maybe_inline_call_in_expr): Likewise.
4657
cad055a4
NC
46582013-09-17 Nick Clifton <nickc@redhat.com>
4659
4660 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4661 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4662 interrupt handlers.
4663 (is_attr_func): New function.
4664 (msp430_is_interrupt_func): New function.
4665 (is_naked_func): New function.
4666 (is_reentrant_func): New function.
4667 (is_critical_func): New function.
4668 (msp430_start_function): Add annotations for function attributes.
4669 (msp430_attr): New function.
4670 (msp430_attribute_table): New.
4671 (msp430_function_section): New function.
4672 (TARGET_ASM_FUNCTION_SECTION): Define.
4673 (msp430_builtin): New enum.
4674 (msp430_init_builtins): New function.
4675 (msp430_builtin_devl): New function.
4676 (msp430_expand_builtin): New function.
4677 (TARGET_INIT_BUILTINS): Define.
4678 (TARGET_EXPAND_BUILTINS): Define.
4679 (TARGET_BUILTIN_DECL): Define.
4680 (msp430_expand_prologue): Add support for naked, interrupt,
4681 critical and reentrant functions.
4682 (msp430_expand_epilogue): Likewise.
4683 (msp430_print_operand): Handle 'O' character.
4684 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4685 NO_TRAMPOLINES.
4686 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4687 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4688 (pushm): Use a 'n' rather than an 'i' constraint.
4689 (msp_return): Add generation of the interrupt return instruction.
4690 (disable_interrupts): New pattern.
4691 (enable_interrupts): New pattern.
4692 (push_intr_state): New pattern.
4693 (pop_intr_state): New pattern.
4694 (bic_SR): New pattern.
4695 (bis_SR): New pattern.
4696 * doc/extend.texi: Document MSP430 function attributes and builtin
4697 functions.
4698
deb6c11a
RB
46992013-09-17 Richard Biener <rguenther@suse.de>
4700
4701 PR tree-optimization/58432
4702 * tree-loop-distribution.c (tree_loop_distribution): Also
4703 scan PHIs for outside loop uses and seed a partition from them.
4704
c068654b
BC
47052013-09-17 Bin Cheng <bin.cheng@arm.com>
4706
4707 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4708 (restructure_reference): Call backtrace_base_for_ref.
4709
567969e4
AM
47102013-09-17 Alan Modra <amodra@gmail.com>
4711
4712 PR target/57589
7a5911d3
UB
4713 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4714 patch.
567969e4 4715
5c0029de
DD
47162013-09-16 DJ Delorie <dj@redhat.com>
4717
4718 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4719 vregs location for RL78/G10.
4720 (rl78_expand_prologue): Avoid SEL on G10.
4721 (rl78_expand_epilogue): Likewise.
4722 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4723 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4724 __RL78_G10__ when appropriate.
4725 (ASM_SPEC): Pass -mg10 along to the assembler.
4726 * config/rl78/rl78.md (sel_rb): Disable for G10.
4727 * config/rl78/rl78.opt: Add -mg10 option.
4728 * config/rl78/t-rl78: Add -mg10 multilib.
4729
ea0f3e87
XDL
47302013-09-16 Xinliang David Li <davidxl@google.com>
4731
4732 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4733 * omp-low.c (omp_max_vf): Ditto.
4734 (expand_omp_simd): Ditto.
4735 * tree-vectorizer.c (vectorize_loops): Ditto.
4736 (gate_vect_slp): Ditto.
4737 (gate_increase_alignment): Ditto.
4738 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4739 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4740 (gate_tree_vectorize): Name change.
4741 (tree_vectorize): Ditto.
4742 (pass_vectorize::gate): Call new function.
4743 (pass_vectorize::execute): Ditto.
7a5911d3 4744 * opts.c: O3 default setting change.
ea0f3e87
XDL
4745 (finish_options): Check new flag.
4746 * doc/invoke.texi: Document new flags.
4747 * common.opt: New flags.
4748
4f3da2e5
AS
47492013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4750
4751 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4752 (Condition Code): Don't reference it.
4753 * doc/tm.texi: Regenerate.
4754
aa940f7c
VM
47552013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4756
4757 PR middle-end/58418
4758 * lra-constraints.c (undo_optional_reloads): Consider all optional
4759 reload even if it did not get a hard reg.
4760
e645e942
TJ
47612013-09-16 Teresa Johnson <tejohnson@google.com>
4762
4763 * dumpfile.c (dump_loc): Remove newline emission.
4764 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
4765 emission to dump_printf_loc calls where missing.
4766 (vect_mark_for_runtime_alias_test): Ditto.
4767 (vect_analyze_data_ref_dependence): Ditto.
4768 (vect_analyze_data_ref_dependences): Ditto.
4769 (vect_slp_analyze_data_ref_dependence): Ditto.
4770 (vect_slp_analyze_data_ref_dependences): Ditto.
4771 (vect_compute_data_ref_alignment): Ditto.
4772 (vect_update_misalignment_for_peel): Ditto.
4773 (vect_verify_datarefs_alignment): Ditto.
4774 (vector_alignment_reachable_p): Ditto.
4775 (vect_get_data_access_cost): Ditto.
4776 (vect_enhance_data_refs_alignment): Ditto.
4777 (vect_find_same_alignment_drs): Ditto.
4778 (vect_analyze_data_refs_alignment): Ditto.
4779 (vect_analyze_group_access): Ditto.
4780 (vect_analyze_data_ref_access): Ditto.
4781 (vect_analyze_data_ref_accesses): Ditto.
4782 (vect_prune_runtime_alias_test_list): Ditto.
4783 (vect_analyze_data_refs): Ditto.
4784 (vect_create_addr_base_for_vector_ref): Ditto.
4785 (vect_create_data_ref_ptr): Ditto.
4786 (vect_grouped_store_supported): Ditto.
4787 (vect_grouped_load_supported): Ditto.
4788 * value-prof.c (check_counter): Ditto.
4789 (check_ic_target): Ditto.
4790 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
4791 (vect_recog_widen_mult_pattern): Ditto.
4792 (vect_recog_widen_sum_pattern): Ditto.
4793 (vect_recog_over_widening_pattern): Ditto.
4794 (vect_recog_widen_shift_pattern): Ditto.
4795 (vect_recog_rotate_pattern): Ditto.
4796 (vect_recog_vector_vector_shift_pattern): Ditto.
4797 (vect_recog_divmod_pattern): Ditto.
4798 (vect_recog_mixed_size_cond_pattern): Ditto.
4799 (vect_recog_bool_pattern): Ditto.
4800 (vect_pattern_recog_1): Ditto.
4801 (vect_pattern_recog): Ditto.
4802 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
4803 (vect_is_simple_iv_evolution): Ditto.
4804 (vect_analyze_scalar_cycles_1): Ditto.
4805 (vect_get_loop_niters): Ditto.
4806 (vect_analyze_loop_1): Ditto.
4807 (vect_analyze_loop_form): Ditto.
4808 (vect_analyze_loop_operations): Ditto.
4809 (vect_analyze_loop_2): Ditto.
4810 (vect_analyze_loop): Ditto.
4811 (report_vect_op): Ditto.
4812 (vect_is_slp_reduction): Ditto.
4813 (vect_is_simple_reduction_1): Ditto.
4814 (vect_get_known_peeling_cost): Ditto.
4815 (vect_estimate_min_profitable_iters): Ditto.
4816 (vect_model_reduction_cost): Ditto.
4817 (vect_model_induction_cost): Ditto.
4818 (get_initial_def_for_induction): Ditto.
4819 (vect_create_epilog_for_reduction): Ditto.
4820 (vectorizable_reduction): Ditto.
4821 (vectorizable_induction): Ditto.
4822 (vectorizable_live_operation): Ditto.
4823 (vect_loop_kill_debug_uses): Ditto.
4824 (vect_transform_loop): Ditto.
4825 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
4826 (vect_stmt_relevant_p): Ditto.
4827 (process_use): Ditto.
4828 (vect_mark_stmts_to_be_vectorized): Ditto.
4829 (vect_model_simple_cost): Ditto.
4830 (vect_model_promotion_demotion_cost): Ditto.
4831 (vect_model_store_cost): Ditto.
4832 (vect_get_store_cost): Ditto.
4833 (vect_model_load_cost): Ditto.
4834 (vect_get_load_cost): Ditto.
4835 (vect_init_vector_1): Ditto.
4836 (vect_get_vec_def_for_operand): Ditto.
4837 (vect_finish_stmt_generation): Ditto.
4838 (vectorizable_call): Ditto.
4839 (vectorizable_conversion): Ditto.
4840 (vectorizable_assignment): Ditto.
4841 (vectorizable_shift): Ditto.
4842 (vectorizable_operation): Ditto.
4843 (vectorizable_store): Ditto.
4844 (vectorizable_load): Ditto.
4845 (vectorizable_condition): Ditto.
4846 (vect_analyze_stmt): Ditto.
4847 (vect_transform_stmt): Ditto.
4848 (vect_is_simple_use): Ditto.
4849 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
4850 (vect_can_advance_ivs_p): Ditto.
4851 (vect_update_ivs_after_vectorizer): Ditto.
4852 (vect_do_peeling_for_loop_bound): Ditto.
4853 (vect_gen_niters_for_prolog_loop): Ditto.
4854 (vect_update_inits_of_drs): Ditto.
4855 (vect_create_cond_for_alias_checks): Ditto.
4856 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
4857 (vect_build_slp_tree_1): Ditto.
4858 (vect_supported_load_permutation_p): Ditto.
4859 (vect_analyze_slp_instance): Ditto.
4860 (vect_analyze_slp): Ditto.
4861 (vect_make_slp_decision): Ditto.
4862 (vect_detect_hybrid_slp): Ditto.
4863 (vect_bb_vectorization_profitable_p): Ditto.
4864 (vect_slp_analyze_bb_1): Ditto.
4865 (vect_update_slp_costs_according_to_vf): Ditto.
4866 (vect_get_mask_element): Ditto.
4867 (vect_transform_slp_perm_load): Ditto.
4868 (vect_schedule_slp_instance): Ditto.
4869 (vect_schedule_slp): Ditto.
4870 (vect_slp_transform_bb): Ditto.
4871 * profile.c (read_profile_edge_counts): Ditto.
4872 (compute_branch_probabilities): Ditto.
4873 * coverage.c (get_coverage_counts): Ditto.
4874
46f851f3
DN
48752013-09-16 Diego Novillo <dnovillo@google.com>
4876
7a5911d3 4877 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 4878
1632a686
JH
48792013-09-16 Jan Hubicka <jh@suse.cz>
4880
4881 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 4882 abstract functions; for static functions check the presence of body.
1632a686 4883
828e70c1
JG
48842013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4885
4886 * config/aarch64/aarch64-simd-builtins.def (fma): New.
4887 * config/aarch64/aarch64-simd.md
4888 (aarch64_mla_elt<mode>): New.
4889 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4890 (aarch64_mls_elt<mode>): Likewise.
4891 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4892 (aarch64_fma4_elt<mode>): Likewise.
4893 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4894 (aarch64_fma4_elt_to_128v2df): Likewise.
4895 (aarch64_fma4_elt_to_64df): Likewise.
4896 (fnma<mode>4): Likewise.
4897 (aarch64_fnma4_elt<mode>): Likewise.
4898 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4899 (aarch64_fnma4_elt_to_128v2df): Likewise.
4900 (aarch64_fnma4_elt_to_64df): Likewise.
4901 * config/aarch64/iterators.md (VDQSF): New.
4902 * config/aarch64/arm_neon.h
4903 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
4904 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
4905
779aea46
JG
49062013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4907
4908 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
4909 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4910 (aarch64_mul3_elt_to_128df): Likewise.
4911 (aarch64_mul3_elt_to_64v2df): Likewise.
4912 * config/aarch64/iterators.md (VEL): Also handle DFmode.
4913 (VMUL): New.
4914 (VMUL_CHANGE_NLANES) Likewise.
4915 (h_con): Likewise.
4916 (f): Likewise.
4917 * config/aarch64/arm_neon.h
4918 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
4919
a407a750
JG
49202013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4921
4922 * config/aarch64/arm_neon.h
4923 (vcvtx_high_f32_f64): Fix parameters.
4924
f77e2d2d 49252013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 4926 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 4927
a5bd71fa 4928 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 4929
36875e8f
RB
49302013-09-16 Richard Biener <rguenther@suse.de>
4931
4932 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
4933 (dot_rdg_1): Handle control_dd.
4934 (create_edge_for_control_dependence): New function.
4935 (create_rdg_edges): Add control dependences if asked for.
4936 (build_rdg): Likewise.
4937 (generate_loops_for_partition): If there are not necessary
4938 control stmts remove all their dependencies.
4939 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
4940 (distribute_loop): Pass on control dependences.
4941 (tree_loop_distribution): Compute control dependences and remove
4942 restriction on number of loop nodes.
4943
96e24d49
JJ
49442013-09-16 Jakub Jelinek <jakub@redhat.com>
4945
4946 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
4947 for internal calls.
4948
40dbb05c
RS
49492013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
4950
4951 * cse.c (try_const_anchors): Punt on CC modes.
4952
97191ad0
JBG
49532013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4954
4955 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
4956
403a3fb7
JDA
49572013-09-14 John David Anglin <danglin@gcc.gnu.org>
4958
4959 PR target/58382
4960 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
4961 calls to word_mode.
4962
fb5610fb
IS
49632013-09-14 Iain Sandoe <iain@codesourcery.com>
4964
4965 PR target/48094
4966 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
4967 seen.
4968 (darwin_objc1_section): Likewise.
fb5610fb
IS
4969 (darwin_file_end): Emit Image Info section when required.
4970
afdec9bd
JH
49712013-09-14 Jan Hubicka <jh@suse.cz>
4972
4973 * tree-into-ssa.c (gate_into_ssa): New.
4974 (pass_data_build_ssa): Use it.
4975 * cgraph.h (expand_thunk): Update prototype.
4976 * cgraphunit.c (analyze_function): Expand thunks early.
4977 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
4978 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
4979 set lowered flag; do not add new function.
4980 (assemble_thunks_and_aliases): Update.
4981 * tree-ssa.c (gate_init_datastructures): New gate.
4982 (pass_data_init_datastructures): Use it.
4983
492d1e0a
IS
49842013-09-14 Iain Sandoe <iain@codesourcery.com>
4985
4986 PR target/58269
f77e2d2d 4987 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
4988 xmm register set described in the psABI.
4989
d13c6b70
EG
49902013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
4991
f77e2d2d
JBG
4992 * dwarf2out.c (should_emit_struct_debug): Add check
4993 for type_decl variable is not NULL.
d13c6b70 4994
88b0e79e
JC
49952013-09-13 Jacek Caban <jacek@codeweavers.com>
4996
4997 * config.gcc: Use new winnt-c.c target hooks
4998 * config/t-winnt: New file
4999 * config/winnt-c.c: New file
5000 * doc/tm.texi.in: Document new hook
5001 * doc/tm.texi: Regenerated
5002
19ba6aab
JH
50032013-09-13 Jan Hubicka <jh@suse.cz>
5004
5005 PR middle-end/58094
5006 * ipa-inline.c (check_callers): New function.
5007 (check_caller_edge): Remove.
5008 (want_inline_function_to_all_callers_p): Also permit alises that are
5009 called dirrectly.
5010 (inline_to_all_callers): Terminate the walk when devirtualization
5011 introduce new calls.
5012
a93c18c8
JH
50132013-09-13 Jan Hubicka <jh@suse.cz>
5014
5015 * ipa-inline-analysis.c (struct growth_data): Add node.
5016 (do_estimate_growth_1): Fix detection of recursion.
5017
f3b331d1
JJ
50182013-09-13 Jakub Jelinek <jakub@redhat.com>
5019
5020 PR tree-optimization/58392
5021 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5022 to avoid shadowing of outer loop variable. If
5023 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5024 replace_by_duplicate_decl simduid of loops that have it set and
5025 set dest_cfun->has_simduid_loops and/or
5026 dest_cfun->has_force_vect_loops.
5027 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5028 instead of maybe_lookup_decl.
5029 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5030 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5031 call. Copy over force_vect and copy and remap simduid. Set
5032 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5033 (copy_cfg_body): Remove blocks_to_copy argument. Use
5034 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5035 caller. Don't set cfun->has_simduid_loops and/or
5036 cfun->has_force_vect_loops here.
5037 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5038 caller.
5039 (expand_call_inline, tree_function_versioning): Adjust copy_body
5040 callers.
5041
ae6d0907
MJ
50422013-09-13 Martin Jambor <mjambor@suse.cz>
5043
5044 PR bootstrap/58388
5045 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5046 the assert if the edge was a speculative one.
5047
2fd5894f
RB
50482013-09-13 Richard Biener <rguenther@suse.de>
5049
5050 * tree-data-ref.h (known_dependences_p): Move here ...
5051 * tree-loop-distribution.c (known_dependences_p): ... from here.
5052 (dump_rdg_component, debug_rdg_component): Remove.
5053 (dump_rdg): Adjust.
5054 (generate_loops_for_partition): Use gimple_uid instead of
5055 relying on matching stmt visit order.
5056 (rdg_build_partitions): Take starting stmt vector.
5057 (ldist_gen): Merge into ...
5058 (distribute_loop): ... this function. Do not compute starting
5059 vertices vector.
5060 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5061
86eb4bd7
KT
50622013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5063
5064 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5065 Set type attribute correctly. Set predicable_short_it attribute.
5066 (cmpsi_shiftsi): Remove %? from output template.
5067
83a95546
RB
50682013-09-13 Richard Biener <rguenther@suse.de>
5069
5070 * tree-loop-distribution.c (struct rdg_component,
5071 rdg_defs_used_in_other_loops_p, free_rdg_components,
5072 rdg_build_components): Remove.
5073 (stmts_from_loop): Do not record virtual PHIs.
5074 (generate_loops_for_partition): Skip virtual PHIs.
5075 (build_rdg_partition_for_component): Rename to ...
5076 (build_rdg_partition_for_vertex): ... this and adjust.
5077 (rdg_build_partitions): Take a vector of starting vertices
5078 instead of components. Remove unnecessary leftover handling.
5079 (ldist_gen): Do not build components or record other stores.
5080 (distribute_loop): Do not distribute loops containing stmts
5081 with side-effects.
5082
c0ecf7f1
CB
50832013-09-13 Christian Bruel <christian.bruel@st.com>
5084
5085 PR target/58314
5086 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5087
34f56efc
KT
50882013-09-13 Kai Tietz <ktietz@redhat.com>
5089
740f2bf3
KT
5090 * config.gcc: Separate cases for mingw and cygwin targets,
5091 and add 64-bit cygwin target case.
5092
34f56efc
KT
5093 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5094 dll-export inline-functions.
5095 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5096
5097
50982013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5099
5100 PR middle-end/58387
5101 Revert:
5102 2013-09-06 Jeff Law <law@redhat.com>
5103
5104 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5105 edge implied equivalences into successor phis.
5106
aadb52ad
DD
51072013-09-12 DJ Delorie <dj@redhat.com>
5108
5109 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5110 separators.
5111
90ae7019
BM
51122013-09-12 Brooks Moses <bmoses@google.com>
5113
5114 PR driver/42955
5115 * Makefile.in: Do not install driver binaries in $(target)/bin.
5116
17b2557c
DD
51172013-09-12 DJ Delorie <dj@redhat.com>
5118
c5215a9b
DD
5119 * config/rl78/rl78.opt (mrelax): New.
5120 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5121 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5122
17b2557c
DD
5123 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5124 between SP and FP.
5125 (rl78_expand_epilogue): Likewise.
5126
ecafcf05
VM
51272013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5128
5129 PR middle-end/58335
84f6d9fa 5130 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5131 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5132 pointer elimination with using remove_reg_equal_offset_note.
5133
8369f38a
DD
51342013-09-12 DJ Delorie <dj@redhat.com>
5135
f6a83b4a
DD
5136 * config/msp430/: New port.
5137 * config.gcc (msp430): Added.
5138 * doc/invoke.texi: Document MSP430 options.
5139 * doc/install.texi: Document msp430-elf
5140 * doc/md.texi: Document msp430-elf
5141 * doc/contrib.texi: Document msp430-elf
5142
8369f38a
DD
5143 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5144 PSImode.
5145
a854f856
MJ
51462013-09-12 Martin Jambor <mjambor@suse.cz>
5147
5148 PR ipa/58389
5149 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5150 reference descriptor is NULL.
5151 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5152 edge to NULL.
5153
b12ebd96
AM
51542013-09-12 Andrew MacLeod <amacleod@redhat.com>
5155
5156 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5157 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5158 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5159 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5160 make_temp_ssa_name): move to tree-ssanames.h
5161 * tree-ssa-alias.h: Move prototype.
5162 * tree-ssa.h: Include tree-ssanames.h.
5163 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5164 * tree-ssanames.h: New. Move items from tree-flow*.h
5165 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5166
e1fb4ad3
RB
51672013-09-12 Richard Biener <rguenther@suse.de>
5168
5169 PR tree-optimization/58404
5170 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5171 propagate non-invariant addresses into dereferences wrapped
5172 in component references.
5173
154c9188
RB
51742013-09-12 Richard Biener <rguenther@suse.de>
5175
5176 PR tree-optimization/58402
5177 * passes.def: Move pass_late_warn_uninitialized later.
5178
7a300452
AM
51792013-09-12 Andrew MacLeod <amacleod@redhat.com>
5180
5181 * tree-ssa.h: New. Move content from tree-flow.h and
5182 tree-flow-inline.h.
5183 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5184 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5185 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5186 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5187 tree-ssa.h.
5188 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5189 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5190 to...
5191 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5192 * tree.h: Move prototype to tree-ssa.h.
5193 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5194 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5195 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5196 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5197 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5198 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5199 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5200 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5201 graphite-blocking.c, graphite-clast-to-gimple.c,
5202 graphite-dependences.c, graphite-interchange.c,
5203 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5204 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5205 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5206 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5207 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5208 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5209 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5210 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5211 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5212 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5213 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5214 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5215 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5216 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5217 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5218 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5219 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5220 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5221 value-prof.c, var-tracking.c,
5222 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5223
97463b2b
RB
52242013-09-12 Richard Biener <rguenther@suse.de>
5225
5226 PR tree-optimization/58396
5227 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5228 (build_rdg): Take a loop-nest parameter, fix memleaks.
5229 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5230
80ecd89d
YR
52312013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5232
5233 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5234 for SLM.
5235
893e85fa
CM
52362013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5237
5238 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5239 The FMA instruction names should have a 'v' prefix.
5240
174ec470
RB
52412013-09-12 Richard Biener <rguenther@suse.de>
5242
5243 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5244 (dot_rdg): Use popen instead of system in optional code.
5245 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5246 (already_processed_vertex_p): Adjust.
5247 (has_anti_or_output_dependence, predecessor_has_mem_write,
5248 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5249 rdg_flag_uses): Remove.
5250 (rdg_flag_vertex): Simplify.
5251 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5252 remove recursion.
5253 (build_rdg_partition_for_component): Process the first vertex
5254 of a component only.
5255 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5256
38c89763
AM
52572013-09-12 Alan Modra <amodra@gmail.com>
5258
5259 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5260
3e3d9d17
DD
52612013-09-11 DJ Delorie <dj@redhat.com>
5262 Nick Clifton <nickc@redhat.com>
5263
5264 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5265 (rl78_stack_based_mem): New.
5266 * config/rl78/constraints.md (Iv08): New.
5267 (Iv16): New.
5268 (Iv24): New.
5269 (Is09): New.
5270 (Is17): New.
5271 (Is25): New.
5272 (ISsi): New.
5273 (IShi): New.
5274 (ISqi): New.
5275 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5276 (movhi): Likewise.
5277 (movsi): Change from expand to insn-and-split.
5278 (ashrsi3): Clobber AX.
5279 (lshrsi3): New.
5280 (ashlsi3): New.
5281 (cbranchsi4): New.
5282 * config/rl78/rl78.md (CC_REG): Fix.
5283 (addsi3): Allow memory and immediate operands.
5284 (addsi3_internal): Split into...
5285 (addsi3_internal_virt): ...new, and ...
5286 (addsi3_internal_real): ...new.
5287 (subsi): New.
5288 (subsi3_internal_virt): New.
5289 (subsi3_internal_real): New.
5290 (mulsi3): Add memory operand.
5291 (mulsi3_rl78): Likewise.
5292 (mulsi3_g13): Likewise.
5293 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5294 (cbranchqi4_real): Add more constraint options.
5295 (cbranchhi4_real): Expand pattern.
5296 (cbranchhi4_real_signed): New.
5297 (cbranchhi4_real_inverted): New.
5298 (cbranchsi4_real_lt): New.
5299 (cbranchsi4_real_ge): New.
5300 (cbranchsi4_real_signed): New.
5301 (cbranchsi4_real): New.
5302 (peephole2): New.
893e85fa
CM
5303 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5304 constant shifts.
3e3d9d17
DD
5305 (lshrsi3_virt): Likewise.
5306 (ashlsi3_virt): Likewise.
5307 (cbranchqi4_virt_signed): New.
5308 (cbranchhi4_virt_signed): New.
5309 (cbranchsi4_virt): New.
5310 * config/rl78/rl78.c: Whitespace fixes throughout.
5311 (move_elim_pass): New.
5312 (pass_data_rl78_move_elim): New.
5313 (pass_rl78_move_elim): New.
5314 (make_pass_rl78_move_elim): New.
5315 (rl78_devirt_info): Run devirt earlier.
5316 (rl78_move_elim_info): New.
5317 (rl78_asm_file_start): Register it.
5318 (rl78_split_movsi): New.
5319 (rl78_as_legitimate_address): Allow virtual base registers when
5320 appropriate.
5321 (rl78_addr_space_convert): Remove spurious debug stuff.
5322 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5323 (rl78_print_operand): More cases for not printing '#'.
5324 (rl78_expand_compare): Remove most of the logic.
5325 (content_memory): New.
5326 (clear_content_memory): New.
5327 (get_content_index): New.
5328 (get_content_name): New.
5329 (display_content_memory): New.
5330 (update_content): New.
5331 (record_content): New.
5332 (already_contains): New.
5333 (insn_ok_now): Re-recog insns with virtual registers.
5334 (add_postponed_content_update): New.
5335 (process_postponed_content_update): New.
5336 (gen_and_emit_move): New.
893e85fa
CM
5337 (transcode_memory_rtx): Record new location content.
5338 Use gen_and_emit_move.
3e3d9d17
DD
5339 (force_into_acc): New.
5340 (move_to_acc): Use gen_and_emit_move.
5341 (move_from_acc): Likewise.
5342 (move_acc_to_reg): Likewise.
5343 (move_to_x): Likewise.
5344 (move_to_hl): Likewise.
5345 (move_to_de): Likewise.
5346 (rl78_alloc_physical_registers_op1): Record location content.
5347 (has_constraint): New.
5348 (rl78_alloc_physical_registers_op2): Record location content.
5349 Optimize use of HL.
5350 (rl78_alloc_physical_registers_ro1): Likewise.
5351 (rl78_alloc_physical_registers_cmp): Likewise.
5352 (rl78_alloc_physical_registers_umul): Likewise.
5353 (rl78_alloc_address_registers_macax): New.
5354 (rl78_alloc_physical_registers): Initialize and set location
5355 content memory as needed.
5356 (rl78_reorg): Make sure split2 is called.
5357 (rl78_rtx_costs): New.
5358
088845a5
RS
53592013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5360
5361 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5362 for (not (neg ...)) and (neg (not ...)) cases.
5363
5c2961cf
RB
53642013-09-11 Richard Biener <rguenther@suse.de>
5365
5366 PR middle-end/58377
5367 * passes.def: Split critical edges before late uninit warning passes.
5368 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5369
427e6a14
JJ
53702013-09-11 Jakub Jelinek <jakub@redhat.com>
5371
5372 PR tree-optimization/58385
5373 * fold-const.c (build_range_check): If both low and high are NULL,
5374 use omit_one_operand_loc to preserve exp side-effects.
5375
df45c0cc
KT
53762013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5377
5378 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5379
80ab0b19
RB
53802013-09-11 Richard Biener <rguenther@suse.de>
5381
5382 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5383 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5384 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5385 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5386 stmts_from_loop, known_dependences_p, build_empty_rdg,
5387 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5388 * tree-loop-distribution.c: ... here.
5389 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5390 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5391 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5392 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5393 * tree-loop-distribution.c: ... here.
5394 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5395 (struct partition_s): Add loops member.
5396 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5397 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5398 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5399
85a77221
AI
54002013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5401 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5402 Sergey Lega <sergey.s.lega@intel.com>
5403 Anna Tikhonova <anna.tikhonova@intel.com>
5404 Ilya Tocar <ilya.tocar@intel.com>
5405 Andrey Turetskiy <andrey.turetskiy@intel.com>
5406 Ilya Verbin <ilya.verbin@intel.com>
5407 Kirill Yukhin <kirill.yukhin@intel.com>
5408 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5409
5410 * config/i386/constraints.md (k): New.
5411 (Yk): Ditto.
5412 * config/i386/i386.c (const regclass_map): Add new mask registers.
5413 (dbx_register_map): Ditto.
5414 (dbx64_register_map): Ditto.
5415 (svr4_dbx_register_map): Ditto.
5416 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5417 disabled.
5418 (ix86_preferred_reload_class): Disable constants for mask registers.
5419 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5420 (ix86_hard_regno_mode_ok): Support new mask registers.
5421 (x86_order_regs_for_local_alloc): Ditto.
5422 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5423 (FIXED_REGISTERS): Add new mask registers.
5424 (CALL_USED_REGISTERS): Ditto.
5425 (REG_ALLOC_ORDER): Ditto.
5426 (VALID_MASK_REG_MODE): New.
5427 (FIRST_MASK_REG): Ditto.
5428 (LAST_MASK_REG): Ditto.
5429 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5430 (MAYBE_MASK_CLASS_P): New.
5431 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5432 (REG_CLASS_CONTENTS): Ditto.
5433 (MASK_REGNO_P): New.
5434 (ANY_MASK_REG_P): Ditto.
5435 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5436 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5437 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5438 mask registers.
85a77221
AI
5439 (attribute "type"): Add mskmov, msklog.
5440 (attribute "length_immediate"): Support them.
5441 (attribute "memory"): Ditto.
5442 (attribute "prefix_0f"): Ditto.
5443 (*movhi_internal): Support new mask registers.
5444 (*movqi_internal): Ditto.
5445 (define_split): Split out clobber pattern is a logic
5446 insn on mask registers.
5447 (*k<logic><mode>): New.
5448 (*andhi_1): Extend to support mask regs.
5449 (*andqi_1): Extend to support mask regs.
5450 (kandn<mode>): New.
5451 (define_split): Split and-not to and and not if operands
5452 are not mask regs.
5453 (*<code><mode>_1): Separate HI mode to new pattern...
5454 (*<code>hi_1): This.
5455 (*<code>qi_1): Extend to support mask regs.
5456 (kxnor<mode>): New.
5457 (kortestzhi): Ditto.
5458 (kortestchi): Ditto.
5459 (kunpckhi): Ditto.
5460 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5461 (*one_cmplhi2_1): ...Here, now with mask registers support.
5462 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5463 (HI/QImode arithmetics splitter): Don't split if mask registers
5464 are used.
85a77221
AI
5465 (HI/QImode not splitter): Ditto.
5466 * config/i386/predicated.md (mask_reg_operand): New.
5467 (general_reg_operand): Ditto.
5468
7e570821
AI
54692013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5470
5471 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5472 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5473
9e1376e9
JL
54742013-09-10 Jeff Law <law@redhat.com>
5475
5476 PR tree-optimization/58380
5477 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5478 of threading through a buried loop header.
5479
5480 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5481 return value for single successor case.
5482
5bbcb888
JH
54832013-09-10 Jan Hubicka <jh@suse.cz>
5484
5485 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5486
d742ff4b
RE
54872013-09-10 Richard Earnshaw <rearnsha@arm.com>
5488
5489 PR target/58361
5490 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5491 support conditional execution.
5492 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5493
b0681c9e
VM
54942013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5495
5496 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5497 constraint pass.
f77e2d2d
JBG
5498 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5499 Check destination too to check move insn.
b0681c9e 5500 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5501 changed its allocation and the optional reload was inherited on last
5502 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5503 (lra_undo_inheritance): Add check that inherited pseudo still in
5504 memory.
5505
c9b1c957
JG
55062013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5507
5508 * config/aarch64/aarch64.md (generic_sched): New.
5509 * config/aarch64/aarch64-generic.md (load): Make conditional
5510 on generic_sched attribute.
5511 (nonload): Likewise.
5512
82d618d3
JH
55132013-09-10 Jan Hubicka <jh@suse.cz>
5514
5515 * lto-cgraph.c: Include ipa-utils.h.
5516 (compute_ltrans_boundary): Also add possible targets into the boundary.
5517
668b6894
JH
55182013-09-10 Jan Hubicka <jh@suse.cz>
5519
5520 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5521 VAR_DECL of vtable rather than full expression.
5522
4f90d3e0
JH
55232013-09-10 Jan Hubicka <jh@suse.cz>
5524 Paolo Carlini <paolo.carlini@oracle.com>
5525
5526 * cgraphunit.c (analyze_functions): Save input_location, set it
5527 to UNKNOWN_LOCATION and restore it at the end.
5528
39e87baf
MJ
55292013-09-10 Martin Jambor <mjambor@suse.cz>
5530
5531 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5532 represented by a thunk.
5533
581aedec
JL
55342013-09-10 Jeff Law <law@redhat.com>
5535
5536 PR tree-optimization/58343
5537 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5538 jump threading requests through loop headers buried in the middle
5539 of a jump threading path.
5540
5541 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5542 in return value/type.
5543
84cf4ab6
JJ
55442013-09-10 Jakub Jelinek <jakub@redhat.com>
5545
5546 PR rtl-optimization/58365
5547 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5548 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5549 it differs.
5550
447dd906
RB
55512013-09-10 Richard Biener <rguenther@suse.de>
5552
5553 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5554 * tree-data-ref.c (create_rdg_vertices): Collect all data
5555 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5556 (build_rdg): Compute data references only once. Maintain lifetime
5557 of data references and data dependences from within RDG.
447dd906
RB
5558 (free_rdg): Free dependence relations.
5559 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5560 inventing extra dependences.
5561 (distribute_loop): Update for RDG API changes.
5562
f14a7324
KT
55632013-09-10 Kai Tietz <ktietz@redhat.com>
5564
5565 * doc/invoke.texi (fms-extensions): Document changed
5566 behavior for ms-abi targets.
5567 * config/i386/i386.c (ix86_option_override_internal):
5568 Set default value of option -fms-extension for ms-abi targets.
5569
ff131f26
MZ
55702013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5571
5572 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5573
33115a2c
AM
55742013-09-10 Alan Modra <amodra@gmail.com>
5575
5576 PR target/58330
5577 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5578
b6872a13
AM
55792013-09-10 Alan Modra <amodra@gmail.com>
5580
5581 * config/rs6000/predicates.md (add_cint_operand): New.
5582 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5583 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5584 using add_cint_operand.
5585 (largetoc_high_plus_aix): Likewise.
5586
28fd0ba2
JJ
55872013-09-09 Jakub Jelinek <jakub@redhat.com>
5588
5589 PR tree-optimization/58364
5590 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5591 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5592 the current range can't be an unconditional true or false.
5593
552d99fe
JG
55942013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5595
5596 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5597
f43245d1
UB
55982013-09-09 Uros Bizjak <ubizjak@gmail.com>
5599
5600 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5601
c9b0866a
PC
56022013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5603
5604 PR c++/43452
5605 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5606
78d8b9f0
IB
56072013-09-09 Ian Bolton <ian.bolton@arm.com>
5608
5609 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5610 NO_REGS for immediate that can't be moved directly into FP_REGS.
5611
274b2532
KT
56122013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5613
5614 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5615 comparison with negated operand.
c9b0866a
PC
5616 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5617 RTL form.
274b2532 5618
467a3558
RB
56192013-09-09 Richard Biener <rguenther@suse.de>
5620
5621 PR middle-end/58326
5622 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5623 of a subloop record all its block as affecting loop-closed SSA form.
5624
088c5368
RS
56252013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5626
5627 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5628 of an rtx/bitpos pair.
5629 (store_fixed_bit_field): Update accordingly.
5630
69db2d57
RS
56312013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5632
5633 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5634 GEN_INT.
5635 * builtins.c (expand_errno_check): Likewise.
5636 * dwarf2cfi.c (init_return_column_size): Likewise.
5637 * except.c (sjlj_mark_call_sites): Likewise.
5638 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5639 * lra-constraints.c (emit_inc): Likewise.
5640 * ree.c (combine_set_extension): Likewise.
5641 * regmove.c (fixup_match_2): Likewise.
5642 * reload1.c (inc_for_reload): Likewise.
5643
69a59f0f
RS
56442013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5645
5646 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5647 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5648 Use gen_int_mode with the mode of the associated simplify_* call.
5649 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5650 * expmed.c (expand_shift_1): Likewise.
5651 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5652 * loop-iv.c (iv_number_of_iterations): Likewise.
5653 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5654 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5655
2f1cd2eb
RS
56562013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5657
5658 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5659 of the associated expand_* call.
5660 (asan_emit_stack_protection): Likewise.
5661 * builtins.c (round_trampoline_addr): Likewise.
5662 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5663 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5664 (emit_store_flag): Likewise.
5665 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5666 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5667 Likewise.
5668 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5669 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5670 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5671 * modulo-sched.c (generate_prolog_epilog): Likewise.
5672 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5673 (expand_ctz, expand_ffs, expand_unop): Likewise.
5674
4789c0ce
RS
56752013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5676
5677 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5678 of the associated gen_rtx_* call.
5679 * caller-save.c (init_caller_save): Likewise.
5680 * combine.c (find_split_point, make_extraction): Likewise.
5681 (make_compound_operation): Likewise.
5682 * dwarf2out.c (mem_loc_descriptor): Likewise.
5683 * explow.c (plus_constant, probe_stack_range): Likewise.
5684 * expmed.c (expand_mult_const): Likewise.
5685 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5686 * reload1.c (init_reload): Likewise.
5687 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5688 * var-tracking.c (adjust_mems): Likewise.
5689 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5690 rather than gen_rtx_fmt_ee.
5691
a811f7cb
JH
56922013-09-09 Jan Hubicka <jh@suse.cz>
5693
5694 PR middle-end/58294
5695 * value-prof.c (gimple_ic): Copy also abnormal edges.
5696
dcad1dd3
RS
56972013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5698
5699 * asan.c (asan_shadow_cst): Use gen_int_mode.
5700
daf5c770
JH
57012013-09-08 Jan Hubicka <jh@suse.cz>
5702
5703 * ipa-profile.c: Add toplevel comment.
5704 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5705 (contains_hot_call_p): New function.
5706 (ipa_propagate_frequency): Set frequencies based on counts when
5707 profile is read.
5708 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5709 profile; do not tamper with profile after inlining if it is read.
5710
a12cd2db
JH
57112013-09-08 Jan Hubicka <jh@suse.cz>
5712
5713 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5714 speculative edges.
5715
856a1588
JH
57162013-09-08 Jan Hubicka <jh@suse.cz>
5717
5718 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5719 summary generation.
5720
4f4b0b73
JL
57212013-09-08 Jeff Law <law@redhat.com>
5722
5723 PR bootstrap/58340
5724 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5725 of 'found'.
5726
cc4029ee
AK
57272013-09-08 Andi Kleen <ak@linux.intel.com>
5728
5729 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5730
7b395ddd
JH
57312013-09-08 Jan Hubicka <jh@suse.cz>
5732
5733 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5734
c34c46dd
RS
57352013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5736
5737 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5738 for non-debug insns.
5739 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5740 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5741 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5742 accordingly.
5743
3462aa02
JH
57442013-09-08 Jan Hubicka <jh@suse.cz>
5745
5746 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5747 targets and devirtualize to BUILT_IN_UNREACHABLE.
5748 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5749 * ipa.c (walk_polymorphic_call_targets): New function.
5750 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5751 functions; use the new timevar.
5752 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5753 was removed from the program.
5754 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5755 not consider it in the walk when its vtable is dead.
5756 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5757 record_binfo.
5758 (devirt_variable_node_removal_hook): New function.
5759 (possible_polymorphic_call_targets): Also register
5760 devirt_variable_node_removal_hook.
5761 (ipa_devirt): Do not do non-speculative devirtualization.
5762 (gate_ipa_devirt): One execute if devirtualizing speculatively.
5763
26e5b0fd
JH
57642013-09-08 Jan Hubicka <jh@suse.cz>
5765
5766 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
5767 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
5768 varpool_remove_variable_insertion_hook): Declare.
5769 * varpool.c (varpool_node_hook_list): New structure.
5770 (first_varpool_node_removal_hook,
5771 first_varpool_variable_insertion_hook): New variables.
5772 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
5773 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
5774 varpool_remove_variable_insertion_hook,
5775 varpool_call_variable_insertion_hooks): New functions.
5776 (varpool_remove_node): Use it.
5777
97f1f314 57782013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 5779
97f1f314
PC
5780 PR c++/54941
5781 * diagnostic.c (diagnostic_build_prefix): When s.file is
5782 "<built-in>" don't output line and column numbers.
6df2ca09 5783
bcb650cb
JH
57842013-09-06 Jan Hubicka <jh@suse.cz>
5785
5786 * cgraphunit.c (expand_thunk): Get body before touching arguments.
5787 * lto-streamer-out.c: Stream thunks, too.
5788 * lto-streamer-in.c (input_function): Pop cfun here
5789 (lto_read_body): Instead of here.
5790
87f3fea8
CT
57912013-09-06 Caroline Tice <cmtice@google.com>
5792
5793 * doc/install.texi: Add documentation for the --enable-vtable-verify
5794 and the --disable-libvtv configure options.
5795
5e8d9b45
JL
57962013-09-06 Jeff Law <law@redhat.com>
5797
5798 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5799 edge implied equivalences into successor phis.
5800
3a001aff
JR
58012013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
5802
5803 * resource.c (mark_referenced_resources): Handle COND_EXEC.
5804
58052013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
5806
5807 * resource.c (mark_target_live_regs): Compute resources taking
5808 into account if a call is predicated or not.
5809
2c641f8b
EB
58102013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5811
5812 * toplev.c (output_stack_usage): Be prepared for suffixes created by
5813 the compiler in the function names.
5814
a81b0a3d
JH
58152013-09-06 Jan Hubicka <jh@suse.cz>
5816
5817 PR middle-end/58094
5818 * ipa-inline.c (has_caller_p): New function.
5819 (want_inline_function_to_all_callers_p): Use it.
5820 (sum_callers, inline_to_all_callers): Break out from ...
5821 (ipa_inline): ... here.
5822
68e4ca7e
JH
58232013-09-06 Jan Hubicka <jh@suse.cz>
5824
2c641f8b
EB
5825 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
5826 only when AVX is enabled.
68e4ca7e 5827
3c73e2fe
JG
58282013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5829
5830 * config/aarch64/aarch64.md
5831 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
5832 is fpsimd_<load/store>2.
5833 (load_pair<mode>): Likewise.
5834 (store_pair<mode>): Likewise.
5835
8c48eecd
JG
58362013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5837
5838 * config/arm/types.md (type): Add "mrs" type.
5839 * config/aarch64/aarch64.md
5840 (aarch64_load_tp_hard): Make type "mrs".
5841 * config/arm/arm.md
5842 (load_tp_hard): Make type "mrs".
5843 * config/arm/cortex-a15.md: Update with new attributes.
5844 * config/arm/cortex-a5.md: Update with new attributes.
5845 * config/arm/cortex-a53.md: Update with new attributes.
5846 * config/arm/cortex-a7.md: Update with new attributes.
5847 * config/arm/cortex-a8.md: Update with new attributes.
5848 * config/arm/cortex-a9.md: Update with new attributes.
5849 * config/arm/cortex-m4.md: Update with new attributes.
5850 * config/arm/cortex-r4.md: Update with new attributes.
5851 * config/arm/fa526.md: Update with new attributes.
5852 * config/arm/fa606te.md: Update with new attributes.
5853 * config/arm/fa626te.md: Update with new attributes.
5854 * config/arm/fa726te.md: Update with new attributes.
5855
9ea187a5
JG
58562013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5857
5858 * config/aarch64/aarch64.md
5859 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
5860 (*movtf_aarch64): Likewise.
5861 * config/arm/arm.md
5862 (thumb1_movdi_insn): Use "multiple" for type where more than one
5863 instruction is used for a move.
5864 (*arm32_movhf): Likewise.
5865 (*thumb_movdf_insn): Likewise.
5866
292b89b3
JG
58672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5868
5869 * config/arm/types.md (type): Rename fcpys to fmov.
5870 * config/arm/vfp.md
5871 (*arm_movsi_vfp): Rename type fcpys as fmov.
5872 (*thumb2_movsi_vfp): Likewise
5873 (*movhf_vfp_neon): Likewise
5874 (*movhf_vfp): Likewise
5875 (*movsf_vfp): Likewise
5876 (*thumb2_movsf_vfp): Likewise
5877 (*movsfcc_vfp): Likewise
5878 (*thumb2_movsfcc_vfp): Likewise
5879 * config/aarch64/aarch64-simd.md
5880 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
5881 * config/aarch64/aarch64.md
5882 (*movsi_aarch64): Replace type mov_reg with fmovs.
5883 (*movdi_aarch64): Likewise
5884 (*movsf_aarch64): Likewise
5885 (*movdf_aarch64): Likewise
5886 * config/arm/arm.c
5887 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
5888 * config/arm/iwmmxt.md
5889 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
5890 * config/arm/arm1020e.md: Update with new attributes.
5891 * config/arm/cortex-a15-neon.md: Update with new attributes.
5892 * config/arm/cortex-a5.md: Update with new attributes.
5893 * config/arm/cortex-a53.md: Update with new attributes.
5894 * config/arm/cortex-a7.md: Update with new attributes.
5895 * config/arm/cortex-a8-neon.md: Update with new attributes.
5896 * config/arm/cortex-a9.md: Update with new attributes.
5897 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5898 * config/arm/cortex-r4f.md: Update with new attributes.
5899 * config/arm/marvell-pj4.md: Update with new attributes.
5900 * config/arm/vfp11.md: Update with new attributes.
5901
6a24a83e
JG
59022013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5903
5904 * config/aarch64/aarch64.md
5905 (*madd<mode>): Fix type attribute.
5906 (*maddsi_uxtw): Likewise.
5907 (*msub<mode>): Likewise.
5908 (*msubsi_uxtw): Likewise.
5909 (<su_optab>maddsidi4): Likewise.
5910 (<su_optab>msubsidi4): Likewise.
5911
b86923f0
JG
59122013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5913
5914 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
5915 * config/arm/arm.md (core_cycles): Remove fdiv.
5916 * config/arm/vfp.md:
5917 (*sqrtsf2_vfp): Update for attribute changes.
5918 (*sqrtdf2_vfp): Likewise.
5919 * config/aarch64/aarch64.md:
5920 (sqrt<mode>2): Update for attribute changes.
5921 * config/arm/arm1020e.md: Update with new attributes.
5922 * config/arm/cortex-a15-neon.md: Update with new attributes.
5923 * config/arm/cortex-a5.md: Update with new attributes.
5924 * config/arm/cortex-a53.md: Update with new attributes.
5925 * config/arm/cortex-a7.md: Update with new attributes.
5926 * config/arm/cortex-a8-neon.md: Update with new attributes.
5927 * config/arm/cortex-a9.md: Update with new attributes.
5928 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5929 * config/arm/cortex-r4f.md: Update with new attributes.
5930 * config/arm/marvell-pj4.md: Update with new attributes.
5931 * config/arm/vfp11.md: Update with new attributes.
5932
7b49c9e1
JG
59332013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5934
5935 * config/arm/types.md
5936 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
5937 * config/aarch64/aarch64.md
5938 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
5939 new attributes.
5940 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
5941 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
5942 (float<GPI:mode><GPF:mode>2): Likewise.
5943 * config/arm/vfp.md
5944 (*truncsisf2_vfp): Update with new attributes.
5945 (*truncsidf2_vfp): Likewise.
5946 (fixuns_truncsfsi2): Likewise.
5947 (fixuns_truncdfsi2): Likewise.
5948 (*floatsisf2_vfp): Likewise.
5949 (*floatsidf2_vfp): Likewise.
5950 (floatunssisf2): Likewise.
5951 (floatunssidf2): Likewise.
5952 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
5953 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
5954 * config/arm/arm1020e.md: Update with new attributes.
5955 * config/arm/cortex-a15-neon.md: Update with new attributes.
5956 * config/arm/cortex-a5.md: Update with new attributes.
5957 * config/arm/cortex-a53.md: Update with new attributes.
5958 * config/arm/cortex-a7.md: Update with new attributes.
5959 * config/arm/cortex-a8-neon.md: Update with new attributes.
5960 * config/arm/cortex-a9.md: Update with new attributes.
5961 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5962 * config/arm/cortex-r4f.md: Update with new attributes.
5963 * config/arm/marvell-pj4.md: Update with new attributes.
5964 * config/arm/vfp11.md: Update with new attributes.
5965
e7df8af8
JG
59662013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5967
5968 * config/aarch64/arm_neon.h
5969 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
5970 (vqtbx<1,2,3,4><q>_s8): Likewise.
5971
594726e4
JG
59722013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5973
f43245d1
UB
5974 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
5975 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
5976 (add<mode>3): Add type attribute.
5977 (add<mode>3): Likewise.
5978 (usadd<mode>3): Likewise.
5979 (ssadd<mode>3): Likewise.
5980 (sub<mode>3): Likewise.
5981 (sub<mode>3): Likewise.
5982 (ussub<mode>3): Likewise.
5983 (sssub<mode>3): Likewise.
5984 (ssmulsa3): Likewise.
5985 (usmulusa3): Likewise.
5986 (arm_usatsihi): Likewise.
5987 * config/arm/vfp.md
5988 (*movdi_vfp): Add types for all instructions.
5989 (*movdi_vfp_cortexa8): Likewise.
5990 (*movhf_vfp_neon): Likewise.
5991 (*movhf_vfp): Likewise.
5992 (*movdf_vfp): Likewise.
5993 (*thumb2_movdf_vfp): Likewise.
5994 (*thumb2_movdfcc_vfp): Likewise.
5995 * config/arm/arm.md: Add type attribute to all insn patterns.
5996 (*thumb1_adddi3): Add type attribute.
5997 (*arm_adddi3): Likewise.
5998 (*adddi_sesidi_di): Likewise.
5999 (*adddi_zesidi_di): Likewise.
6000 (*thumb1_addsi3): Likewise.
6001 (addsi3_compare0): Likewise.
6002 (*addsi3_compare0_scratch): Likewise.
6003 (*compare_negsi_si): Likewise.
6004 (cmpsi2_addneg): Likewise.
6005 (*addsi3_carryin_<optab>): Likewise.
6006 (*addsi3_carryin_alt2_<optab>): Likewise.
6007 (*addsi3_carryin_clobercc_<optab>): Likewise.
6008 (*subsi3_carryin): Likewise.
6009 (*subsi3_carryin_const): Likewise.
6010 (*subsi3_carryin_compare): Likewise.
6011 (*subsi3_carryin_compare_const): Likewise.
6012 (*arm_subdi3): Likewise.
6013 (*thumb_subdi3): Likewise.
6014 (*subdi_di_zesidi): Likewise.
6015 (*subdi_di_sesidi): Likewise.
6016 (*subdi_zesidi_di): Likewise.
6017 (*subdi_sesidi_di): Likewise.
6018 (*subdi_zesidi_ze): Likewise.
6019 (thumb1_subsi3_insn): Likewise.
6020 (*arm_subsi3_insn): Likewise.
6021 (*anddi3_insn): Likewise.
6022 (*anddi_zesidi_di): Likewise.
6023 (*anddi_sesdi_di): Likewise.
6024 (*ne_zeroextracts): Likewise.
6025 (*ne_zeroextracts): Likewise.
6026 (*ite_ne_zeroextr): Likewise.
6027 (*ite_ne_zeroextr): Likewise.
6028 (*anddi_notdi_di): Likewise.
6029 (*anddi_notzesidi): Likewise.
6030 (*anddi_notsesidi): Likewise.
6031 (andsi_notsi_si): Likewise.
6032 (thumb1_bicsi3): Likewise.
6033 (*iordi3_insn): Likewise.
6034 (*iordi_zesidi_di): Likewise.
6035 (*iordi_sesidi_di): Likewise.
6036 (*thumb1_iorsi3_insn): Likewise.
6037 (*xordi3_insn): Likewise.
6038 (*xordi_zesidi_di): Likewise.
6039 (*xordi_sesidi_di): Likewise.
6040 (*arm_xorsi3): Likewise.
6041 (*andsi_iorsi3_no): Likewise.
6042 (*smax_0): Likewise.
6043 (*smax_m1): Likewise.
6044 (*arm_smax_insn): Likewise.
6045 (*smin_0): Likewise.
6046 (*arm_smin_insn): Likewise.
6047 (*arm_umaxsi3): Likewise.
6048 (*arm_uminsi3): Likewise.
6049 (*minmax_arithsi): Likewise.
6050 (*minmax_arithsi_): Likewise.
6051 (*satsi_<SAT:code>): Likewise.
6052 (arm_ashldi3_1bit): Likewise.
6053 (arm_ashrdi3_1bit): Likewise.
6054 (arm_lshrdi3_1bit): Likewise.
6055 (*arm_negdi2): Likewise.
6056 (*thumb1_negdi2): Likewise.
6057 (*arm_negsi2): Likewise.
6058 (*thumb1_negsi2): Likewise.
6059 (*negdi_extendsid): Likewise.
6060 (*negdi_zero_extend): Likewise.
6061 (*arm_abssi2): Likewise.
6062 (*thumb1_abssi2): Likewise.
6063 (*arm_neg_abssi2): Likewise.
6064 (*thumb1_neg_abss): Likewise.
6065 (one_cmpldi2): Likewise.
6066 (extend<mode>di2): Likewise.
6067 (*compareqi_eq0): Likewise.
6068 (*arm_extendhisi2addsi): Likewise.
6069 (*arm_movdi): Likewise.
6070 (*thumb1_movdi_insn): Likewise.
6071 (*arm_movt): Likewise.
6072 (*thumb1_movsi_insn): Likewise.
6073 (pic_add_dot_plus_four): Likewise.
6074 (pic_add_dot_plus_eight): Likewise.
6075 (tls_load_dot_plus_eight): Likewise.
6076 (*thumb1_movhi_insn): Likewise.
6077 (*thumb1_movsf_insn): Likewise.
6078 (*movdf_soft_insn): Likewise.
6079 (*thumb_movdf_insn): Likewise.
6080 (cbranchsi4_insn): Likewise.
6081 (cbranchsi4_scratch): Likewise.
6082 (*negated_cbranchsi4): Likewise.
6083 (*tbit_cbranch): Likewise.
6084 (*tlobits_cbranch): Likewise.
6085 (*tstsi3_cbranch): Likewise.
6086 (*cbranchne_decr1): Likewise.
6087 (*addsi3_cbranch): Likewise.
6088 (*addsi3_cbranch_scratch): Likewise.
6089 (*arm_cmpdi_insn): Likewise.
6090 (*arm_cmpdi_unsig): Likewise.
6091 (*arm_cmpdi_zero): Likewise.
6092 (*thumb_cmpdi_zero): Likewise.
6093 (*deleted_compare): Likewise.
6094 (*mov_scc): Likewise.
6095 (*mov_negscc): Likewise.
6096 (*mov_notscc): Likewise.
6097 (*cstoresi_eq0_thumb1_insn): Likewise.
6098 (cstoresi_nltu_thumb1): Likewise.
6099 (cstoresi_ltu_thu): Likewise.
6100 (thumb1_addsi3_addgeu): Likewise.
6101 (*arm_jump): Likewise.
6102 (*thumb_jump): Likewise.
6103 (*check_arch2): Likewise.
6104 (arm_casesi_internal): Likewise.
6105 (thumb1_casesi_dispatch): Likewise.
6106 (*arm_indirect_jump): Likewise.
6107 (*thumb1_indirect_jump): Likewise.
6108 (nop): Likewise.
6109 (*and_scc): Likewise.
6110 (*ior_scc): Likewise.
6111 (*compare_scc): Likewise.
6112 (*cond_move): Likewise.
6113 (*cond_arith): Likewise.
6114 (*cond_sub): Likewise.
6115 (*cmp_ite0): Likewise.
6116 (*cmp_ite1): Likewise.
6117 (*cmp_and): Likewise.
6118 (*cmp_ior): Likewise.
6119 (*ior_scc_scc): Likewise.
6120 (*ior_scc_scc_cmp): Likewise.
6121 (*and_scc_scc): Likewise.
6122 (*and_scc_scc_cmp): Likewise.
6123 (*and_scc_scc_nod): Likewise.
6124 (*negscc): Likewise.
6125 (movcond_addsi): Likewise.
6126 (movcond): Likewise.
6127 (*ifcompare_plus_move): Likewise.
6128 (*if_plus_move): Likewise.
6129 (*ifcompare_move_plus): Likewise.
6130 (*if_move_plus): Likewise.
6131 (*ifcompare_arith_arith): Likewise.
6132 (*if_arith_arith): Likewise.
6133 (*ifcompare_arith_move): Likewise.
6134 (*if_arith_move): Likewise.
6135 (*ifcompare_move_arith): Likewise.
6136 (*if_move_arith): Likewise.
6137 (*ifcompare_move_not): Likewise.
6138 (*if_move_not): Likewise.
6139 (*ifcompare_not_move): Likewise.
6140 (*if_not_move): Likewise.
6141 (*ifcompare_shift_move): Likewise.
6142 (*if_shift_move): Likewise.
6143 (*ifcompare_move_shift): Likewise.
6144 (*if_move_shift): Likewise.
6145 (*ifcompare_shift_shift): Likewise.
6146 (*ifcompare_not_arith): Likewise.
6147 (*ifcompare_arith_not): Likewise.
6148 (*if_arith_not): Likewise.
6149 (*ifcompare_neg_move): Likewise.
6150 (*if_neg_move): Likewise.
6151 (*ifcompare_move_neg): Likewise.
6152 (*if_move_neg): Likewise.
6153 (prologue_thumb1_interwork): Likewise.
6154 (*cond_move_not): Likewise.
6155 (*sign_extract_onebit): Likewise.
6156 (*not_signextract_onebit): Likewise.
6157 (stack_tie): Likewise.
6158 (align_4): Likewise.
6159 (align_8): Likewise.
6160 (consttable_end): Likewise.
6161 (consttable_1): Likewise.
6162 (consttable_2): Likewise.
6163 (consttable_4): Likewise.
6164 (consttable_8): Likewise.
6165 (consttable_16): Likewise.
6166 (*thumb1_tablejump): Likewise.
6167 (prefetch): Likewise.
6168 (force_register_use): Likewise.
6169 (thumb_eh_return): Likewise.
6170 (load_tp_hard): Likewise.
6171 (load_tp_soft): Likewise.
6172 (tlscall): Likewise.
6173 (*arm_movtas_ze): Likewise.
6174 (*arm_rev): Likewise.
6175 (*arm_revsh): Likewise.
6176 (*arm_rev16): Likewise.
6177 * config/arm/thumb2.md
6178 (*thumb2_smaxsi3): Likewise.
6179 (*thumb2_sminsi3): Likewise.
6180 (*thumb32_umaxsi3): Likewise.
6181 (*thumb2_uminsi3): Likewise.
6182 (*thumb2_negdi2): Likewise.
6183 (*thumb2_abssi2): Likewise.
6184 (*thumb2_neg_abss): Likewise.
6185 (*thumb2_movsi_insn): Likewise.
6186 (tls_load_dot_plus_four): Likewise.
6187 (*thumb2_movhi_insn): Likewise.
6188 (*thumb2_mov_scc): Likewise.
6189 (*thumb2_mov_negs): Likewise.
6190 (*thumb2_mov_negs): Likewise.
6191 (*thumb2_mov_nots): Likewise.
6192 (*thumb2_mov_nots): Likewise.
6193 (*thumb2_movsicc_): Likewise.
6194 (*thumb2_movsfcc_soft_insn): Likewise.
6195 (*thumb2_indirect_jump): Likewise.
6196 (*thumb2_and_scc): Likewise.
6197 (*thumb2_ior_scc): Likewise.
6198 (*thumb2_ior_scc_strict_it): Likewise.
6199 (*thumb2_cond_move): Likewise.
6200 (*thumb2_cond_arith): Likewise.
6201 (*thumb2_cond_ari): Likewise.
6202 (*thumb2_cond_sub): Likewise.
6203 (*thumb2_negscc): Likewise.
6204 (*thumb2_movcond): Likewise.
6205 (thumb2_casesi_internal): Likewise.
6206 (thumb2_casesi_internal_pic): Likewise.
6207 (*thumb2_alusi3_short): Likewise.
6208 (*thumb2_mov<mode>_shortim): Likewise.
6209 (*thumb2_addsi_short): Likewise.
6210 (*thumb2_subsi_short): Likewise.
6211 (thumb2_addsi3_compare0): Likewise.
6212 (*thumb2_cbz): Likewise.
6213 (*thumb2_cbnz): Likewise.
6214 (*thumb2_one_cmplsi2_short): Likewise.
6215 (*thumb2_negsi2_short): Likewise.
6216 (*orsi_notsi_si): Likewise.
6217 * config/arm/arm1020e.md: Update with new attributes.
6218 * config/arm/arm1026ejs.md: Update with new attributes.
6219 * config/arm/arm1136jfs.md: Update with new attributes.
6220 * config/arm/arm926ejs.md: Update with new attributes.
6221 * config/arm/cortex-a15.md: Update with new attributes.
6222 * config/arm/cortex-a5.md: Update with new attributes.
6223 * config/arm/cortex-a53.md: Update with new attributes.
6224 * config/arm/cortex-a7.md: Update with new attributes.
6225 * config/arm/cortex-a8.md: Update with new attributes.
6226 * config/arm/cortex-a9.md: Update with new attributes.
6227 * config/arm/cortex-m4.md: Update with new attributes.
6228 * config/arm/cortex-r4.md: Update with new attributes.
6229 * config/arm/fa526.md: Update with new attributes.
6230 * config/arm/fa606te.md: Update with new attributes.
6231 * config/arm/fa626te.md: Update with new attributes.
6232 * config/arm/fa726te.md: Update with new attributes.
6233
1c83b673
JG
62342013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6235
6236 * config/aarch64/aarch64-simd.md
6237 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6238 <vwx> iterator to ensure correct register choice.
6239 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6240 (aarch64_sqdmull_n<mode>): Likewise.
6241 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6242 * config/aarch64/arm_neon.h
6243 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6244 (vml<as><q>_n_<su>16): Likewise.
6245 (vml<as>l_high_lane<q>_<su>16): Likewise.
6246 (vml<as>l_high_n_<su>16): Likewise.
6247 (vml<as>l_lane<q>_<su>16): Likewise.
6248 (vml<as>l_n_<su>16): Likewise.
6249 (vmul<q>_lane<q>_<su>16): Likewise.
6250 (vmul<q>_n_<su>16): Likewise.
6251 (vmull_lane<q>_<su>16): Likewise.
6252 (vmull_n_<su>16): Likewise.
6253 (vmull_high_lane<q>_<su>16): Likewise.
6254 (vmull_high_n_<su>16): Likewise.
6255 (vqrdmulh<q>_n_s16): Likewise.
6256
bb1ae543
TB
62572013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6258
6259 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6260 have the correct lane parameter.
6261
f23c0742
RB
62622013-09-06 Richard Biener <rguenther@suse.de>
6263
6264 * cfganal.c (control_dependences::~control_dependences):
6265 Properly free all of the vector.
6266
c1d49770
KY
62672013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6268
6269 PR target/58269
6270 * config/i386/i386.c (ix86_conditional_register_usage):
6271 Proper initialize extended SSE registers.
6272
6da47f52
JH
62732013-09-06 Jan Hubicka <jh@suse.cz>
6274
6275 PR tree-optimization/58311
6276 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6277
62782013-09-06 Jan Hubicka <jh@suse.cz>
6279
6280 * Makefile.in (tree-sra.o): Update dependencies.
6281 * tree-sra.c: Include ipa-utils.h
6282 (scan_function): Use recursive_call_p.
6283 (has_caller_p): New function.
6284 (cgraph_for_node_and_aliases): Count also callers of aliases.
6285
fc11f321
JH
62862013-09-06 Jan Hubicka <jh@suse.cz>
6287
6288 PR middle-end/58094
6289 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6290 * tree-tailcall.c: Include ipa-utils.h.
6291 (find_tail_calls): Use it.
6292 * ipa-pure-const.c (check_call): Likewise.
6293 * ipa-utils.c (recursive_call_p): New function.
6294 * ipa-utils.h (recursive_call_p): Dclare.
6295 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6296 (symtab_semantically_equivalent_p): New function.
6297 * Makefile.in (tree-tailcall.o): Update dependencies.
6298
9a6af450
EB
62992013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6300
6301 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6302 non-inlinable part.
6303
35f32ad4
RB
63042013-09-06 Richard Biener <rguenther@suse.de>
6305
6306 * lto-streamer.h (lto_global_var_decls): Remove.
6307 * Makefile.in (OBJS): Remove lto-symtab.o.
6308 (lto-symtab.o): Remove.
6309 (GTFILES): Remove lto-symtab.c
6310 * lto-symtab.c: Move to lto/
6311
d12a76f3
AK
63122013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6313
6314 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6315 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6316 (UNSPEC_FPINT_RINT): New constant definitions.
6317 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6318 definition with 2 attributes.
6319 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6320 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6321 definitions.
6322
63232013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6324
f43245d1 6325 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6326 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6327 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6328 attribute to "z196_alone".
6329 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6330 "zEC12_simple".
6331
c8e9d8c3
RB
63322013-09-06 Richard Biener <rguenther@suse.de>
6333
6334 * basic-block.h (class control_dependences): New.
6335 * tree-ssa-dce.c (control_dependence_map): Remove.
6336 (cd): New global.
6337 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6338 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6339 find_pdom, find_control_dependence, find_all_control_dependences):
6340 Move to cfganal.c.
f43245d1
UB
6341 (mark_control_dependent_edges_necessary,
6342 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6343 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6344 * cfganal.c (set_control_dependence_map_bit,
6345 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6346 find_all_control_dependences): Move from tree-ssa-dce.c and
6347 implement as methods of control_dependences class.
6348 (control_dependences::control_dependences): New.
6349 (control_dependences::~control_dependences): Likewise.
6350 (control_dependences::get_edges_dependent_on): Likewise.
6351 (control_dependences::get_edge): Likewise.
6352
7d2ba471
JH
63532013-09-04 Jan Hubicka <jh@suse.cz>
6354
6355 * tree.c (types_same_for_odr): Drop overactive check.
6356 * ipa-devirt.c (hash_type_name): Likewise.
6357
e18412fc
JH
63582013-09-04 Jan Hubicka <jh@suse.cz>
6359
6360 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6361 (analyze_functions): ... here.
6362
d352b245
JH
63632013-09-04 Jan Hubicka <jh@suse.cz>
6364
6365 PR middle-end/58201
6366 * cgraphunit.c (analyze_functions): Clear AUX fields
6367 after processing; initialize assembler name has.
6368
770da076
JL
63692013-09-05 Jeff Law <law@redhat.com>
6370
6371 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6372 from thread_around_empty_block. Record threading path into PATH.
6373 Recurse if threading through the initial block is successful.
6374 (thread_across_edge): Corresponding changes to slightly simplify.
6375
fe6f68e2
JG
63762013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6377
6378 * config/aarch64/aarch64.md
6379 (type): Remove frecpe, frecps, frecpx.
6380 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6381 fix to be a TARGET_SIMD instruction.
6382 (aarch64_frecps): Remove.
6383 * config/aarch64/aarch64-simd.md
6384 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6385 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6386
6e4150e1
JG
63872013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6388 Sofiane Naci <sofiane.naci@arm.com>
6389
f43245d1 6390 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6391 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6392 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6393 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6394 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6395 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6396 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6397 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6398 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6399 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6400 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6401 shift* types.
6402 * config/arm/arm-fixed.md: Update for attribute changes
6403 all occurrences of arlo_* types.
6404 * config/arm/thumb2.md: Update for attribute changes all occurrences
6405 of arlo_* types.
6406 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6407 (cortexa7_older_only): Likewise.
6408 (cortexa7_younger): Likewise.
6409 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6410 (1020alu_shift_op): Likewise.
6411 (1020alu_shift_reg_op): Likewise.
6412 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6413 (alu_shift_op): Likewise.
6414 (alu_shift_reg_op): Likewise.
f43245d1 6415 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6416 (11_alu_shift_op): Likewise.
6417 (11_alu_shift_reg_op): Likewise.
6418 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6419 (9_alu_shift_reg_op): Likewise.
6420 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6421 attribute changes.
6422 (cortex_a15_alu_shift): Likewise.
6423 (cortex_a15_alu_shift_reg): Likewise.
6424 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6425 attribute changes.
6426 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6427 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6428 attribute changes.
6e4150e1 6429 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6430 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6431 attribute changes.
6e4150e1
JG
6432 (cortex_a7_alu_reg): Likewise.
6433 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6434 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6435 attribute changes.
6e4150e1
JG
6436 (cortex_a8_alu_shift): Likewise.
6437 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6438 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6439 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6440 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6441 attribute changes.
6e4150e1
JG
6442 * config/arm/cortex-r4.md
6443 (cortex_r4_alu): Update for attribute changes.
6444 (cortex_r4_mov): Likewise.
6445 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6446 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6447 (526_alu_shift_op): Likewise.
f43245d1
UB
6448 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6449 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6450 (626te_alu_shift_op): Likewise.
f43245d1 6451 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6452 (726te_alu_shift_op): Likewise.
6453 (726te_alu_shift_reg_op): Likewise.
6454 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6455 (mp626_alu_shift_op): Likewise.
6456 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6457 (pj4_alu_conds): Likewise.
6458 (pj4_shift): Likewise.
6459 (pj4_shift_conds): Likewise.
6460 (pj4_alu_shift): Likewise.
6461 (pj4_alu_shift_conds): Likewise.
6462 * config/aarch64/aarch64.md: Update for attribute change
6463 all occurrences of arlo_* and shift* types.
6464
e6523306
MS
64652013-09-05 Mike Stump <mikestump@comcast.net>
6466
6467 * tree.h: Move documentation for tree_function_decl to tree-core.h
6468 with the declaration.
6469
80a18161
PB
64702013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6471
6472 PR target/58139
6473 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6474 looking for widest mode.
6475
6994430a
EB
64762013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6477
6478 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6479
e67f39f7
RB
64802013-09-05 Richard Biener <rguenther@suse.de>
6481
6482 PR tree-optimization/58137
6483 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6484 Do not create vectors of pointers.
6485 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6486 types for the components of the vector initializer.
6487 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6488 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6489
568cda29
MJ
64902013-09-05 Martin Jambor <mjambor@suse.cz>
6491
6492 * ipa-prop.c (remove_described_reference): Accept missing references,
6493 return false if that hppens, otherwise return true.
6494 (cgraph_node_for_jfunc): New function.
6495 (try_decrement_rdesc_refcount): Likewise.
6496 (try_make_edge_direct_simple_call): Use them.
6497 (ipa_edge_removal_hook): Remove references from rdescs.
6498 (ipa_edge_duplication_hook): Clone rdescs and their references
6499 when the new edge has the same caller as the old one.
6500 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6501 reference before removing any edges.
6502
5a200acb
RE
65032013-09-05 Richard Earnshaw <rearnsha@arm.com>
6504
6505 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6506 initial store.
6507 * thumb2.md (thumb2_storewb_parisi): New pattern.
6508
5922847b
YZ
65092013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6510
6511 * config/aarch64/aarch64-option-extensions.def: Add
6512 AARCH64_OPT_EXTENSION of 'crc'.
6513 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6514 (AARCH64_ISA_CRC): Ditto.
6515 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6516 description of the CRC extension.
6517
996746aa
AI
65182013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6519
6520 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6521 * config/rs6000/linux.h: Ditto.
6522 * alpha/linux.h: Ditto.
6523 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6524 no_c99_libc_has_function.
6525 * config/c6x/uclinux-elf.h: Ditto.
6526 * config/lm32/uclinux-elf.h: Ditto.
6527 * config/m68k/uclinux.h: Ditto.
6528 * config/moxie/uclinux.h: Ditto.
6529 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6530 (crisv32-*-linux*, cris-*-linux*): Ditto.
6531 * config/bfin/bfin.c: Include "tm_p.h".
6532
c370d99f
RB
65332013-09-05 Richard Biener <rguenther@suse.de>
6534
6535 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6536 check for a definition without a basic-block.
6537
003bb7f3
JG
65382013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6539 Sofiane Naci <sofiane.naci@arm.com>
6540
6541 * config/aarch64/aarch64.md
6542 (*movti_aarch64): Rename r_2_f and f_2_r.
6543 (*movsf_aarch64): Likewise.
6544 (*movdf_aarch64): Likewise.
6545 (*movtf_aarch64): Likewise.
6546 (aarch64_movdi_<mode>low): Likewise.
6547 (aarch64_movdi_<mode>high): Likewise.
6548 (aarch64_mov<mode>high_di): Likewise.
6549 (aarch64_mov<mode>low_di): Likewise.
6550 (aarch64_movtilow_tilow): Likewise.
6551 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6552 values to config/arm/types.md
6553 (attribute "conds"): Update for attribute change.
6554 (anddi3_insn): Likewise.
6555 (iordi3_insn): Likewise.
6556 (xordi3_insn): Likewise.
6557 (one_cmpldi2): Likewise.
6558 * config/arm/types.md (type): Add Neon types.
6559 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6560 use "type" attribute.
6561 (movmisalign<mode>_neon_store): Likewise.
6562 (movmisalign<mode>_neon_load): Likewise.
6563 (vec_set<mode>_internal): Likewise.
6564 (vec_setv2di_internal): Likewise.
6565 (vec_extract<mode>): Likewise.
6566 (vec_extractv2di): Likewise.
6567 (add<mode>3_neon): Likewise.
6568 (adddi3_neon): Likewise.
6569 (sub<mode>3_neon): Likewise.
6570 (subdi3_neon): Likewise.
6571 (mul<mode>3_neon): Likewise.
6572 (mul<mode>3add<mode>_neon): Likewise.
6573 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6574 (fma<VCVTF:mode>4)): Likewise.
6575 (fma<VCVTF:mode>4_intrinsic): Likewise.
6576 (fmsub<VCVTF:mode>4)): Likewise.
6577 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6578 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6579 (ior<mode>3): Likewise.
6580 (and<mode>3): Likewise.
6581 (anddi3_neon): Likewise.
6582 (orn<mode>3_neon): Likewise.
6583 (orndi3_neon): Likewise.
6584 (bic<mode>3_neon): Likewise.
6585 (bicdi3_neon): Likewise.
6586 (xor<mode>3): Likewise.
6587 (one_cmpl<mode>2): Likewise.
6588 (abs<mode>2): Likewise.
6589 (neg<mode>2): Likewise.
6590 (umin<mode>3_neon): Likewise.
6591 (umax<mode>3_neon): Likewise.
6592 (smin<mode>3_neon): Likewise.
6593 (smax<mode>3_neon): Likewise.
6594 (vashl<mode>3): Likewise.
6595 (vashr<mode>3_imm): Likewise.
6596 (vlshr<mode>3_imm): Likewise.
6597 (ashl<mode>3_signed): Likewise.
6598 (ashl<mode>3_unsigned): Likewise.
6599 (neon_load_count): Likewise.
6600 (ashldi3_neon_noclobber): Likewise.
6601 (signed_shift_di3_neon): Likewise.
6602 (unsigned_shift_di3_neon): Likewise.
6603 (ashrdi3_neon_imm_noclobber): Likewise.
6604 (lshrdi3_neon_imm_noclobber): Likewise.
6605 (widen_ssum<mode>3): Likewise.
6606 (widen_usum<mode>3): Likewise.
6607 (quad_halves_<code>v4si): Likewise.
6608 (quad_halves_<code>v4sf): Likewise.
6609 (quad_halves_<code>v8hi): Likewise.
6610 (quad_halves_<code>v16qi): Likewise.
6611 (reduc_splus_v2di): Likewise.
6612 (neon_vpadd_internal<mode>): Likewise.
6613 (neon_vpsmin<mode>): Likewise.
6614 (neon_vpsmax<mode>): Likewise.
6615 (neon_vpumin<mode>): Likewise.
6616 (neon_vpumax<mode>): Likewise.
6617 (ss_add<mode>_neon): Likewise.
6618 (us_add<mode>_neon): Likewise.
6619 (ss_sub<mode>_neon): Likewise.
6620 (us_sub<mode>_neon): Likewise.
6621 (neon_vadd<mode>_unspec): Likewise.
6622 (neon_vaddl<mode>): Likewise.
6623 (neon_vaddw<mode>): Likewise.
6624 (neon_vhadd<mode>): Likewise.
6625 (neon_vqadd<mode>): Likewise.
6626 (neon_vaddhn<mode>): Likewise.
6627 (neon_vmul<mode>): Likewise.
6628 (neon_vmla<mode>): Likewise.
6629 (neon_vmlal<mode>): Likewise.
6630 (neon_vmls<mode>): Likewise.
6631 (neon_vmlsl<mode>): Likewise.
6632 (neon_vqdmulh<mode>): Likewise.
6633 (neon_vqdmlal<mode>): Likewise.
6634 (neon_vqdmlsl<mode>): Likewise.
6635 (neon_vmull<mode>): Likewise.
6636 (neon_vqdmull<mode>): Likewise.
6637 (neon_vsub<mode>_unspec): Likewise.
6638 (neon_vsubl<mode>): Likewise.
6639 (neon_vsubw<mode>): Likewise.
6640 (neon_vqsub<mode>): Likewise.
6641 (neon_vhsub<mode>): Likewise.
6642 (neon_vsubhn<mode>): Likewise.
6643 (neon_vceq<mode>): Likewise.
6644 (neon_vcge<mode>): Likewise.
6645 (neon_vcgeu<mode>): Likewise.
6646 (neon_vcgt<mode>): Likewise.
6647 (neon_vcgtu<mode>): Likewise.
6648 (neon_vcle<mode>): Likewise.
6649 (neon_vclt<mode>): Likewise.
6650 (neon_vcage<mode>): Likewise.
6651 (neon_vcagt<mode>): Likewise.
6652 (neon_vtst<mode>): Likewise.
6653 (neon_vabd<mode>): Likewise.
6654 (neon_vabdl<mode>): Likewise.
6655 (neon_vaba<mode>): Likewise.
6656 (neon_vabal<mode>): Likewise.
6657 (neon_vmax<mode>): Likewise.
6658 (neon_vmin<mode>): Likewise.
6659 (neon_vpaddl<mode>): Likewise.
6660 (neon_vpadal<mode>): Likewise.
6661 (neon_vpmax<mode>): Likewise.
6662 (neon_vpmin<mode>): Likewise.
6663 (neon_vrecps<mode>): Likewise.
6664 (neon_vrsqrts<mode>): Likewise.
6665 (neon_vqabs<mode>): Likewise.
6666 (neon_vqneg<mode>): Likewise.
6667 (neon_vcls<mode>): Likewise.
6668 (clz<mode>2): Likewise.
6669 (popcount<mode>2): Likewise.
6670 (neon_vrecpe): Likewise.
6671 (neon_vrsqrte): Likewise.
6672 (neon_vget_lane<mode>_sext_internal): Likewise.
6673 (neon_vget_lane<mode>_zext_internal): Likewise.
6674 (neon_vdup_n<mode>): Likewise.
6675 (neon_vdup_nv2di): Likewise.
6676 (neon_vdpu_lane<mode>_internal): Likewise.
6677 (neon_vswp<mode>): Likewise.
6678 (float<mode><V_cvtto>2): Likewise.
6679 (floatuns<mode><V_cvtto>2): Likewise.
6680 (fix_trunc<mode><V_cvtto>)2): Likewise
6681 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6682 (neon_vcvt<mode>): Likewise.
6683 (neon_vcvtv4sfv4hf): Likewise.
6684 (neon_vcvtv4hfv4sf): Likewise.
6685 (neon_vcvt_n<mode>): Likewise.
6686 (neon_vmovn<mode>): Likewise.
6687 (neon_vqmovn<mode>): Likewise.
6688 (neon_vqmovun<mode>): Likewise.
6689 (neon_vmovl<mode>): Likewise.
6690 (neon_vmul_lane<mode>): Likewise.
6691 (neon_vmull_lane<mode>): Likewise.
6692 (neon_vqdmull_lane<mode>): Likewise.
6693 (neon_vqdmulh_lane<mode>): Likewise.
6694 (neon_vmla_lane<mode>): Likewise.
6695 (neon_vmlal_lane<mode>): Likewise.
6696 (neon_vqdmlal_lane<mode>): Likewise.
6697 (neon_vmls_lane<mode>): Likewise.
6698 (neon_vmlsl_lane<mode>): Likewise.
6699 (neon_vqdmlsl_lane<mode>): Likewise.
6700 (neon_vext<mode>): Likewise.
6701 (neon_vrev64<mode>): Likewise.
6702 (neon_vrev32<mode>): Likewise.
6703 (neon_vrev16<mode>): Likewise.
6704 (neon_vbsl<mode>_internal): Likewise.
6705 (neon_vshl<mode>): Likewise.
6706 (neon_vqshl<mode>): Likewise.
6707 (neon_vshr_n<mode>): Likewise.
6708 (neon_vshrn_n<mode>): Likewise.
6709 (neon_vqshrn_n<mode>): Likewise.
6710 (neon_vqshrun_n<mode>): Likewise.
6711 (neon_vshl_n<mode>): Likewise.
6712 (neon_vqshl_n<mode>): Likewise.
6713 (neon_vqshlu_n<mode>): Likewise.
6714 (neon_vshll_n<mode>): Likewise.
6715 (neon_vsra_n<mode>): Likewise.
6716 (neon_vsri_n<mode>): Likewise.
6717 (neon_vsli_n<mode>): Likewise.
6718 (neon_vtbl1v8qi): Likewise.
6719 (neon_vtbl2v8qi): Likewise.
6720 (neon_vtbl3v8qi): Likewise.
6721 (neon_vtbl4v8qi): Likewise.
6722 (neon_vtbx1v8qi): Likewise.
6723 (neon_vtbx2v8qi): Likewise.
6724 (neon_vtbx3v8qi): Likewise.
6725 (neon_vtbx4v8qi): Likewise.
6726 (neon_vtrn<mode>_internal): Likewise.
6727 (neon_vzip<mode>_internal): Likewise.
6728 (neon_vuzp<mode>_internal): Likewise.
6729 (neon_vld1<mode>): Likewise.
6730 (neon_vld1_lane<mode>): Likewise.
6731 (neon_vld1_dup<mode>): Likewise.
6732 (neon_vld1_dupv2di): Likewise.
6733 (neon_vst1<mode>): Likewise.
6734 (neon_vst1_lane<mode>): Likewise.
6735 (neon_vld2<mode>): Likewise.
6736 (neon_vld2_lane<mode>): Likewise.
6737 (neon_vld2_dup<mode>): Likewise.
6738 (neon_vst2<mode>): Likewise.
6739 (neon_vst2_lane<mode>): Likewise.
6740 (neon_vld3<mode>): Likewise.
6741 (neon_vld3qa<mode>): Likewise.
6742 (neon_vld3qb<mode>): Likewise.
6743 (neon_vld3_lane<mode>): Likewise.
6744 (neon_vld3_dup<mode>): Likewise.
6745 (neon_vst3<mode>): Likewise.
6746 (neon_vst3qa<mode>): Likewise.
6747 (neon_vst3qb<mode>): Likewise.
6748 (neon_vst3_lane<mode>): Likewise.
6749 (neon_vld4<mode>): Likewise.
6750 (neon_vld4qa<mode>): Likewise.
6751 (neon_vld4qb<mode>): Likewise.
6752 (neon_vld4_lane<mode>): Likewise.
6753 (neon_vld4_dup<mode>): Likewise.
6754 (neon_vst4<mode>): Likewise.
6755 (neon_vst4qa<mode>): Likewise.
6756 (neon_vst4qb<mode>): Likewise.
6757 (neon_vst4_lane<mode>): Likewise.
6758 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6759 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6760 (neon_vec_<US>mult_lo_<mode>): Likewise.
6761 (neon_vec_<US>mult_hi_<mode>): Likewise.
6762 (neon_vec_<US>shiftl_<mode>): Likewise.
6763 (neon_unpack<US>_<mode>): Likewise.
6764 (neon_vec_<US>mult_<mode>): Likewise.
6765 (vec_pack_trunc_<mode>): Likewise.
6766 (neon_vec_pack_trunk_<mode>): Likewise.
6767 (neon_vabd<mode>_2): Likewise.
6768 (neon_vabd<mode>_3): Likewise.
6769 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
6770 (thumb2_movsi_vfp): Likewise.
6771 (movdi_vfp): Likewise.
6772 (movdi_vfp_cortexa8): Likewise.
6773 (movhf_vfp_neon): Likewise.
6774 (movhf_vfp): Likewiwse.
6775 (movsf_vfp): Likewiwse.
6776 (thumb2_movsf_vfp): Likewiwse.
6777 (movdf_vfp): Likewise.
6778 (thumb2_movdf_vfp): Likewise.
6779 (movsfcc_vfp): Likewise.
6780 (thumb2_movsfcc_vfp): Likewise.
6781 (movdfcc_vfp): Likewise.
6782 (thumb2_movdfcc_vfp): Likewise.
6783 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
6784 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
6785 (v10_v2c): Likewise.
6786 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
6787 attribute change.
6788 (cortex_a15_neon_int_2): Likewise.
6789 (cortex_a15_neon_int_3): Likewise.
6790 (cortex_a15_neon_int_4): Likewise.
6791 (cortex_a15_neon_int_5): Likewise.
6792 (cortex_a15_neon_vqneg_vqabs): Likewise.
6793 (cortex_a15_neon_vmov): Likewise.
6794 (cortex_a15_neon_vaba): Likewise.
6795 (cortex_a15_neon_vaba_qqq): Likewise.
6796 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6797 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6798 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
6799 scalar_64_32_long_scalar): Likewise.
6800 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6801 (cortex_a15_neon_mla_qqq_8_16): Likewise.
6802 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6803 lotype_qdd_64_32_long): Likewise.
6804 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6805 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6806 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
6807 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6808 (cortex_a15_neon_shift_1): Likewise.
6809 (cortex_a15_neon_shift_2): Likewise.
6810 (cortex_a15_neon_shift_3): Likewise.
6811 (cortex_a15_neon_vshl_ddd): Likewise.
6812 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6813 (cortex_a15_neon_vsra_vrsra): Likewise.
6814 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
6815 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
6816 (cortex_a15_neon_fp_vmul_ddd): Likewise.
6817 (cortex_a15_neon_fp_vmul_qqd): Likewise.
6818 (cortex_a15_neon_fp_vmla_ddd): Likewise.
6819 (cortex_a15_neon_fp_vmla_qqq): Likewise.
6820 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
6821 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
6822 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6823 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6824 (cortex_a15_neon_bp_simple): Likewise.
6825 (cortex_a15_neon_bp_2cycle): Likewise.
6826 (cortex_a15_neon_bp_3cycle): Likewise.
6827 (cortex_a15_neon_vld1_1_2_regs): Likewise.
6828 (cortex_a15_neon_vld1_3_4_regs): Likewise.
6829 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6830 (cortex_a15_neon_vld2_4_regs): Likewise.
6831 (cortex_a15_neon_vld3_vld4): Likewise.
6832 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6833 (cortex_a15_neon_vst1_3_4_regs): Likewise.
6834 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
6835 (cortex_a15_neon_vst3_vst4): Likewise.
6836 (cortex_a15_neon_vld1_vld2_lane): Likewise.
6837 (cortex_a15_neon_vld3_vld4_lane" 10
6838 (cortex_a15_neon_vst1_vst2_lane): Likewise.
6839 (cortex_a15_neon_vst3_vst4_lane): Likewise.
6840 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
6841 (cortex_a15_neon_ldm_2): Likewise.0
6842 (cortex_a15_neon_stm_2): Likewise.
6843 (cortex_a15_neon_mcr): Likewise.
6844 (cortex_a15_neon_mcr_2_mcrr): Likewise.
6845 (cortex_a15_neon_mrc): Likewise.
6846 (cortex_a15_neon_mrrc): Likewise.
6847 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6848 change.
6849 (cortex_a15_alu_shift): Likewise.
6850 (cortex_a15_alu_shift_reg): Likewise.
6851 (cortex_a15_mult32): Likewise.
6852 (cortex_a15_mult64): Likewise.
6853 (cortex_a15_block): Likewise.
6854 (cortex_a15_branch): Likewise.
6855 (cortex_a15_load1): Likewise.
6856 (cortex_a15_load3): Likewise.
6857 (cortex_a15_store1): Likewise.
6858 (cortex_a15_store3): Likewise.
6859 (cortex_a15_call): Likewise.
f43245d1 6860 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
6861 (cortex_a5_f2r): Likewise.
6862 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
6863 change.
6864 (cortex_a53_f2r): Likewise.
6865 * config/arm/cortex-a7.md
6866 (cortex_a7_branch): Update for attribute change.
6867 (cortex_a7_call): Likewise.
6868 (cortex_a7_alu_imm): Likewise.
6869 (cortex_a7_alu_reg): Likewise.
6870 (cortex_a7_alu_shift): Likewise.
6871 (cortex_a7_mul): Likewise.
6872 (cortex_a7_load1): Likewise.
6873 (cortex_a7_store1): Likewise.
6874 (cortex_a7_load2): Likewise.
6875 (cortex_a7_store2): Likewise.
6876 (cortex_a7_load3): Likewise.
6877 (cortex_a7_store3): Likewise.
6878 (cortex_a7_load4): Likewise.
6879 (cortex_a7_store4): Likewise.
6880 (cortex_a7_fpalu): Likewise.
6881 (cortex_a7_fconst): Likewise.
6882 (cortex_a7_fpmuls): Likewise.
6883 (cortex_a7_neon_mul): Likewise.
6884 (cortex_a7_fpmacs): Likewise.
6885 (cortex_a7_neon_mla: Likewise.
6886 (cortex_a7_fpmuld: Likewise.
6887 (cortex_a7_fpmacd: Likewise.
6888 (cortex_a7_fpfmad: Likewise.
6889 (cortex_a7_fdivs: Likewise.
6890 (cortex_a7_fdivd: Likewise.
6891 (cortex_a7_r2f: Likewise.
6892 (cortex_a7_f2r: Likewise.
6893 (cortex_a7_f_flags: Likewise.
6894 (cortex_a7_f_loads: Likewise.
6895 (cortex_a7_f_loadd: Likewise.
6896 (cortex_a7_f_stores: Likewise.
6897 (cortex_a7_f_stored: Likewise.
6898 (cortex_a7_neon): Likewise.
6899 * config/arm/cortex-a8-neon.md
6900 (cortex_a8_neon_mrc): Update for attribute change.
6901 (cortex_a8_neon_mrrc): Likewise.
6902 (cortex_a8_neon_int_1): Likewise.
6903 (cortex_a8_neon_int_2): Likewise.
6904 (cortex_a8_neon_int_3): Likewise.
6905 (cortex_a8_neon_int_4): Likewise.
6906 (cortex_a8_neon_int_5): Likewise.
6907 (cortex_a8_neon_vqneg_vqabs): Likewise.
6908 (cortex_a8_neon_vmov): Likewise.
6909 (cortex_a8_neon_vaba): Likewise.
6910 (cortex_a8_neon_vaba_qqq): Likewise.
6911 (cortex_a8_neon_vsma): Likewise.
6912 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6913 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6914 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6915 long_scalar): Likewise.
003bb7f3
JG
6916 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6917 (cortex_a8_neon_mla_qqq_8_16): Likewise.
6918 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6919 long_scalar_qdd_64_32_long): Likewise.
6920 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6921 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6922 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
6923 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6924 (cortex_a8_neon_shift_1): Likewise.
6925 (cortex_a8_neon_shift_2): Likewise.
6926 (cortex_a8_neon_shift_3): Likewise.
6927 (cortex_a8_neon_vshl_ddd): Likewise.
6928 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6929 (cortex_a8_neon_vsra_vrsra): Likewise.
6930 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
6931 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
6932 (cortex_a8_neon_fp_vsum): Likewise.
6933 (cortex_a8_neon_fp_vmul_ddd): Likewise.
6934 (cortex_a8_neon_fp_vmul_qqd): Likewise.
6935 (cortex_a8_neon_fp_vmla_ddd): Likewise.
6936 (cortex_a8_neon_fp_vmla_qqq): Likewise.
6937 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
6938 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
6939 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6940 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6941 (cortex_a8_neon_bp_simple): Likewise.
6942 (cortex_a8_neon_bp_2cycle): Likewise.
6943 (cortex_a8_neon_bp_3cycle): Likewise.
6944 (cortex_a8_neon_ldr): Likewise.
6945 (cortex_a8_neon_str): Likewise.
6946 (cortex_a8_neon_vld1_1_2_regs): Likewise.
6947 (cortex_a8_neon_vld1_3_4_regs): Likewise.
6948 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6949 (cortex_a8_neon_vld2_4_regs): Likewise.
6950 (cortex_a8_neon_vld3_vld4): Likewise.
6951 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6952 (cortex_a8_neon_vst1_3_4_regs): Likewise.
6953 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
6954 (cortex_a8_neon_vst3_vst4): Likewise.
6955 (cortex_a8_neon_vld1_vld2_lane): Likewise.
6956 (cortex_a8_neon_vld3_vld4_lane): Likewise.
6957 (cortex_a8_neon_vst1_vst2_lane): Likewise.
6958 (cortex_a8_neon_vst3_vst4_lane): Likewise.
6959 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
6960 (cortex_a8_neon_mcr): Likewise.
6961 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 6962 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
6963 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
6964 change.
6965 (ca9_neon_mrrc): Likewise.
6966 (cortex_a9_neon_int_1): Likewise.
6967 (cortex_a9_neon_int_2): Likewise.
6968 (cortex_a9_neon_int_3): Likewise.
6969 (cortex_a9_neon_int_4): Likewise.
6970 (cortex_a9_neon_int_5): Likewise.
6971 (cortex_a9_neon_vqneg_vqabs): Likewise.
6972 (cortex_a9_neon_vmov): Likewise.
6973 (cortex_a9_neon_vaba): Likewise.
6974 (cortex_a9_neon_vaba_qqq): Likewise.
6975 (cortex_a9_neon_vsma): Likewise.
6976 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6977 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6978 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6979 long_scalar): Likewise.
003bb7f3
JG
6980 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6981 (cortex_a9_neon_mla_qqq_8_16): Likewise.
6982 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6983 long_scalar_qdd_64_32_long): Likewise.
6984 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6985 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6986 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
6987 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6988 (cortex_a9_neon_shift_1): Likewise.
6989 (cortex_a9_neon_shift_2): Likewise.
6990 (cortex_a9_neon_shift_3): Likewise.
6991 (cortex_a9_neon_vshl_ddd): Likewise.
6992 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6993 (cortex_a9_neon_vsra_vrsra): Likewise.
6994 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
6995 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
6996 (cortex_a9_neon_fp_vsum): Likewise.
6997 (cortex_a9_neon_fp_vmul_ddd): Likewise.
6998 (cortex_a9_neon_fp_vmul_qqd): Likewise.
6999 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7000 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7001 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7002 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7003 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7004 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7005 (cortex_a9_neon_bp_simple): Likewise.
7006 (cortex_a9_neon_bp_2cycle): Likewise.
7007 (cortex_a9_neon_bp_3cycle): Likewise.
7008 (cortex_a9_neon_ldr): Likewise.
7009 (cortex_a9_neon_str): Likewise.
7010 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7011 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7012 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7013 (cortex_a9_neon_vld2_4_regs): Likewise.
7014 (cortex_a9_neon_vld3_vld4): Likewise.
7015 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7016 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7017 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7018 (cortex_a9_neon_vst3_vst4): Likewise.
7019 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7020 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7021 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7022 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7023 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7024 (cortex_a9_neon_mcr): Likewise.
7025 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7026 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7027 (cortex_a9_fps): Likewise.
7028 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7029 change.
7030 (cortex_m4_fmuls): Likewise.
7031 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7032 change.
7033 (cortex_r4_mrc): Likewise.
7034 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7035 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7036 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7037 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7038 attribute change.
003bb7f3
JG
7039 (pj4_core_to_vfp): Likewise.
7040 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7041 attribute change.
7042 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7043 (vfp_fstore): Likewise.
7044 * doc/md.texi: Change references to neon_type to refer to type.
7045
fbe0dc78
DS
70462013-09-04 Dodji Seketeli <dodji@redhat.com>
7047
7048 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7049
c167bc5b
DE
70502013-09-04 David Edelsohn <dje.gcc@gmail.com>
7051
7052 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7053 lglobl if not weak.
7054
035cb59f
ER
70552013-09-04 Easwaran Raman <eraman@google.com>
7056
7057 PR middle-end/57370
7058 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7059 (build_and_add_sum): Use it.
7060 (appears_later_in_bb): Simplify code.
7061
71191083
TJ
70622013-09-04 Teresa Johnson <tejohnson@google.com>
7063
7064 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7065
0c488213
JG
70662013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7067
7068 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7069
61a74079
JH
70702013-09-04 Jan Hubicka <jh@suse.cz>
7071
7072 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7073 * ipa-devirt.c: Include diganostic.h
7074 (odr_type_d): Add types and types_set.
7075 (hash_type_name): Work for types with vtables during LTO.
7076 (odr_hasher::remove): Fix comment; destroy types_set.
7077 (add_type_duplicate): New function,
7078 (get_odr_type): Use it.
7079 (dump_type_inheritance_graph): Dump type duplicates.
7080 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7081 graph.
7082 * tree.c (types_same_for_odr): Give exact answers on types with
7083 virtual tables.
7084
24ba8195
DS
70852013-09-04 Dodji Seketeli <dodji@redhat.com>
7086
7087 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7088 explaining their differences.
24ba8195 7089
0a04869e
SKS
70902013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7091
7092 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7093
3b18bc42
JL
70942013-09-03 Jeff Law <law@redhat.com>
7095
7096 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7097 when not threading through a joiner block. Pass joiner/no joiner
7098 state to register_jump_thread.
7099 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7100 state from argument rather than implying on path length.
7101 Dump the entire jump thread path into debugging dump.
7102 * tree-flow.h (register_jump_thread): Update prototype.
7103
ae84e151
XDL
71042013-08-29 Xinliang David Li <davidxl@google.com>
7105
7106 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7107 Remove a trivial gcc_assert.
7108
c716e67f
XDL
71092013-08-29 Xinliang David Li <davidxl@google.com>
7110
7111 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7112 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7113 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7114 Delay base decl alignment adjustment.
7115 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7116 * tree-vectorizer.h: New data structure.
7117 (set_dr_misalignment): New function.
7118 (dr_misalignment): Ditto.
7119 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7120 (vectorizable_load): Ditto.
7121 (ensure_base_align): New function.
7122 (vectorize_loops): Add dbg_cnt support.
7123 (execute_vect_slp): Ditto.
7124 * dbgcnt.def: New debug counter.
7125 * Makefile: New dependency.
7126
db8800bc
MI
71272013-09-03 Meador Inge <meadori@codesourcery.com>
7128
7129 Revert:
7130
7131 2013-08-30 Meador Inge <meadori@codesourcery.com>
7132
7133 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7134
0d9b4f5c
DE
71352013-09-03 David Edelsohn <dje.gcc@gmail.com>
7136
7137 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7138 function descriptor.
7139
29e810b9
RB
71402013-09-03 Richard Biener <rguenther@suse.de>
7141
7142 * tree-affine.c (add_elt_to_tree): Fix association issue,
7143 avoid useless converts and make sure to always return a
7144 properly typed result.
7145
dbfc2894
RB
71462013-09-03 Richard Biener <rguenther@suse.de>
7147
7148 PR middle-end/57656
7149 * fold-const.c (negate_expr_p): Fix division case.
7150 (negate_expr): Likewise.
7151
fa3bf4ce
RB
71522013-09-03 Richard Biener <rguenther@suse.de>
7153
7154 PR lto/58285
7155 * tree-streamer-out.c: Include tm.h.
7156 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7157
a64bbb3f
JH
71582013-09-03 Jan Hubicka <jh@suse.cz>
7159
7160 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7161
93ed07e2
AM
71622013-09-03 Alan Modra <amodra@gmail.com>
7163
7164 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7165 multilibs to big-endian target and vice versa.
7166 * config/rs6000/t-linux64: Use := assignment on all vars.
7167 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7168 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7169 * config/rs6000/t-linux64le: New file.
7170 * config/rs6000/t-linux64bele: New file.
7171 * config/rs6000/t-linux64lebe: New file.
7172
07d6cd64
JH
71732013-09-02 Jan Hubicka <jh@suse.cz>
7174
7175 * ipa-inline-transform.c (inline_transform): Do not
7176 optimize_inline_calls when not optimizing.
7177
8e4c9a10
JH
71782013-09-02 Jan Hubicka <jh@suse.cz>
7179
7180 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7181 duplicated nodes for assembler names.
7182 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7183 hard registers from assembler name hash.
7184
c91061e6
JH
71852013-09-02 Jan Hubicka <jh@suse.cz>
7186
7187 * ipa-split.c (execute_split_functions): Split externally visible
7188 functions called once.
7189
2fd0985c
MJ
71902013-09-02 Martin Jambor <mjambor@suse.cz>
7191
7192 PR ipa/58106
7193 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7194 linked list. When finding the correct duplicate, also consider also
7195 the caller in additon to its inlined_to node.
7196
91bd4114
JG
71972013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7198
7199 * config/aarch64/aarch64-simd-builtins.def
7200 (dup_lane_scalar): Remove.
7201 * config/aarch64/aarch64-simd.md
7202 (aarch64_simd_dup): Add 'w->w' alternative.
7203 (aarch64_dup_lane<mode>): Allow for VALL.
7204 (aarch64_dup_lane_scalar<mode>): Remove.
7205 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7206 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7207 (aarch64_get_lane_unsigned<mode>): Likewise.
7208 (aarch64_get_lane<mode>): Likewise.
7209 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7210 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7211 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7212 (VCON): Change container of V2SF.
7213 (vswap_width_name): Likewise.
7214 * config/aarch64/arm_neon.h
7215 (__aarch64_vdup_lane_any): New.
7216 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7217 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7218 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7219
d617d2d8
EB
72202013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7221
7222 PR middle-end/56382
7223 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7224 the source or the destination is a single hard register.
7225
63fdb7be
RB
72262013-09-02 Richard Biener <rguenther@suse.de>
7227
7228 PR middle-end/57511
7229 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7230 non-linear SCEVs.
7231
78de2333
RB
72322013-09-02 Richard Biener <rguenther@suse.de>
7233
7234 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7235 arithmetic to sizetype.
7236
85ff4ec6
BC
72372013-09-02 Bin Cheng <bin.cheng@arm.com>
7238
7239 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7240 Find auto-increment use both before and after candidate.
7241
576016fe
MP
72422013-09-02 Marek Polacek <polacek@redhat.com>
7243
7244 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7245
08f835dc
JH
72462013-09-01 Jan Hubicka <jh@suse.cz>
7247
7248 * Makefile.in: Add ipa-profile.o
7249 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7250 * cgraph.c (struct cgraph_propagate_frequency_data,
7251 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7252 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7253 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7254 * ipa-inline-analysis.c: Include ipa-utils.h;
7255 drop duplicated cfgloop.h.
08f835dc
JH
7256 (inline_update_callee_summaries): Update.
7257 * ipa-profile.c: New file.
7258 * ipa-utils.h (ipa_propagate_frequency): Declare.
7259 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7260 data-streamer.h, value-prof.h.
08f835dc
JH
7261 (symtab_remove_unreachable_nodes): Update profile.
7262 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7263 account_time_size, cmp_counts, dump_histogram,
7264 ipa_profile_generate_summary, ipa_profile_write_summary,
7265 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7266 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7267 Move to ipa-profile.c.
08f835dc 7268
cec8583c
JDA
72692013-09-01 John David Anglin <danglin@gcc.gnu.org>
7270
7271 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7272
bbc9396b
JH
72732013-09-01 Jan Hubicka <jh@suse.cz>
7274
7275 * common.opt (fdevirtualize-speculatively): New function.
7276 * invoke.texi (fdevirtualize-speculatively): Document.
7277 * ipa-devirt.c: Include ipa-inline.h
7278 (likely_target_p): New function.
7279 (ipa_devirt): New function.
7280 (gate_ipa_devirt): New function.
7281 (pass_data_ipa_devirt): New static var.
7282 (pass_ipa_devirt): Likewise.
7283 (make_pass_ipa_devirt): New function.
7284 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7285 (common_handle_option): Disable devirtualization when
7286 value range profiling is available.
7287 * passes.def (pass_ipa_devirt): Add.
7288 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7289 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7290
0cea211e
IS
72912013-09-01 Iain Sandoe <iain@codesourcery.com>
7292
7293 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7294 include sanitize(undefined).
7295
5e351e96
DN
72962013-08-31 Diego Novillo <dnovillo@google.com>
7297
7298 * Makefile.in (TREE_CORE_H): Define.
7299 (TREE_H): Use.
7300 (GTFILES): Add tree-core.h.
7301 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7302 size the array.
7303 * tree-core.h: New file.
7304 Move all data structures, enum, typedefs, global
7305 declarations and constants from ...
7306 * tree.h: ... here.
7307
63bf9a90
JH
73082013-08-31 Jan Hubicka <jh@suse.cz>
7309
7310 * bulitins.c (expand_builtin): Do not early exit for gcov
7311 instrumented functions.
7312
5c0abd6a
MP
73132013-08-31 Marek Polacek <polacek@redhat.com>
7314
7315 * ubsan.c: Include tm_p.h.
7316
4843f032
JH
73172013-08-31 Jan Hubicka <jh@suse.cz>
7318
8356c89c
JH
7319 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7320 warning.
7321
4843f032
JH
7322 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7323 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7324 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7325 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7326 (ipa_merge_profiles): New function.
7327 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7328 (lto_input_function_body): Likewise.
5e581212
JH
7329 * ipa-utils.h (ipa_merge_profiles): Declare.
7330 * lto-streamer.h (lto_input_function_body): Update prototype.
7331 (emit_label_in_global_context_p): Remove.
7332 * lto-symtab.c: Include ipa-utils.h
7333 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7334
57292ce9
JH
73352013-08-31 Jan Hubicka <jh@suse.cz>
7336
7337 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7338
b9cbfeeb
JH
73392013-08-31 Jan Hubicka <jh@suse.cz>
7340
7341 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7342
41dedebd
UB
73432013-08-31 Uros Bizjak <ubizjak@gmail.com>
7344
7345 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7346 "cmp" RTX before signed_comparison_operator check to account
7347 for "code" changes.
7348
06d65050
JH
73492013-08-30 Jan Hubicka <jh@suse.cz>
7350
41dedebd 7351 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7352 (detect_type_change_1): Rename to ...
7353 (detect_type_change): ... this one; early return on non-polymorphic
7354 types.
41dedebd 7355 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7356 use of detect_type_change.
7357 (compute_complex_assign_jump_func): Add param_type parameter;
7358 update use of detect_type_change_ssa.
7359 (compute_complex_ancestor_jump_func): Likewise.
7360 (ipa_get_callee_param_type): New function.
7361 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7362 update calls to the jump function computation functions.
7363
600b5b1d
TJ
73642013-08-30 Teresa Johnson <tejohnson@google.com>
7365 Steven Bosscher <steven@gcc.gnu.org>
7366
7367 * cfgrtl.c (fixup_new_cold_bb): New routine.
7368 (commit_edge_insertions): Invoke fixup_partitions.
7369 (find_partition_fixes): New routine.
7370 (fixup_partitions): Ditto.
7371 (verify_hot_cold_block_grouping): Update comments.
7372 (rtl_verify_edges): Invoke find_partition_fixes.
7373 (rtl_verify_bb_pointers): Update comments.
7374 (rtl_verify_bb_layout): Ditto.
7375 * basic-block.h (probably_never_executed_edge_p): Declare.
7376 (fixup_partitions): Ditto.
7377 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7378 * bb-reorder.c (sanitize_hot_paths): New function.
7379 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7380 sanitize_hot_paths.
7381 * predict.c (probably_never_executed_edge_p): New routine.
7382 * cfg.c (check_bb_profile): Add partition insanity warnings.
7383
0a6ea5c9
MI
73842013-08-30 Meador Inge <meadori@codesourcery.com>
7385
7386 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7387
de5a5fa1
MP
73882013-08-30 Marek Polacek <polacek@redhat.com>
7389
7390 * Makefile.in (ubsan.o): Add.
7391 (c-family/c-ubsan.o): Add.
7392 (builtins.o): Add ubsan.h dependency.
7393 * ubsan.h: New file.
7394 * ubsan.c: New file.
7395 * common.opt: Add -fsanitize=undefined option.
7396 (flag_sanitize): Add variable.
7397 (fsanitize=): Add option. Add Driver.
7398 (fsanitize=thread): Remove option.
7399 (fsanitize=address): Likewise.
7400 (static-libubsan): New option.
7401 * doc/invoke.texi: Document the new flag and -static-libubsan.
7402 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7403 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7404 * builtin-attrs.def (ATTR_COLD): Define.
7405 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7406 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7407 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7408 * flag-types.h (sanitize_code): New enum.
7409 * opts.c (common_handle_option): Parse command line arguments
7410 of -fsanitize=. Add -fsanitize=unreachable option.
7411 * varasm.c (get_variable_section): Adjust.
7412 (assemble_noswitch_variable): Likewise.
7413 (assemble_variable): Likewise.
7414 (output_constant_def_contents): Likewise.
7415 (categorize_decl_for_section): Likewise.
7416 (place_block_symbol): Likewise.
7417 (output_object_block): Likewise.
7418 * builtins.def: Likewise.
7419 * toplev.c (compile_file): Likewise.
7420 (process_options): Likewise.
7421 * cppbuiltin.c: Likewise.
7422 * tsan.c (tsan_pass): Likewise.
7423 (tsan_gate): Likewise.
7424 (tsan_gate_O0): Likewise.
7425 * cfgexpand.c (partition_stack_vars): Likewise.
7426 (expand_stack_vars): Likewise.
7427 (defer_stack_allocation): Likewise.
7428 (expand_used_vars): Likewise.
7429 * cfgcleanup.c (old_insns_match_p): Likewise.
7430 * asan.c (asan_finish_file): Likewise.
7431 (asan_instrument): Likewise.
7432 (gate_asan): Likewise.
7433 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7434 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7435 (asan_global_struct): Use pointer_sized_int_node instead
7436 calling build_nonstandard_integer_type.
7437 (initialize_sanitizer_builtins): Likewise.
7438 (asan_finish_file): Likewise.
7439 * gcc.c: Document %{%:function(args):X}.
7440 (static_spec_functions): Add sanitize.
7441 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7442 store funcval != NULL there.
7443 (do_spec_1): Adjust handle_spec_function caller.
7444 (handle_braces): Allow %:function(args) as condition.
7445 (sanitize_spec_function): New function.
7446 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7447 (LIBUBSAN_SPEC): Likewise.
7448 (LIBUBSAN_EARLY_SPEC): Likewise.
7449 (SANITIZER_SPEC): Handle libubsan.
7450 (SANITIZER_EARLY_SPEC): Likewise.
7451 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7452 instead of fsanitize=address.
7453 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7454 instead of fsanitize=address*.
7455 * builtins.c: Include ubsan.h.
7456 (fold_builtin_0): Instrument __builtin_unreachable.
7457 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7458 instead of flag_asan.
7459 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7460 (pointer_sized_int_node): Define.
41dedebd 7461 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7462
f07f30cf
MS
74632013-08-30 Mike Stump <mikestump@comcast.net>
7464
7465 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7466 with RE patterns.
7467
8a41354f
JH
74682013-08-29 Jan Hubicka <jh@suse.cz>
7469
7470 * cgraph.c (cgraph_function_body_availability): Handle weakref
7471 correctly.
7472 * passes.def: Remove pass_fixup_cfg.
7473 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7474 track when we need to remove functions.
7475 (gate_ipa_inline): Execute inlining always; add comment why.
7476 (pass_data_ipa_inline): Remove TODO_remove_functions.
7477 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7478 do not produce summaries.
7479 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7480 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7481 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7482 constant pool and vtable.
7483
dc8d7a0f
TB
74842013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7485
41dedebd
UB
7486 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7487 New arm_neon.h's internal macros to specify 64-bit constants.
7488 Avoid using stdint.h's macros.
dc8d7a0f 7489
ac7eacd2
JR
74902013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7491
7492 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7493 before applying REG_P.
7494
8b29fd4e
JJ
74952013-08-30 Jakub Jelinek <jakub@redhat.com>
7496
7497 PR tree-optimization/58277
7498 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7499 after seeing too many stmts with vdef in between dombb and current
7500 bb, invalidate everything.
7501
26d75703
RB
75022013-08-30 Richard Biener <rguenther@suse.de>
7503
7504 * fold-const.c (fold_single_bit_test): Fix overflow test.
7505
f7e088e7
EB
75062013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7507
7508 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7509 and which can live in a register, always retrieve the value on entry.
7510 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7511 passed by invisible reference specially.
7512 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7513 (vt_add_function_parameter): Correctly deal with a parameter passed by
7514 invisible reference.
7515
75162013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7517
7518 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7519
6e8dad05
RB
75202013-08-30 Richard Biener <rguenther@suse.de>
7521
7522 PR tree-optimization/58228
7523 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7524 allow invariant loads in nested loop vectorization.
7525
062ef2c8
RB
75262013-08-30 Richard Biener <rguenther@suse.de>
7527
7528 PR tree-optimization/58223
7529 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7530 (has_anti_or_output_dependence): ... this and adjust to also
7531 look for output dependences.
7532 (mark_nodes_having_upstream_mem_writes): Adjust.
7533 (rdg_flag_uses): Likewise.
7534
7a764c60
RB
75352013-08-30 Richard Biener <rguenther@suse.de>
7536
7537 PR tree-optimization/58010
7538 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7539 assert that we have a loop-closed PHI.
7540
82e9d642
JH
75412013-08-29 Jan Hubicka <jh@suse.cz>
7542
7543 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7544 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7545 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7546 (lto_free_function_in_decl_state_for_node): New function.
7547
9cc1fb4b
XDL
75482013-08-29 Xinliang David Li <davidxl@google.com>
7549
41dedebd 7550 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7551 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7552 Emit alignment peeling message with default -fopt-info.
7553 (vect_loop_versioning): Emit loop version info message.
41dedebd 7554 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7555 (execute_vect_slp): Ditto.
7556
440a5082
EB
75572013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7558
7559 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7560 of the clone from the DECL_NAME of the original function.
7561
3fa3690d
OE
75622013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7563
7564 * passes.c (register_pass): Add overload.
7565 * tree-pass.h (register_pass): Forward declare it. Add comment.
7566
0170f33c
JH
75672013-08-29 Jan Hubicka <jh@suse.cz>
7568
41dedebd
UB
7569 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7570 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7571 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7572 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7573 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7574 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7575 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7576 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7577
103ff0d6
TJ
75782013-08-29 Teresa Johnson <tejohnson@google.com>
7579
7580 * dumpfile.c (dump_loc): Output column number.
7581 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7582 * doc/invoke.texi: Document optall -fopt-info flag.
7583 * profile.c (read_profile_edge_counts): Use new dump framework.
7584 (compute_branch_probabilities): Ditto.
7585 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7586 when pass not in any opt group.
7587 * pass_manager.h (pass_manager::get_pass_profile): New method.
7588 * value-prof.c (check_counter): Use new dump framework.
7589 (check_ic_target): Ditto.
7590 * coverage.c (get_coverage_counts): Ditto.
7591 (coverage_init): Setup new dump framework.
7592
301bbc16
RB
75932013-08-29 Richard Biener <rguenther@suse.de>
7594
7595 PR tree-optimization/58246
7596 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7597 handle the dominance check inside a basic-block.
7598
1b275000
RB
75992013-08-29 Richard Biener <rguenther@suse.de>
7600
7601 PR middle-end/57287
7602 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7603 of default defs that appear in abnormal PHI nodes.
7604
6b1184ba
RB
76052013-08-29 Richard Biener <rguenther@suse.de>
7606
7607 PR tree-optimization/57685
7608 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7609 single-use operands to avoid exponential complexity.
7610
1b08b734
DC
76112013-08-28 Dehao Chen <dehao@google.com>
7612
7613 * ipa-inline.c (edge_badness): Fix integer underflow.
7614
48a3fa69
UB
76152013-08-28 Uros Bizjak <ubizjak@gmail.com>
7616
7617 * gtm-builtins.def (_ITM_free): Declare leaf.
7618
215f73e6
JJ
76192013-08-28 Jakub Jelinek <jakub@redhat.com>
7620
7621 PR target/58067
7622 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7623 (*tls_local_dynamic_base_64_largepic): Likewise.
7624 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7625 Remove predicate from call operand.
7626 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7627 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7628
34554d1a
JL
76292013-08-28 Jeff Law <law@redhat.com>
7630
7631 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7632 checks for the number of predecessors and successors allowed.
7633 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7634 which require copying a joiner block if there is a request which
7635 is a subpath that requires no joiner block copying.
7636
c01c111b
JH
76372013-08-28 Jan Hubicka <jh@suse.cz>
7638
7639 * lto-streamer-out.c (DFS_write_tree_body): Drop
7640 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7641 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7642 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7643 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7644 Do not read DECL_ERROR_ISSUED.
7645 (unpack_ts_decl_with_vis_value_fields): Do not read
7646 DECL_DEFER_OUTPUT.
48a3fa69
UB
7647 (lto_input_ts_binfo_tree_pointers): Do not read
7648 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7649 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7650 write DECL_ERROR_ISSUED..
7651 (pack_ts_decl_with_vis_value_fields): Do not write
7652 DECL_DEFER_OUTPUT.
7653 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7654 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7655 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7656 * tree.h (tree_decl_common): Update comment.
7657 (DECL_ERROR_ISSUED): Remove.
7658
4b128ece
JJ
76592013-08-28 Jakub Jelinek <jakub@redhat.com>
7660
7661 PR middle-end/58257
7662 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7663
12211b99 76642013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7665
7666 * builtins.def (free): Declare leaf.
7667
8dce4dbc
DM
76682013-08-27 David Malcolm <dmalcolm@redhat.com>
7669
7670 * gdbhooks.py: New.
7671 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7672 * configure: Regenerate.
7673
b8f6e610
MJ
76742013-08-27 Martin Jambor <mjambor@suse.cz>
7675
7676 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7677 (ipa_ancestor_jf_data): Likewise.
7678 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7679 (ipa_get_jf_pass_through_type_preserved): New function.
7680 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7681 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7682 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
7683 (ipa_get_jf_ancestor_result): Likewise.
7684 (propagate_vals_accross_pass_through): Use
7685 ipa_get_jf_pass_through_result to do all the value mappings.
7686 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7687 type_preserved flag.
7688 (ipa_set_jf_cst_copy): New function.
7689 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7690 (ipa_set_jf_arith_pass_through): Likewise.
7691 (ipa_set_ancestor_jf): Likewise.
7692 (compute_complex_assign_jump_func): Set type_preserved instead of
7693 punting.
7694 (ipa_compute_jump_functions_for_edge): Likewise.
7695 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7696 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 7697 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
7698 (ipa_write_jump_function): Stream the type_preserved flags.
7699 (ipa_read_jump_function): Likewise.
7700
74bf76ed
JJ
77012013-08-27 Jakub Jelinek <jakub@redhat.com>
7702 Aldy Hernandez <aldyh@redhat.com>
7703
7704 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7705 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7706 * function.h (struct function): Add has_force_vect_loops and
7707 has_simduid_loops.
12211b99 7708 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
7709 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7710 handle it.
7711 * gimple.def: Update CLAUSES comments.
7712 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7713 (gimple_build_omp_for): Add argument to prototype.
7714 (gimple_omp_for_kind): New.
7715 (gimple_omp_for_set_kind): New.
7716 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7717 GOVD_DATA_SHARE_CLASS.
7718 (enum omp_region_type): Add ORT_SIMD.
7719 (gimple_add_tmp_var): Handle ORT_SIMD.
7720 (gimplify_var_or_parm_decl): Same.
7721 (is_gimple_stmt): Same.
7722 (omp_firstprivatize_variable): Same.
7723 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7724 (omp_notice_variable): Handle ORT_SIMD.
12211b99 7725 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
7726 (omp_check_private): Handle ORT_SIMD.
7727 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7728 OMP_CLAUSE_SAFELEN.
7729 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7730 Handle OMP_CLAUSE_LASTPRIVATE.
7731 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7732 OMP_CLAUSE_SAFELEN.
7733 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7734 (gimplify_expr): Handle OMP_SIMD.
7735 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7736 (expand_GOMP_SIMD_VF): New.
7737 (expand_GOMP_SIMD_LAST_LANE): New.
7738 * internal-fn.def (GOMP_SIMD_LANE): New.
7739 (GOMP_SIMD_VF): New.
7740 (GOMP_SIMD_LAST_LANE): New.
7741 * omp-low.c: Include target.h.
7742 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7743 OMP_CLAUSE_SAFELEN.
7744 (check_omp_nesting_restrictions): Same.
7745 (omp_max_vf): New.
7746 (lower_rec_simd_input_clauses): New.
7747 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7748 OMP_CLAUSE_LINEAR.
7749 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7750 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7751 (expand_omp_build_assign): New.
7752 (expand_omp_for_init_counts): New.
7753 (expand_omp_for_init_vars): New.
7754 (extract_omp_for_update_vars): New.
7755 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7756 and rewrite accordingly.
7757 (expand_omp_simd): New.
7758 (expand_omp_for): Use expand_omp_simd.
7759 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7760 (lower_omp_for): Do not lower the body.
7761 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
7762 in their own loops.
7763 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
7764 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
7765 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
7766 (gate_tree_if_conversion): Similarly.
7767 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
7768 gimple_build_omp_for.
7769 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
7770 * tree-parloops (create_parallel_loop): Pass kind argument to
7771 gimple_build_omp_for.
7772 * tree-pretty-print.c (dump_omp_clause): Add cases for
7773 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
7774 OMP_CLAUSE__SIMDUID_.
7775 (dump_generic_node): Handle OMP_SIMD.
7776 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
7777 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
7778 unroll OMP_SIMD loops here.
12211b99 7779 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 7780 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 7781 loop->safelen.
74bf76ed
JJ
7782 (vect_analyze_data_refs): Handle simd loops.
7783 * tree-vect-loop.c (vectorizable_live_operation): Handle
7784 IFN_GOMP_SIMD*.
12211b99 7785 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
7786 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
7787 (vectorizable_load): Same.
12211b99 7788 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
7789 (struct simduid_to_vf): New.
7790 (simduid_to_vf::hash): New.
7791 (simduid_to-vf::equal): New.
7792 (struct simd_array_to_simduid): New.
7793 (simd_array_to_simduid::hash): New.
7794 (simd_array_to_simduid::equal): New.
7795 (adjust_simduid_builtins): New.
7796 (struct note_simd_array_uses_struct): New.
7797 (note_simd_array_uses_cb): New.
7798 (note_simd_array_uses): New.
7799 (vectorize_loops): Handle simd hints and adjust simd builtins
7800 accordingly.
7801 * tree-vectorizer.h (struct _stmt_vec_info): Add
7802 simd_lane_access_p field.
7803 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
7804 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
7805 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
7806 (omp_clause_code_name): Same.
7807 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
7808 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
7809 * tree.def (OMP_SIMD): New entry.
12211b99
UB
7810 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
7811 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
7812 (OMP_CLAUSE_DECL): Adjust range for new clauses.
7813 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
7814 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
7815 (OMP_CLAUSE_LINEAR_STEP): New.
7816 (OMP_CLAUSE_SAFELEN_EXPR): New.
7817 (OMP_CLAUSE__SIMDUID__DECL): New.
7818 (find_omp_clause): New prototype.
7819
d0cf4e84
L
78202013-08-27 H.J. Lu <hongjiu.lu@intel.com>
7821
7822 * config/i386/driver-i386.c (host_detect_local_cpu): Update
7823 Haswell processor detection.
7824
992592ec
CW
78252013-08-27 Christian Widmer <shadow@umbrox.de>
7826
7827 PR target/57927
7828 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7829 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
7830 AVX2 capable processors.
7831
9116eb22
TB
78322013-08-27 Tejas Belagod <tejas.belagod@arm.com>
7833
7834 * config/aarch64/arm_neon.h: Replace all inline asm implementations
7835 of vget_low_* with implementations in terms of other intrinsics.
7836
1c5abb53
MG
78372013-08-27 Marc Glisse <marc.glisse@inria.fr>
7838
7839 PR middle-end/57219
7840 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
7841 values to -1, 0 and 1.
7842
2e100703
VP
78432013-08-27 Vidya Praveen <vidyapraveen@arm.com>
7844
7845 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
7846 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
7847 (<optab><mode>3_insn): Remove.
7848 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
7849 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7850 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7851 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
7852 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
7853 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
7854 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
7855 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
7856 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
7857 (ror<mode>3_insn): Likewise.
7858 * config/aarch64/predicates.md (aarch64_simd_register): New.
7859
4ded8276
RB
78602013-08-27 Richard Biener <rguenther@suse.de>
7861
7862 PR tree-optimization/57521
7863 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7864 one edge is non-critical.
7865 (find_phi_replacement_condition): Make sure to use a non-critical
7866 edge. Cleanup and remove old bug workarounds.
7867 (bb_postdominates_preds): Remove.
7868 (if_convertible_loop_p_1): Do not compute post-dominators.
7869 (combine_blocks): Do not free post-dominators.
7870 (main_tree_if_conversion): Likewise.
7871 (pass_data_if_conversion): Add TODO_verify_ssa.
7872
5aa11061
DD
78732013-08-27 DJ Delorie <dj@redhat.com>
7874
7875 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
7876
fd91cfe3
YZ
78772013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
7878
7879 * function.c (assign_parm_find_data_types): Set passed_mode and
7880 nominal_mode to the TYPE_MODE of nominal_type for the built
7881 pointer type in case of the struct-pass-by-reference.
7882
907555ce
JR
78832013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7884
7885 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
7886 (UINT16_TYPE): Change default to "unsigned int".
7887
67518c93
JR
7888 * config/avr/avr.opt (mfract-convert-truncate): New option.
7889 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
7890 is set, round negative fractional integers according to n1169
7891 when converting to integer types.
7892
d6d989fc
JH
78932013-08-26 Jan Hubicka <jh@suse.cz>
7894
7895 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
7896 methods can not be called indirectly when their address is not taken.
7897
2aa3da06
JH
78982013-08-26 Jan Hubicka <jh@suse.cz>
7899
12211b99
UB
7900 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
7901 ctor_for_folding.
2aa3da06 7902
0987ffe7
JH
79032013-08-26 Jan Hubicka <jh@suse.cz>
7904
7905 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
7906 can be unshared.
7907
befe8647
JR
79082013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7909
7910 * reload.c (find_valid_class): Allow classes that do not include
7911 FIRST_PSEUDO_REGISTER - 1.
7912
a21e735e
JH
79132013-08-26 Jan Hubicka <jh@suse.cz>
7914
7915 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
7916 fix edge count/frequency when speculation failed; fix type check
7917 for the direct call.
7918
e067bd43
JH
79192013-08-26 Jan Hubicka <jh@suse.cz>
7920
7921 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
7922
e8aec975
JH
79232013-08-26 Jan Hubicka <jh@suse.cz>
7924
7925 * ipa-inline-transform.c (inline_transform): Be ready for basic block
7926 to be changed by edge redirection.
7927
d0b66480
JH
79282013-08-26 Jan Hubicka <jh@suse.cz>
7929
12211b99
UB
7930 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
7931 formating; add sanity check.
d0b66480
JH
7932 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
7933 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
7934 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
7935 (resolve_noninline_speculation): Update callee keys, too.
7936
0f9aaac7
JH
79372013-08-26 Jan Hubicka <jh@suse.cz>
7938
7939 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
7940 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
7941
4b37444e
JR
79422013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7943
7944 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
7945 into proper place.
7946
5339fc0c
UB
79472013-08-26 Uros Bizjak <ubizjak@gmail.com>
7948
7949 * config/i386/i386.c (ix86_debug_options): Remove prototype.
7950 (x86_64_elf_select_section): Ditto.
7951 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
7952 arguments.
7953 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
7954 (output_set_got): Ditto.
7955 (ix86_unary_operator_ok): Ditto.
7956 (ix86_expand_builtin): Ditto.
7957
d5c3d3ef
JH
79582013-08-23 Jan Hubicka <jh@suse.cz>
7959
5339fc0c 7960 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 7961
5b1e7435
JH
79622013-08-23 Jan Hubicka <jh@suse.cz>
7963
7964 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
7965 (tree_decl_with_vis): Add FINAL field.
7966
ead69dac
JL
79672013-08-23 Jeff Law <law@redhat.com>
7968
7969 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
7970 the debugging dump when the expression is fully redundant.
7971
025311c4
GDR
79722013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7973
7974 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
7975 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
7976 * pretty-print.c (pp_formatted_text_data): Likewise.
7977 (pp_write_text_to_stream): Likewise.
7978 (pp_write_text_as_dot_label_to_stream): Likewise.
7979 (pp_append_r): Likewise.
7980 (pp_format): Likewise.
7981 (pp_flush): Likewise.
7982 (pp_clear_output_area): Likewise.
7983 (pp_append_text): Likewise.
7984 (pp_formatted_text): Likewise.
7985 (pp_remaining_character_count_for_line): Likewise.
7986 (pp_newline): Likewise.
7987 (pp_character): Likewise.
7988 (output_buffer::~output_buffer): Define.
7989 (pretty_printer::~pretty_printer): Destruct output buffer.
7990 * pretty-print.h (output_buffer::~output_buffer): Declare.
7991 (pretty_printer::~pretty_printer): Declare virtual.
7992
0cadbfaa
MG
79932013-08-24 Marc Glisse <marc.glisse@inria.fr>
7994
7995 PR other/57324
7996 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
7997 HOST_WIDE_INT_M1U): New macros.
7998 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
7999 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8000 unsigned -1 for lshift.
8001 * cse.c (cse_insn): Likewise.
8002 * double-int.c (rshift_double, lshift_double): Likewise.
8003 * builtins.c (fold_builtin_bitop): Likewise.
8004 * combine.c (force_to_mode): Likewise.
8005 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8006 * simplify-rtx.c (simplify_const_unary_operation,
8007 simplify_const_binary_operation): Likewise.
8008 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8009 check_va_list_escapes): Likewise.
8010 * rtlanal.c (nonzero_bits1): Likewise.
8011 * expmed.c (expand_smod_pow2): Likewise.
8012 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8013
009e5353
JH
80142013-08-23 Jan Hubicka <jh@suse.cz>
8015
8016 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8017 as having address taken.
8018
c4be6568
JH
80192013-08-23 Jan Hubicka <jh@suse.cz>
8020
64cbf23d
JH
8021 * ipa-utils.h (method_class_type): Declare.
8022 * ipa-devirt.c (method_class_type): Export.
8023
c4be6568
JH
8024 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8025 do not walk base classes of anonymous types.
8026
97aba8e9
KK
80272013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8028
8029 PR rtl-optimization/58220
8030 PR regression/58221
8031 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8032 handle SEQUENCE insns properly.
8033
0fc80001
GDR
80342013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8035
8036 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8037 definition.
8038 (pp_newline_and_indent): Likewise.
8039 (pp_separate_with): Likewise.
8040 * pretty-print.c (pp_newline_and_flush): Define.
8041 (pp_newline_and_indent): Likewise.
8042 (pp_separate_with): Likewise.
8043
520a5868
JJ
80442013-08-23 Jakub Jelinek <jakub@redhat.com>
8045
8046 PR target/58218
8047 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8048 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8049
e500c62a
KY
80502013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8051
f43245d1
UB
8052 * config/i386/predicates.md (ext_sse_reg_operand): New.
8053 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8054 predicate to determine if EVEX is needed.
8055 (*movsi_internal): Ditto.
8056 (*movdf_internal): Ditto.
8057 (*movsf_internal): Ditto.
f43245d1 8058 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8059
6b00d7dd
JJ
80602013-08-23 Jakub Jelinek <jakub@redhat.com>
8061
8062 PR tree-optimization/58209
8063 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8064 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8065 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8066 emit POINTER_PLUS_EXPR.
8067 (create_tailcall_accumulator): For pointer result type accumulate in
8068 sizetype type.
8069
4f2a9f90
PC
80702013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8071
8072 * configure.ac: Add backslashes missing from the last change.
8073 * configure: Regenerate.
8074
7bf4274e
JH
80752013-08-22 Jan Hubicka <jh@susue.cz>
8076
4f2a9f90
PC
8077 * ipa.c (function_and_variable_visibility): First remember function
8078 was global and then make it local.
7bf4274e 8079
1bea243d
JB
80802013-08-22 Julian Brown <julian@codesourcery.com>
8081
8082 * configure.ac: Add aarch64 to list of arches which use "nop" in
8083 debug_line test.
8084 * configure: Regenerate.
8085
bcba7ecc
AK
80862013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8087
8088 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8089 gnu_libc_has_function.
8090 * config/s390/tpf.h: Likewise.
8091
4c495b0d
JH
80922013-08-22 Jan Hubicka <jh@susue.cz>
8093
8094 * timevar.c (validate_phases): Add cast.
8095
5e302bca
JH
80962013-08-22 Jan Hubicka <jh@susue.cz>
8097
8098 * timevar.c (validate_phases): Use size_t for memory.
8099 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8100
da6ca2b5
GDR
81012013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8102
8103 * pretty-print.h (output_buffer::output_buffer): Declare.
8104 (pretty_printer::pretty_printer): Likewise.
8105 (pp_construct): Remove.
8106 * pretty-print.c (output_buffer::output_buffer): Define.
8107 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8108 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8109 (print_gimple_expr): Likewise.
8110 (print_gimple_seq): Likewise.
8111 (gimple_dump_bb): Likewise.
8112 * sched-vis.c (dump_value_slim): Likewise.
8113 (dump_insn_slim): Likewise.
8114 (dump_rtl_slim): Likewise.
8115 (str_pattern_slim): Likewise.
8116 * tree-mudflap.c (mf_varname_tree): Likewise.
8117 * graph.c (print_graph_cfg): Likewise.
8118 (start_graph_dump): Likewise.
8119 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8120 placement-new.
8121 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8122 pretty printer initialization.
8123 * coretypes.h (diagnostic_context): Remove superflous type alias
8124 declaration.
8125 (pretty_printer): Likewise. Declare directly as a class.
8126 (pretty_print_info): Remove declaration as class.
8127 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8128 and pp_clear_output_area.
8129 (asan_add_global): Likewise.
8130
0e1474e5
JH
81312013-08-22 Jan Hubicka <jh@suse.cz>
8132
8133 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8134 * ipa-utils.h (update_type_inheritance_graph): Declare.
8135 (possible_polymorphic_call_target_p): Declare.
8136 (possible_polymorphic_call_target_p): New.
8137 * ipa-devirt.c: Update toplevel comments.
8138 (cached_polymorphic_call_targets): Move up.
8139 (odr_type_d): Move ID down.
8140 (polymorphic_type_binfo_p): Update comment.
8141 (odr_hasher::remove): Likewise;
8142 (get_odr_type): Set anonymous_namespace.
8143 (dump_odr_type): Dump it.
8144 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8145 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8146 (record_binfo): Add comment.
5339fc0c
UB
8147 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8148 built.
0e1474e5
JH
8149 (devirt_node_removal_hook): Do not iCE when cache is freed.
8150 (possible_polymorphic_call_target_p): New predicate.
8151 (update_type_inheritance_graph): New function.
8152
3f97cb0b
AI
81532013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8154 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8155 Sergey Lega <sergey.s.lega@intel.com>
8156 Anna Tikhonova <anna.tikhonova@intel.com>
8157 Ilya Tocar <ilya.tocar@intel.com>
8158 Andrey Turetskiy <andrey.turetskiy@intel.com>
8159 Ilya Verbin <ilya.verbin@intel.com>
8160 Kirill Yukhin <kirill.yukhin@intel.com>
8161 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8162
8163 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8164 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8165 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8166 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8167 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8168 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8169 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8170 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8171 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8172 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8173 OPT_mavx512pf, OPT_mavx512er cases.
8174 * config/i386/constraints.md (v): New constraint.
8175 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8176 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8177 (bit_AVX512CD): New.
8178 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8179 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8180 * config/i386/i386-c.c (ix86_target_macros_internal):
8181 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8182 __AVX512PF__.
8183 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8184 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8185 * config/i386/i386.c (regclass_map, dbx_register_map)
8186 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8187 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8188 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8189 -mavx512pf options.
8190 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8191 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8192 -mavx512pf options. Fix formatting.
8193 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8194 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8195 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8196 -mavx512cd, -mavx512pf options.
8197 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8198 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8199 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8200 ALL_SSE_REGS.
8201 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8202 (ix86_set_reg_reg_cost): Ditto.
8203 (x86_order_regs_for_local_alloc): Ditto.
8204 (MAX_VECT_LEN): Extend to 64-byte.
8205 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8206 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8207 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8208 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8209 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8210 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8211 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8212 (SSE_REG_MODE_P): Support new modes.
8213 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8214 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8215 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8216 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8217 (REG_CLASS_CONTENTS): Add new registers.
8218 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8219 (EXT_REX_SSE_REGNO_P): New.
8220 (HI_REGISTER_NAMES): Add new registers.
8221 * config/i386/i386.md: Define constants for new registers.
8222 (mode): Add new 512-bit modes.
8223 (prefix): Support evex prefix.
8224 (isa): Support avx512f, noavx512f, fma_avx512f.
8225 (ssemodesuffix): Add new 512-bit modes.
8226 (movxi): New.
8227 (*movxi_internal_avx512f): Ditto.
8228 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8229 Support MODE_XI.
8230 (*movsi_internal): Likewise.
8231 (*movdf_internal): Likewise.
8232 (*movsf_internal): Likewise.
8233 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8234 (<code><mode>3): Likewise.
5339fc0c
UB
8235 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8236 New.
3f97cb0b
AI
8237 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8238 with the new constraint "v".
8239 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8240 modes.
8241 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8242 with the new constraint "v".
8243 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8244 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8245 (*<plusminus_insn><mode>3): Likewise.
8246 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8247 (*mul<mode>3): Likewise.
8248 (<sse>_vmmul<mode>3): Likewise.
8249 (<sse>_div<mode>3): Likewise.
8250 (<sse>_vmdiv<mode>3): Likewise.
8251 (<sse>_sqrt<mode>2): Likewise.
8252 (<sse>_vmsqrt<mode>2): Likewise.
8253 (*<code><mode>3_finite): Likewise.
8254 (*<code><mode>3) <smaxmin>: Likewise.
8255 (<sse>_vm<code><mode>3): Likewise.
8256 (*<code><mode>3) <any_logic>: Likewise.
8257 (*fma_fmadd_<mode>): Likewise.
8258 (*fma_fmsub_<mode>): Likewise.
8259 (*fma_fnmadd_<mode>): Likewise.
8260 (*fma_fnmsub_<mode>): Likewise.
8261 (*fma_fmaddsub_<mode>): Likewise.
8262 (*fma_fmsubadd_<mode>): Likewise.
8263 (*fmai_fmadd_<mode>): Likewise.
8264 (*fmai_fmsub_<mode>): Likewise.
8265 (*fmai_fnmadd_<mode>): Likewise.
8266 (*fmai_fnmsub_<mode>): Likewise.
8267 (sse_cvtsi2ss): Likewise.
8268 (sse_cvtsi2ssq): Likewise.
8269 (sse_cvtss2si): Likewise.
8270 (sse_cvtss2si_2): Likewise.
8271 (sse_cvtss2siq): Likewise.
8272 (sse_cvtss2siq_2): Likewise.
8273 (sse_cvttss2si): Likewise.
8274 (sse_cvtss2siq_2): Likewise.
8275 (float<sseintvecmodelower><mode>2): Likewise.
8276 (sse2_cvtsd2si_2): Likewise.
8277 (sse2_cvtsd2siq_2): Likewise.
8278 (*<plusminus_insn><mode>3): Likewise.
8279 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8280 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8281 (ashr<mode>3): Likewise.
8282 (<shift_insn><mode>3): Likewise.
8283 (avx2_<code><mode>3): Likewise.
8284 (*avx2_<code><mode>3): Likewise.
8285 (*andnot<mode>3): Likewise.
8286 (*<code><mode>3) <any_logic>: Likewise.
8287 (abs<mode>2): Likewise.
8288 (avx2_permvar<mode>): Likewise.
8289 (avx2_perm<mode>_1): Likewise.
8290 (*avx_vpermilp<mode>): Likewise.
8291 (avx_vpermilvar<mode>3): Likewise.
8292 (avx2_ashrv<mode>): Likewise.
8293 (avx2_<shift_insn>v<mode>): Likewise.
8294 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8295 -mavx512cd.
8296 * doc/rtl.texi: Document XImode.
8297
dd5e8423
JL
82982013-08-21 Jeff Law <law@redhat.com>
8299
b9ebee5d
JL
8300 * tree-flow.h (register_jump_thread): Pass vector of edges
8301 instead of each important edge.
8302 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8303 thread path into a vector and pass that to register_jump_thread.
8304 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8305 passed in edge vector to the current 3-edge form.
8306
dd5e8423
JL
8307 Revert:
8308 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8309
9bb6628e 8310 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8311 delete_unmarked_insns removed anything.
8312
445dc8df
JR
83132013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8314
8315 * reload.h (struct reg_equivs): Rename to ..
8316 (struct reg_equivs_s): .. this.
8317
e0df53dd
ML
83182013-08-20 Martin Liska <marxin.liska@gmail.com>
8319
8320 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8321
e7d1d3eb
RO
83222013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8323
5339fc0c 8324 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8325
5562e26e
JL
83262013-08-21 Jeff Law <law@redhat.com>
8327
8328 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8329 simplify assignments too. If the RHS collapses to a singleton
8330 range, then return the value for the range.
8331
c7ecdec6
KY
83322013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8333
7a5911d3
UB
8334 * config/i386/sse.md (V16): Rename to...
8335 (VMOVE): this.
8336 (mov<mode>): Update iterator name.
8337 (*mov<mode>_internal): Ditto.
8338 (push<mode>1): Ditto.
8339 (movmisalign<mode>): Ditto.
c7ecdec6 8340
bfa3b50a
JH
83412013-08-20 Jan Hubicka <jh@suse.cz>
8342
8343 PR bootstrap/58186
8344 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8345 entry for direct edges.
8346 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8347
6cd4d135
DM
83482013-08-20 David Malcolm <dmalcolm@redhat.com>
8349
8350 Revert my last two changes, r201865 and r201864:
8351
8352 Revert r201865:
8353 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8354
8355 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8356 instances can own GC refs.
8357
8358 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8359 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8360 (gcc::context::gt_pch_nx): Likewise.
8361 (gcc::context::gt_pch_nx): Likewise.
8362 * ggc.h (gt_ggc_mx <T>): New.
8363 (gt_pch_nx_with_op <T>): New.
8364 (gt_pch_nx <T>): New.
8365 * passes.c (opt_pass::gt_ggc_mx): New.
8366 (opt_pass::gt_pch_nx): New.
8367 (opt_pass::gt_pch_nx_with_op): New.
8368 (pass_manager::gt_ggc_mx): New.
8369 (pass_manager::gt_pch_nx): New.
8370 (pass_manager::gt_pch_nx_with_op): New.
8371 (pass_manager::operator new): Use
8372 ggc_internal_cleared_alloc_stat rather than xcalloc.
8373 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8374 (pass_manager::gt_ggc_mx): New.
8375 (pass_manager::gt_pch_nx): New.
8376 (pass_manager::gt_pch_nx_with_op): New.
8377 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8378 (opt_pass::operator new): New.
8379 (opt_pass::gt_ggc_mx): New.
8380 (opt_pass::gt_pch_nx): New.
8381 (opt_pass::gt_pch_nx_with_op): New.
8382
8383 Revert r201864:
8384 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8385
8386 * Makefile.in (GTFILES): Add context.h.
8387 * context.c (gcc::context::operator new): New.
8388 (gcc::context::gt_ggc_mx): New.
8389 (gcc::context::gt_pch_nx): New.
8390 (gcc::context::gt_pch_nx): New.
8391 * context.h (gcc::context): Add GTY((user)) marking.
8392 (gcc::context::operator new): New.
8393 (gcc::context::gt_ggc_mx): New.
8394 (gcc::context::gt_pch_nx): New.
8395 (gcc::context::gt_pch_nx): New.
8396 (g): Add GTY marking.
8397 (gt_ggc_mx (gcc::context *)): New.
8398 (gt_pch_nx (gcc::context *)): New.
8399 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8400 void *cookie)): New.
8401 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8402
a046136a
AM
84032013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8404
8405 * dce.c (fini_dce): Call df_analyze again just in case
8406 delete_unmarked_insns removed anything.
8407
67598720
TJ
84082013-08-20 Teresa Johnson <tejohnson@google.com>
8409
8410 PR rtl-optimizations/57451
8411 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8412 from crossing split section boundaries.
8413
f8693faf
MGD
84142013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8415
8416 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8417 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8418 with MULTLIB_DEFAULTS.
8419
7d0b9a9c
NC
84202013-08-20 Nick Clifton <nickc@redhat.com>
8421
8422 * target.def (narrow_volatile_bitfield): Note that the default
8423 value is false, not !TARGET_STRICT_ALIGN.
8424 * doc/tm.texi: Regenerate.
8425
8edb8dc8
PC
84262013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8427
8428 Fix LIB_SPEC for systems without libpthread.
8429
8430 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8431 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8432 for Android.
8433 * config/i386/linux-common.h: Likewise.
8434 * config/mips/linux-common.h: Likewise.
8435
12211b99 84362013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8437
8438 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8439 checks.
8440
e42c64cb
DM
84412013-08-20 David Malcolm <dmalcolm@redhat.com>
8442
8443 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8444 instances can own GC refs.
8445
8446 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8447 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8448 (gcc::context::gt_pch_nx): Likewise.
8449 (gcc::context::gt_pch_nx): Likewise.
8450 * ggc.h (gt_ggc_mx <T>): New.
8451 (gt_pch_nx_with_op <T>): New.
8452 (gt_pch_nx <T>): New.
8453 * passes.c (opt_pass::gt_ggc_mx): New.
8454 (opt_pass::gt_pch_nx): New.
8455 (opt_pass::gt_pch_nx_with_op): New.
8456 (pass_manager::gt_ggc_mx): New.
8457 (pass_manager::gt_pch_nx): New.
8458 (pass_manager::gt_pch_nx_with_op): New.
8459 (pass_manager::operator new): Use
8460 ggc_internal_cleared_alloc_stat rather than xcalloc.
8461 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8462 (pass_manager::gt_ggc_mx): New.
8463 (pass_manager::gt_pch_nx): New.
8464 (pass_manager::gt_pch_nx_with_op): New.
8465 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8466 (opt_pass::operator new): New.
8467 (opt_pass::gt_ggc_mx): New.
8468 (opt_pass::gt_pch_nx): New.
8469 (opt_pass::gt_pch_nx_with_op): New.
8470
910c02a0
DM
84712013-08-20 David Malcolm <dmalcolm@redhat.com>
8472
8473 * Makefile.in (GTFILES): Add context.h.
8474 * context.c (gcc::context::operator new): New.
8475 (gcc::context::gt_ggc_mx): New.
8476 (gcc::context::gt_pch_nx): New.
8477 (gcc::context::gt_pch_nx): New.
8478 * context.h (gcc::context): Add GTY((user)) marking.
8479 (gcc::context::operator new): New.
8480 (gcc::context::gt_ggc_mx): New.
8481 (gcc::context::gt_pch_nx): New.
8482 (gcc::context::gt_pch_nx): New.
8483 (g): Add GTY marking.
8484 (gt_ggc_mx (gcc::context *)): New.
8485 (gt_pch_nx (gcc::context *)): New.
8486 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8487 void *cookie)): New.
8488 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8489
af4b4236
AM
84902013-08-20 Alan Modra <amodra@gmail.com>
8491
8492 PR target/57865
8493 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8494 (rs6000_emit_epilogue): Likewise.
8495
12211b99 84962013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8497
8498 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8499
e2323f5b
PB
85002013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8501 Jakub Jelinek <jakub@redhat.com>
8502
8503 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8504 (BUILT_IN_FABSD64): Likewise.
8505 (BUILT_IN_FABSD128): Likewise.
8506 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8507 (fold_builtin_1): Likewise.
5339fc0c
UB
8508 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8509 destination and source operands.
e2323f5b
PB
8510 (*abstd2_fpr): Likewise.
8511 (*nabstd2_fpr): Likewise.
8512
cfbf3ee8
RS
85132013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8514
8515 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8516 JUMP_P and INSN_P.
8517
d3136aeb
AH
85182013-08-19 Aldy Hernandez <aldyh@redhat.com>
8519
8520 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8521 incomplete.
8522
d33d9e47
AI
85232013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8524
8525 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8526 * builtins.c (default_libc_has_function): New.
8527 (gnu_libc_has_function): Ditto.
8528 (no_c99_libc_has_function): Ditto.
8529 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8530 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8531 (fold_builtin_sincos): Likewise.
8532 (fold_builtin_cexp): Likewise.
8533 * builtins.def (DEF_C94_BUILTIN): Likewise.
8534 (DEF_C99_BUILTIN): Likewise.
8535 (DEF_C99_C90RES_BUILTIN): Likewise.
8536 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8537 definitions to using this define.
8538 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8539 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8540 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8541 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8542 * config/darwin.h: Ditto.
8543 * config/elfos.h: Ditto.
8544 * config/freebsd.h: Ditto.
8545 * config/i386/cygming.h: Ditto.
8546 * config/i386/djgpp.h: Ditto.
8547 * config/i386/i386-interix.h: Ditto.
8548 * config/microblaze/microblaze.h: Ditto.
8549 * config/mmix/mmix.h: Ditto.
8550 * config/gnu-user.h: Ditto.
8551 * config/ia64/hpux.h: Ditto.
8552 * config/pa/pa-hpux.h: Ditto.
8553 * config/pdp11/pdp11.h: Ditto.
8554 * config/picochip/picochip.h: Ditto.
8555 * config/linux.h: Ditto.
8556 * config/netbsd.h: Ditto.
8557 * config/openbsd.h: Ditto.
8558 * config/rs6000/aix43.h: Ditto.
8559 * config/rs6000/aix51.h: Ditto.
8560 * config/rs6000/aix52.h: Ditto.
8561 * config/rs6000/aix53.h: Ditto.
8562 * config/rs6000/aix61.h: Ditto.
8563 * config/rs6000/darwin.h: Ditto.
8564 * config/rs6000/linux.h: Ditto.
8565 * config/rs6000/linux64.h: Ditto.
8566 * config/s390/tpf.h: Ditto.
8567 * config/sol2-10.h: Ditto.
8568 * config/sol2.h: Ditto.
8569 * config/vms/vms.h: Ditto.
8570 * config/vxworks.h: Ditto.
8571 * config/linux-android.c (linux_android_libc_has_function):
8572 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8573 * config/linux-protos.h (linux_android_libc_has_function):
8574 New declaration.
8575 * config/i386/i386.c (ix86_libc_has_function): New.
8576 * config/i386/i386-protos.h
8577 (ix86_libc_has_function): New declaration.
8578 * config/i386/i386.md
8579 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8580 ("isinf<mode>2): Likewise.
8581 * convert.c (convert_to_integer): Using new target hook
8582 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8583 TARGET_C99_FUNCTIONS.
8584 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8585 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8586 * coretypes.h (function_class): New enum for different
8587 classes of functions.
8588 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8589 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8590 (TARGET_HAS_SINCOS): Likewise.
8591 (TARGET_LIBC_HAS_FUNCTION): New.
8592 * doc/tm.texi: Regenerated.
8593 * targhooks.h (default_libc_has_function): New declaration.
8594 (no_c99_libc_has_function): Ditto.
8595 (gnu_libc_has_function): Ditto.
8596 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8597 and TARGET_HAS_SINCOS.
8598
eefe9a99
JH
85992013-08-18 Jan Hubicka <jh@suse.cz>
8600
8601 * Makeifle-in (ipa-devirt.o): New.
8602 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8603 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8604 (analyze_functions): Look into possible targets of polymorphic call.
8605 * dumpfile.c (dump_files): Add type-inheritance dump.
8606 * dumpfile.h (TDI_inheritance): New.
8607 * ipa-devirt.c: New file.
8608 * ipa-utils.h (odr_type_d): Forward declare.
8609 (odr_type): New type.
8610 (build_type_inheritance_graph): Declare.
8611 (possible_polymorphic_call_targets): Declare and introduce inline
8612 variant when only edge is pased.
8613 (dump_possible_polymorphic_call_targets): Likewise.
8614 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8615 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8616 (types_same_for_odr): ... here.
8617 * tree.h (type_in_anonymous_namespace_p): Declare.
8618
29b89442
JJ
86192013-08-18 Jakub Jelinek <jakub@redhat.com>
8620
8621 PR tree-optimization/58006
8622 * tree-parloops.c (take_address_of): Don't ICE if get_name
8623 returns NULL.
8624 (eliminate_local_variables_stmt): Remove clobber stmts.
8625
4f219961
EB
86262013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8627
8628 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8629 error message is issued for an alias to undefined symbol.
8630
1d5755ef
JH
86312013-08-18 Jan Hubicka <jh@suse.cz>
8632
8633 * cgraph.c (cgraph_create_indirect_edge): Discover
8634 polymorphic calls and record basic info into indirect_info.
8635 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8636 devirtualization, ignore objc function calls.
8637 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8638 call with no parm index info.
8639 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8640 * tree.c (virtual_method_call_p): New function.
8641 * tree.h (virtual_method_call_p): Declare.
8642
5945bebf
JH
86432013-08-16 Jan Hubicka <jh@suse.cz>
8644
8645 PR middle-end/58179
8646 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8647
47fa5d23
DE
86482013-08-16 David Edelsohn <dje.gcc@gmail.com>
8649
8650 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8651 attribute.
8652
c74f54a0
DM
86532013-08-16 David Malcolm <dmalcolm@redhat.com>
8654
8655 * gengtype.c (type_for_name): Add special-case support for
8656 locating types within the "gcc::" namespace.
8657 (open_base_files): Emit a "using namespace gcc" directive.
8658
f758f299
MM
86592013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8660
8661 PR target/58160
8662 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8663 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8664
8665 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8666 array instead of each individual operand as a separate argument.
8667 (emit_fusion_gpr_load): Likewise.
8668 (expand_fusion_gpr_load): Add new function declaration.
8669
8670 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8671 signature to have the operands passed as an array, instead of as
8672 separate arguments. Allow ZERO_EXTEND to be in the memory
8673 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8674 depend on the register live/dead flags when peepholes are run.
8675 (expand_fusion_gpr_load): New function to be called from the
8676 peephole2 pass, to change the register that addis sets to be the
8677 target register.
8678 (emit_fusion_gpr_load): Change the calling signature to have the
8679 operands passed as an array, instead of as separate arguments.
8680 Allow ZERO_EXTEND to be in the memory address, and also
8681 SIGN_EXTEND if -mpower8-fusion-sign.
8682
8683 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8684 unspec enumeration.
8685 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8686 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 8687 depend on the register live/dead state when the peephole pass is done.
f758f299 8688
158f4e4f
DM
86892013-08-16 David Malcolm <dmalcolm@redhat.com>
8690
8691 * gengtype.c (create_user_defined_type): Ensure that the kind
8692 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8693 declaration is seen before the GTY((user)) marking.
8694
22f8cea5
BE
86952013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8696
8697 PR target/58105
8698 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8699
c49bdb2e
JH
87002013-08-16 Jan Hubicka <jh@suse.cz>
8701
8702 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8703 arugment expected_type.
8704 (gimple_fold_call): Use it.
8705 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8706 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 8707 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
8708 (try_make_edge_direct_virtual_call): Likewise.
8709 * tree.c (obj_type_ref_class): New.
8710 * tree.h (obj_type_ref_class): Use it.
8711
4042dca9
GDR
87122013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8713
8714 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8715 (rtl_slim_pp): Likewise.
8716 (init_rtl_slim_pretty_print): Likewise.
8717 (dump_value_slim): Don't call it. Use local pretty printer.
8718 (dump_insn_slim): Likewise.
8719 (dump_rtl_slim): Likewise.
8720 (str_pattern_slim): Likewise.
8721 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8722 Simplify.
8723
7a460594
JJ
87242013-08-16 Jakub Jelinek <jakub@redhat.com>
8725
639dc669
JJ
8726 PR tree-optimization/58164
8727 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8728 walk gimple_goto_dest of GIMPLE_GOTO.
8729
7a460594
JJ
8730 PR tree-optimization/58165
8731 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8732 bi_call must be the last stmt in a bb, don't split_block, instead
8733 use fallthru edge from it and give up if there is none.
8734 Release conds vector when returning early.
8735
e3c02cc7
XDL
87362013-08-14 Xinliang David Li <davidxl@google.com>
8737
8738 * config/i386/i386.c (ix86_option_override_internal):
8739 Remove unused variable and field.
8740
6469da2c
BS
87412013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8742
8743 PR target/57949
22f8cea5 8744 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
8745 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8746 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8747 and Linux, correct BLKmode alignment when 128-bit alignment is
8748 required and compatibility flag is not set.
22f8cea5
BE
8749 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8750 for zero-size arguments when compatibility flag is not set.
6469da2c 8751
4ca890e2
JJ
87522013-08-14 Jakub Jelinek <jakub@redhat.com>
8753
8754 PR tree-optimization/58145
8755 * tree-sra.c (build_ref_for_offset): If prev_base has
8756 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8757
daec1759 87582013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 8759
daec1759 8760 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 8761 Fix uninitialized variable error.
daec1759 8762
3ad20bd4
XDL
87632013-08-14 Xinliang David Li <davidxl@google.com>
8764
8765 * config/i386/i386.opt: Define two new options.
8766 * config/i386/x86-tune.def: Add arch selector field in macros.
8767 * config/i386/i386.h: Adjust macro definition.
8768 * config/i386/i386.c (ix86_option_override_internal):
8769 Refactor the code.
8770 (parse_mtune_ctrl_str): New function.
8771 (set_ix86_tune_features): New function.
8772 (ix86_function_specific_restore): Call the new helper function.
8773
e839e2a9
AB
87742013-08-14 Andrey Belevantsev <abel@ispras.ru>
8775
8776 PR rtl-optimization/57662
8777 * sel-sched.c (code_motion_process_successors): When the current insn
8778 is removed after the recursive traversal, break from the loop.
8779 Add comments and debug printouts.
8780
27ed665f
JJ
87812013-08-14 Jakub Jelinek <jakub@redhat.com>
8782 Alexandre Oliva <aoliva@redhat.com>
8783
8784 PR target/58067
8785 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
8786 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
8787 there also UNSPEC_PLTOFF.
8788
61c1a609
MP
87892013-08-14 Marek Polacek <polacek@redhat.com>
8790
8791 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
8792 NUM_CONDITIONS bit positions.
8793
0e901c67
CC
87942013-08-13 Cary Coutant <ccoutant@google.com>
8795
8796 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
8797 (attr_checksum): Hash vector contents instead of pointer.
8798 (attr_checksum_ordered): Likewise.
8799
061eff6d
UB
88002013-08-13 Uros Bizjak <ubizjak@gmail.com>
8801
8802 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
8803 when Pmode != word_mode. Add length_address attribute.
8804 (sse3_monitor_<mode>): Merge from sse3_monitor and
8805 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
8806 Pmode != word_mode. Update insn length attribute.
8807 * config/i386/i386.c (ix86_option_override_internal): Update
8808 ix86_gen_monitor selection for merged sse3_monitor insn.
8809
8ec9249b
JB
88102013-08-13 Julian Brown <julian@codesourcery.com>
8811
8812 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8813 perform invalid legitimization on greater-than-word-size modes for
8814 TARGET_E500_DOUBLE.
8815
761a8eb7
VM
88162013-08-13 Vladimir Makarov <vmakarov@redhat.com>
8817
8818 * ira.c (setup_class_translate_array): Use aclass instead of cl
8819 for classes not fully covered by allocno classes.
8820
99c2bd54
JJ
88212013-08-13 Jakub Jelinek <jakub@redhat.com>
8822
4029a5e0
JJ
8823 PR tree-optimization/57661
8824 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
8825 * tree-inline.c (tree_function_versioning): Initialize it.
8826 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
8827 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
8828 that is not being copied.
8829
99c2bd54
JJ
8830 PR sanitizer/56417
8831 * asan.c (instrument_strlen_call): Fix typo in comment.
8832 Use char * type even for the lhs of POINTER_PLUS_EXPR.
8833
b5f8f063
SE
88342013-08-13 Steve Ellcey <sellcey@mips.com>
8835
8836 * config/mips/mips.md (prefetch): Use lw instead of ld on
8837 loongson in 32bit mode.
8838
4de80584
NC
88392013-08-13 Nick Clifton <nickc@redhat.com>
8840
8841 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
8842
09ce3660
JH
88432013-08-13 Jan Hubicka <jh@suse.cz>
8844
8845 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
8846 introduced edge; fix typo in sanity check.
8847 (cgraph_resolve_speculation): Export; improve diagnostic.
8848 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
8849 speculation at type mismatch.
8850 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
8851 (cgraph_resolve_speculation): Declare.
8852 (symtab_can_be_discarded): New function.
8853 * value-prof.c (gimple_ic_transform): Remove actual transform code.
8854 * ipa-inline-transform.c (speculation_removed): New global var.
8855 (clone_inlined_nodes): See if speculation can be removed.
8856 (inline_call): If speculations was removed, we growths may not match.
8857 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
8858 (speculation_useful_p): New function.
8859 (resolve_noninline_speculation): New function.
8860 (inline_small_functions): Resolve useless speculations.
8861 * ipa-inline.h (speculation_useful_p): Declare
8862 * ipa.c (can_replace_by_local_alias): Simplify.
8863 (ipa_profile): Produce speculative calls in non-lto, too;
8864 add simple cost model; produce local aliases.
8865
f971dc24
DM
88662013-08-13 David Malcolm <dmalcolm@redhat.com>
8867
8868 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 8869 PASS_MANAGER_H.
f971dc24 8870
2e507b9a
PC
88712013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
8872
8873 * config/i386/i386.c (ix86_function_versions): Use error + inform.
8874
c97fd4b8
UB
88752013-08-12 Uros Bizjak <ubizjak@gmail.com>
8876
8877 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
8878 iterator instead of X87MODEF.
8879
88802013-08-12 Perez Read <netfirewall@gmail.com>
8881
8882 PR target/58132
8883 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
8884 operand 0 for intel asm alternative.
8885 (*movabs<mode>_2): Ditto for operand 1.
8886
f4f4204c
JG
88872013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
8888
8889 * config/aarch64/arm_none.h
8890 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
8891
133b1a8e
NC
88922013-08-12 Nick Clifton <nickc@redhat.com>
8893
8894 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
8895
15dd8b3a
YR
88962013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
8897
8898 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
8899 expand for QI/HImode operand to produce more effictive code for
8900 unsigned char(short) --> float(double) conversion.
8901
94109a6a
AM
89022013-08-12 Alexander Monakov <amonakov@ispras.ru>
8903
8904 * doc/invoke.texi: Mention that -ftls-model does not force the final
8905 model.
8906
4e115102
MP
89072013-08-12 Marek Polacek <polacek@redhat.com>
8908 Marc Glisse <marc.glisse@inria.fr>
8909
8910 PR tree-optimization/57980
8911 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
8912 when creating -1 constant.
8913
748d71f3
JH
89142013-08-10 Jan Hubicka <jh@suse.cz>
8915
1f97e193 8916 Workaround binutils PR14342.
748d71f3
JH
8917 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
8918 (gimple_init_edge_profiler): Likewise.
8919 (gimple_gen_ic_func_profiler): Likewise.
8920
5979aa54
JH
89212013-08-09 Jan Hubicka <jh@suse.cz>
8922
8923 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
8924
ad83025e
XDL
89252013-08-09 Xinliang David Li <davidxl@google.com>
8926
8927 * config/i386/stringop.def: New file.
8928 * config/i386/stringop.opt: New file.
8929 * config/i386/i386-opts.h: Include stringopt.def.
8930 * config/i386/i386.opt: Include stringopt.opt.
8931 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 8932 Override default size based stringop inline strategies with options.
ad83025e
XDL
8933 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
8934 New function.
8935
e59df5fd
JH
89362013-08-09 Jan Hubicka <jh@suse.cz>
8937
c97fd4b8 8938 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 8939
634ab819
JH
89402013-08-09 Jan Hubicka <jh@suse.cz>
8941
8942 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
8943 CGRAPH_FREQ_MAX.
8944 (dump_cgraph_node): Dump profile-id.
8945 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
8946 and common_target_probability.
8947 * lto-cgraph.c (lto_output_edge): Stream common targets.
8948 (lto_output_node): Stream profile ids.
8949 (input_node): Stream profile ids.
8950 (input_edge): Stream common targets.
8951 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
8952 * ipa.c: Include value-prof.h
8953 (ipa_profile_generate_summary): Turn indirect call statement histograms
8954 into common targets.
8955 (ipa_profile): Turn common targets into speculative edges.
8956
2fa3d31b
JH
89572013-08-09 Jan Hubicka <jh@suse.cz>
8958
8959 * cgraph.h (cgraph_node): Add profile_id.
8960 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 8961 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
8962 (del_node_map): Update.
8963 (find_func_by_funcdef_no): Replace by ...
8964 (find_func_by_profile_id): ... this one.
8965 (gimple_ic_transform): Do not remove useful histograms when
8966 speculation is not done; dump info when indirect call removal
8967 can happen at LTO.
8968 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
8969 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
8970 (__gcov_indirect_call_profiler_v2): .. this one.
8971 * profile.h (init_node_map): Update.
8972 * coverage.c (coverage_compute_profile_id): New function.
8973 * coverage.h (coverage_compute_profile_id): Declare.
8974 * tree-profile.c (init_ic_make_global_vars): Make
8975 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
8976 (gimple_init_edge_profiler): Update prototype of
8977 __gcov_indirect_call_profiler.
8978 (gimple_gen_ic_func_profiler): Simplify.
8979 (tree_profiling): Use init_node_map
8980
042ae7d2
JH
89812013-08-09 Jan Hubicka <jh@suse.cz>
8982
c97fd4b8
UB
8983 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
8984 non-speculative refs.
042ae7d2
JH
8985 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
8986 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
8987 (cgraph_set_call_stmt): Likewise.
8988 (cgraph_create_edge_1): Fix release checking compilatoin;
8989 clear lto_stmt_uid.
8990 (cgraph_free_edge): Free indirect info.
8991 (cgraph_turn_edge_to_speculative): New function.
8992 (cgraph_speculative_call_info): New function.
8993 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 8994 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
8995 (dump_cgraph_node): Dump speculation.
8996 (verify_edge_count_and_frequency): Accept speculative edges.
8997 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
8998 (verify_cgraph_node): Handle speculation.
8999 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9000 (cgraph_set_call_stmt): Update prototype.
9001 (cgraph_make_edge_direct): Update prototype.
9002 (cgraph_speculative_call_info): Declare.
9003 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9004 to change; update call of ipa_find_references.
9005 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9006 lto_stmt_uid and speculative flags.
9007 (ipa_dump_references): Dump speculation.
9008 (ipa_clone_references): Clone speculative flag.
9009 (ipa_clone_referring): Likewise.
9010 (ipa_clone_ref): New function.
9011 (ipa_find_reference): Look into lto_stmt_uids
9012 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9013 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9014 (ipa_find_reference): Update declaration.
9015 (ipa_clone_ref): Declare.
9016 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9017 stream speculative flag.
9018 (lto_output_ref): Stream statements uids and speculation.
9019 (input_ref): Likewise.
9020 (input_edge): Stream speuclation.
9021 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9022 (cgraph_set_call_stmt_including_clones): Handle speculation.
9023 * ipa-inline.c (heap_edge_removal_hook): New function.
9024 (inline_small_functions): Register it.
9025 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9026 also initialize refs.
9027 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9028 edge to change.
9029 (try_make_edge_direct_simple_call): Likewise.
9030 (try_make_edge_direct_simple_call): Likewise.
9031 (update_indirect_edges_after_inlining): Likewise.
9032 (remove_described_reference): Look proper lto_stmt_uid.
9033 (propagate_controlled_uses): Likewise.
9034 (propagate_controlled_uses): Liekwise.
9035 * tree-inline.c (copy_bb): Copy speculative edges.
9036 (redirect_all_calls): New function.
c97fd4b8
UB
9037 (copy_cfg_body): Do redirection after loop info is updated.
9038 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9039
aa1e10cc
JH
90402013-08-09 Jan Hubicka <jh@suse.cz>
9041
9042 * lto-streamer-out.c (output_function): Renumber PHIs.
9043 * lto-streamer-in.c (input_function): Likewise.
9044
66adb8eb
JG
90452013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9046
9047 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9048 (get_lane_unsigned): Likewise.
9049 (dup_lane_scalar): Likewise.
9050 (get_lane): enable for VALL.
9051 * config/aarch64/aarch64-simd.md
9052 (aarch64_dup_lane_scalar<mode>): Remove.
9053 (aarch64_get_lane_signed<mode>): Likewise.
9054 (aarch64_get_lane_unsigned<mode>): Likewise.
9055 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9056 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9057 (aarch64_get_lane<mode>): Enable for all vector modes.
9058 (aarch64_get_lanedi): Remove misleading constraints.
9059 * config/aarch64/arm_neon.h
9060 (__aarch64_vget_lane_any): Define.
9061 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9062 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9063 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9064 * config/aarch64/iterators.md (VDQQH): New.
9065 (VDQQHS): Likewise.
9066 (vwcore): Likewise.
9067
1f65ae7a
EB
90682013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9069
9070 * configure.ac: Add GAS check for LEON instructions on SPARC.
9071 * configure: Regenerate.
9072 * config.in: Likewise.
9073 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9074 sparc*-*-* block.
9075 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9076 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9077 for LEON or LEON3.
9078 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9079 (AS_LEON_FLAG): New macro.
9080 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9081 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9082 Deal with LEON and LEON3 for the memory model.
23a6cb78 9083 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9084 (atomic_compare_and_swap<mode>_1): Likewise.
9085 (*atomic_compare_and_swap<mode>_1): Likewise.
9086
ff522f7f
ZC
90872013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9088
9089 * config/arm/neon.md (vcond): Fix floating-point vector
9090 comparisons against 0.
9091
cb1cca12
VM
90922013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9093
9094 * lra-constraints.c (emit_spill_move): Remove assert.
9095 (process_alt_operands): Add more debugging
9096 output. Increase reject for spilling into memory. Decrease
9097 reject for reloading scratch.
9098 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9099
a3719e31
SE
91002013-08-08 Steve Ellcey <sellcey@mips.com>
9101
9102 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9103 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9104 micromips incompatible. Add nan2008.
9105 (MULTILIB_DIRNAMES): Add nan2008.
9106 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9107 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9108 and micromips incompatible. Add nan2008.
9109 (MULTILIB_DIRNAMES): Add nan2008.
9110 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9111
f40423e2
RS
91122013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9113
9114 PR rtl-optimization/58079
9115 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9116 simplify_comparison has widened a comparison with an integer.
9117
869b9125
KT
91182013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9119
9120 * config/arm/neon.md (movmisalign<mode>): Disable when we
9121 don't allow unaligned accesses.
9122 (*movmisalign<mode>_neon_store): Likewise.
9123 (*movmisalign<mode>_neon_load): Likewise.
9124 (*movmisalign<mode>_neon_store): Likewise.
9125 (*movmisalign<mode>_neon_load): Likewise.
9126
71cafea9
JH
91272013-08-08 Jan Hubicka <jh@suse.cz>
9128
9129 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9130 (make_pass_rebuild_cgraph_edges): Also clear references.
9131 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9132 * ipa-inline-transform.c (inline_transform): Remove all references
9133 after inlining.
c97fd4b8
UB
9134 * cgraphunit.c (expand_function): Remove all references after
9135 expansion.
71cafea9
JH
9136 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9137 (ipa_find_reference): Rewrite to iterator.
9138 (remove_stmt_references): Likewise.
9139 (ipa_clear_stmts_in_references): New function.
9140 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9141 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9142 clear references.
71cafea9
JH
9143 * ipa-split.c (split_function): Remove references in split function.
9144
27d2e612
RE
91452013-08-08 Richard Earnshaw <rearnsha@arm.com>
9146
9147 PR target/57431
1f65ae7a 9148 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9149 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9150
5efc661c
RE
91512013-08-08 Richard Earnshaw <rearnsha@arm.com>
9152
9153 PR target/56979
1f65ae7a 9154 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9155 suggested mode for the assignment isn't compatible with the
9156 registers required.
9157
f276d31d
BE
91582013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9159
9160 PR target/58065
9161 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9162
4b8bc035
XDL
91632013-08-07 Xinliang David Li <davidxl@google.com>
9164
9165 * config/i386/i386.opt: New option -mtune-ctrl=.
9166 * config/i386/x86-tune.def: New file.
9167 * config/i386/i386.h: include x86-tune.def.
9168 * config/i386/i386.c (ix86_option_override_internal):
9169 Parsing -mtune-ctrl= option and set tune features.
9170
12211b99 91712013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9172
9173 PR other/12081
03b0ee0a 9174 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9175 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9176 to gen_2arg_fn_t.
9177
5cf6635b
EB
91782013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9179
9180 * rtl.h (update_alignments): Declare.
9181 * final.c (grow_label_align): New function extracted from...
9182 (shorten_branches): ...here. Call it.
9183 (update_alignments): New function.
9184 * reorg.c (sibling_labels): New variable.
9185 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9186 the new label along with it onto the sibling_labels vector.
9187 (fill_simple_delay_slots): Adjust call to get_label_before.
9188 (fill_slots_from_thread): Likewise.
9189 (relax_delay_slots): Likewise.
9190 (make_return_insns): Likewise.
9191 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9192
3c8ca1ab
EB
91932013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9194
9195 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9196 document its semantics.
9197 (diagnostic_report_diagnostic): Adjust accordingly.
9198
5ee5b32c
DM
91992013-08-07 David Malcolm <dmalcolm@redhat.com>
9200
03b0ee0a 9201 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9202 (sparc_option_override): ...and port to new C++ pass API.
9203 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9204
abd566fa
PB
92052013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9206
9207 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9208
2077db1b
CT
92092013-08-06 Caroline Tice <cmtice@google.com>
9210
9211 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9212 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9213 * tree-pass.h: Add pass_vtable_verify.
9214 * varasm.c (assemble_variable): Add code to properly set the comdat
9215 section and name for the .vtable_map_vars section.
9216 (assemble_vtyv_preinit_initializer): New function.
9217 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9218 LINK_ONCE flag.
9219 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9220 * vtable-verify.c: New file.
9221 * vtable-verify.h: New file.
9222 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9223 initialiation levels.
9224 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9225 * passes.def: Insert pass_vtable_verify.
9226 * aclocal.m4: Reorder includes.
9227 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9228 -fvtv-counts options.
9229 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9230 as appropriate, if -fvtable-verify=... is used.
9231 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9232 -fvtable-verify=... is used.
9233 * Makefile.in (OBJS): Add vtable-verify.o to list.
9234 (vtable-verify.o): Add new build rule.
9235 (GTFILES): Add vtable-verify.c to list.
9236 * common.opt (fvtable-verify=): New flag.
9237 (vtv_priority): Values for fvtable-verify= flag.
9238 (fvtv-counts): New flag.
9239 (fvtv-debug): New flag.
9240 * tree.h (save_vtable_map_decl): New extern function decl.
9241
03085d1c
DM
92422013-08-07 David Malcolm <dmalcolm@redhat.com>
9243
9244 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9245 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9246 (pass_data_rl78_devirt): ...new pass_data instance and...
9247 (make_pass_rl78_devirt): ...new function.
9248 (rl78_asm_file_start): Port pass registration to new C++ API.
9249
05555c4a
DM
92502013-08-07 David Malcolm <dmalcolm@redhat.com>
9251
9252 * coretypes.h (rtl_opt_pass): Add.
9253 (gcc::context): Add.
9254 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9255 (epiphany_init): Port to new C++ pass API.
9256 (epiphany_optimize_mode_switching): Likewise.
9257 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9258 (pass_manager::get_pass_mode_switching): New.
9259 (pass_manager::get_pass_peephole2): New.
9260 * mode-switching.c (pass_mode_switching): Add clone method.
9261 * recog.c (pass_peephole2): Add clone method.
9262 (pass_split_all_insns): Add clone method.
9263
c5a12e26
DM
92642013-08-06 David Malcolm <dmalcolm@redhat.com>
9265
03b0ee0a
UB
9266 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9267 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9268
a2e2a668
JH
92692013-08-06 Jan Hubicka <jh@suse.cz>
9270
9271 * cgraph.c (cgraph_get_body): New function based on lto.c
9272 implementation.
9273 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9274 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9275 LTO paths.
a2e2a668
JH
9276 * cgraphunit.c (expand_function): Get body prior expanding.
9277 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9278 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9279 really need.
a2e2a668
JH
9280 * passes.c (do_per_function_toporder): Get body.
9281 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9282 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9283
15682f24
MJ
92842013-08-06 Martin Jambor <mjambor@suse.cz>
9285
9286 PR fortran/57987
9287 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9288 is not re-finalized. Rename second parameter to no_collect.
9289
78f6dd68
MJ
92902013-08-06 Martin Jambor <mjambor@suse.cz>
9291
9292 PR middle-end/58041
9293 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9294 MEM_REF has proper alignment information.
9295
12211b99 92962013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9297
9298 PR other/12081
9299 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9300 class insn_gen_fn.
9301 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9302 rtx (*) (rtx, ...) with insn_gen_fn.
9303 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9304 insn_gen_fn::stored_funcptr. Add initializer braces.
9305
8ac69a6c
DM
93062013-08-05 David Malcolm <dmalcolm@redhat.com>
9307
9308 Rewrite how instances of passes are cloned to remove assumptions
9309 about their sizes (thus allowing pass subclasses to have
9310 additional data fields, albeit non-GC-managed ones at this point).
9311
9312 * passes.c (make_pass_instance): Now that passes have clone
9313 methods, rewrite this function to eliminate XNEW and memcpy
9314 calls that used hardcoded sizes. Since this function no longer
9315 creates pass instances, rename it to...
03b0ee0a
UB
9316 (add_pass_instance): ...this. Document the old way that passes were
9317 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9318 (next_pass_1): Add an initial_pass argument for use by
9319 add_pass_instance.
9320 (position_pass): When adding multiple instances of a pass, use
9321 the pass's clone method, rather than relying on the XNEW/memcpy
9322 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9323 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9324 the initial instance of the current pass within the pass manager.
8ac69a6c 9325
27a4cd48
DM
93262013-08-05 David Malcolm <dmalcolm@redhat.com>
9327
9328 This is the automated part of the conversion of passes from C
9329 structs to C++ classes.
9330
9331 Patch autogenerated by refactor_passes.py from
9332 https://github.com/davidmalcolm/gcc-refactoring-scripts
9333 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9334
9335 * asan.c (pass_asan): Convert from a global struct to a subclass of
9336 gimple_opt_pass along with...
9337 (pass_data_asan): ...new pass_data instance and...
9338 (make_pass_asan): ...new function.
9339 (pass_asan_O0): Convert from a global struct to a subclass of
9340 gimple_opt_pass along with...
9341 (pass_data_asan_O0): ...new pass_data instance and...
9342 (make_pass_asan_O0): ...new function.
9343 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9344 subclass of rtl_opt_pass along with...
9345 (pass_data_inc_dec): ...new pass_data instance and...
9346 (make_pass_inc_dec): ...new function.
9347 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9348 a subclass of rtl_opt_pass along with...
9349 (pass_data_reorder_blocks): ...new pass_data instance and...
9350 (make_pass_reorder_blocks): ...new function.
9351 (pass_duplicate_computed_gotos): Convert from a global struct to a
9352 subclass of rtl_opt_pass along with...
9353 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9354 (make_pass_duplicate_computed_gotos): ...new function.
9355 (pass_partition_blocks): Convert from a global struct to a subclass of
9356 rtl_opt_pass along with...
9357 (pass_data_partition_blocks): ...new pass_data instance and...
9358 (make_pass_partition_blocks): ...new function.
9359 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9360 struct to a subclass of rtl_opt_pass along with...
9361 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9362 and...
9363 (make_pass_branch_target_load_optimize1): ...new function.
9364 (pass_branch_target_load_optimize2): Convert from a global struct to a
9365 subclass of rtl_opt_pass along with...
9366 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9367 and...
9368 (make_pass_branch_target_load_optimize2): ...new function.
9369 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9370 of rtl_opt_pass along with...
9371 (pass_data_jump): ...new pass_data instance and...
9372 (make_pass_jump): ...new function.
9373 (pass_jump2): Convert from a global struct to a subclass of
9374 rtl_opt_pass along with...
9375 (pass_data_jump2): ...new pass_data instance and...
9376 (make_pass_jump2): ...new function.
9377 * cfgexpand.c (pass_expand): Convert from a global struct to a
9378 subclass of rtl_opt_pass along with...
9379 (pass_data_expand): ...new pass_data instance and...
9380 (make_pass_expand): ...new function.
9381 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9382 of rtl_opt_pass along with...
9383 (pass_data_free_cfg): ...new pass_data instance and...
9384 (make_pass_free_cfg): ...new function.
9385 (pass_into_cfg_layout_mode): Convert from a global struct to a
9386 subclass of rtl_opt_pass along with...
9387 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9388 (make_pass_into_cfg_layout_mode): ...new function.
9389 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9390 subclass of rtl_opt_pass along with...
9391 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9392 (make_pass_outof_cfg_layout_mode): ...new function.
9393 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9394 struct to a subclass of gimple_opt_pass along with...
9395 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9396 (make_pass_build_cgraph_edges): ...new function.
9397 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9398 subclass of gimple_opt_pass along with...
9399 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9400 (make_pass_rebuild_cgraph_edges): ...new function.
9401 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9402 subclass of gimple_opt_pass along with...
9403 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9404 and...
9405 (make_pass_remove_cgraph_callee_edges): ...new function.
9406 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9407 struct to a subclass of rtl_opt_pass along with...
9408 (pass_data_stack_adjustments): ...new pass_data instance and...
9409 (make_pass_stack_adjustments): ...new function.
9410 * combine.c (pass_combine): Convert from a global struct to a subclass
9411 of rtl_opt_pass along with...
9412 (pass_data_combine): ...new pass_data instance and...
9413 (make_pass_combine): ...new function.
9414 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9415 global struct to a subclass of rtl_opt_pass along with...
9416 (pass_data_compare_elim_after_reload): ...new pass_data instance
9417 and...
9418 (make_pass_compare_elim_after_reload): ...new function.
9419 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9420 of rtl_opt_pass along with...
9421 (pass_data_rtl_cprop): ...new pass_data instance and...
9422 (make_pass_rtl_cprop): ...new function.
9423 * cse.c (pass_cse): Convert from a global struct to a subclass of
9424 rtl_opt_pass along with...
9425 (pass_data_cse): ...new pass_data instance and...
9426 (make_pass_cse): ...new function.
9427 (pass_cse2): Convert from a global struct to a subclass of
9428 rtl_opt_pass along with...
9429 (pass_data_cse2): ...new pass_data instance and...
9430 (make_pass_cse2): ...new function.
9431 (pass_cse_after_global_opts): Convert from a global struct to a
9432 subclass of rtl_opt_pass along with...
9433 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9434 (make_pass_cse_after_global_opts): ...new function.
9435 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9436 of rtl_opt_pass along with...
9437 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9438 (make_pass_ud_rtl_dce): ...new function.
9439 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9440 rtl_opt_pass along with...
9441 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9442 (make_pass_fast_rtl_dce): ...new function.
9443 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9444 a subclass of rtl_opt_pass along with...
9445 (pass_data_df_initialize_opt): ...new pass_data instance and...
9446 (make_pass_df_initialize_opt): ...new function.
9447 (pass_df_initialize_no_opt): Convert from a global struct to a
9448 subclass of rtl_opt_pass along with...
9449 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9450 (make_pass_df_initialize_no_opt): ...new function.
9451 (pass_df_finish): Convert from a global struct to a subclass of
9452 rtl_opt_pass along with...
9453 (pass_data_df_finish): ...new pass_data instance and...
9454 (make_pass_df_finish): ...new function.
9455 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9456 rtl_opt_pass along with...
9457 (pass_data_rtl_dse1): ...new pass_data instance and...
9458 (make_pass_rtl_dse1): ...new function.
9459 (pass_rtl_dse2): Convert from a global struct to a subclass of
9460 rtl_opt_pass along with...
9461 (pass_data_rtl_dse2): ...new pass_data instance and...
9462 (make_pass_rtl_dse2): ...new function.
9463 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9464 subclass of rtl_opt_pass along with...
9465 (pass_data_dwarf2_frame): ...new pass_data instance and...
9466 (make_pass_dwarf2_frame): ...new function.
9467 * except.c (pass_set_nothrow_function_flags): Convert from a global
9468 struct to a subclass of rtl_opt_pass along with...
9469 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9470 and...
9471 (make_pass_set_nothrow_function_flags): ...new function.
9472 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9473 subclass of rtl_opt_pass along with...
9474 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9475 and...
9476 (make_pass_convert_to_eh_region_ranges): ...new function.
9477 * final.c (pass_compute_alignments): Convert from a global struct to a
9478 subclass of rtl_opt_pass along with...
9479 (pass_data_compute_alignments): ...new pass_data instance and...
9480 (make_pass_compute_alignments): ...new function.
9481 (pass_final): Convert from a global struct to a subclass of
9482 rtl_opt_pass along with...
9483 (pass_data_final): ...new pass_data instance and...
9484 (make_pass_final): ...new function.
9485 (pass_shorten_branches): Convert from a global struct to a subclass of
9486 rtl_opt_pass along with...
9487 (pass_data_shorten_branches): ...new pass_data instance and...
9488 (make_pass_shorten_branches): ...new function.
9489 (pass_clean_state): Convert from a global struct to a subclass of
9490 rtl_opt_pass along with...
9491 (pass_data_clean_state): ...new pass_data instance and...
9492 (make_pass_clean_state): ...new function.
9493 * function.c (pass_instantiate_virtual_regs): Convert from a global
9494 struct to a subclass of rtl_opt_pass along with...
9495 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9496 (make_pass_instantiate_virtual_regs): ...new function.
9497 (pass_leaf_regs): Convert from a global struct to a subclass of
9498 rtl_opt_pass along with...
9499 (pass_data_leaf_regs): ...new pass_data instance and...
9500 (make_pass_leaf_regs): ...new function.
9501 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9502 subclass of rtl_opt_pass along with...
9503 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9504 and...
9505 (make_pass_thread_prologue_and_epilogue): ...new function.
9506 (pass_match_asm_constraints): Convert from a global struct to a
9507 subclass of rtl_opt_pass along with...
9508 (pass_data_match_asm_constraints): ...new pass_data instance and...
9509 (make_pass_match_asm_constraints): ...new function.
9510 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9511 subclass of rtl_opt_pass along with...
9512 (pass_data_rtl_fwprop): ...new pass_data instance and...
9513 (make_pass_rtl_fwprop): ...new function.
9514 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9515 rtl_opt_pass along with...
9516 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9517 (make_pass_rtl_fwprop_addr): ...new function.
9518 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9519 rtl_opt_pass along with...
9520 (pass_data_rtl_pre): ...new pass_data instance and...
9521 (make_pass_rtl_pre): ...new function.
9522 (pass_rtl_hoist): Convert from a global struct to a subclass of
9523 rtl_opt_pass along with...
9524 (pass_data_rtl_hoist): ...new pass_data instance and...
9525 (make_pass_rtl_hoist): ...new function.
9526 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9527 subclass of gimple_opt_pass along with...
9528 (pass_data_lower_cf): ...new pass_data instance and...
9529 (make_pass_lower_cf): ...new function.
9530 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9531 from a global struct to a subclass of gimple_opt_pass along with...
9532 (pass_data_strength_reduction): ...new pass_data instance and...
9533 (make_pass_strength_reduction): ...new function.
9534 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9535 of rtl_opt_pass along with...
9536 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9537 (make_pass_rtl_ifcvt): ...new function.
9538 (pass_if_after_combine): Convert from a global struct to a subclass of
9539 rtl_opt_pass along with...
9540 (pass_data_if_after_combine): ...new pass_data instance and...
9541 (make_pass_if_after_combine): ...new function.
9542 (pass_if_after_reload): Convert from a global struct to a subclass of
9543 rtl_opt_pass along with...
9544 (pass_data_if_after_reload): ...new pass_data instance and...
9545 (make_pass_if_after_reload): ...new function.
9546 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9547 a subclass of rtl_opt_pass along with...
9548 (pass_data_initialize_regs): ...new pass_data instance and...
9549 (make_pass_initialize_regs): ...new function.
9550 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9551 of ipa_opt_pass_d along with...
9552 (pass_data_ipa_cp): ...new pass_data instance and...
9553 (make_pass_ipa_cp): ...new function.
9554 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9555 global struct to a subclass of gimple_opt_pass along with...
9556 (pass_data_inline_parameters): ...new pass_data instance and...
9557 (make_pass_inline_parameters): ...new function.
9558 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9559 subclass of gimple_opt_pass along with...
9560 (pass_data_early_inline): ...new pass_data instance and...
9561 (make_pass_early_inline): ...new function.
9562 (pass_ipa_inline): Convert from a global struct to a subclass of
9563 ipa_opt_pass_d along with...
9564 (pass_data_ipa_inline): ...new pass_data instance and...
9565 (make_pass_ipa_inline): ...new function.
9566 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9567 struct to a subclass of gimple_opt_pass along with...
9568 (pass_data_local_pure_const): ...new pass_data instance and...
9569 (make_pass_local_pure_const): ...new function.
9570 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9571 ipa_opt_pass_d along with...
9572 (pass_data_ipa_pure_const): ...new pass_data instance and...
9573 (make_pass_ipa_pure_const): ...new function.
9574 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9575 to a subclass of ipa_opt_pass_d along with...
9576 (pass_data_ipa_reference): ...new pass_data instance and...
9577 (make_pass_ipa_reference): ...new function.
9578 * ipa-split.c (pass_split_functions): Convert from a global struct to
9579 a subclass of gimple_opt_pass along with...
9580 (pass_data_split_functions): ...new pass_data instance and...
9581 (make_pass_split_functions): ...new function.
9582 (pass_feedback_split_functions): Convert from a global struct to a
9583 subclass of gimple_opt_pass along with...
9584 (pass_data_feedback_split_functions): ...new pass_data instance and...
9585 (make_pass_feedback_split_functions): ...new function.
9586 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9587 global struct to a subclass of simple_ipa_opt_pass along with...
9588 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9589 instance and...
9590 (make_pass_ipa_function_and_variable_visibility): ...new function.
9591 (pass_ipa_free_inline_summary): Convert from a global struct to a
9592 subclass of simple_ipa_opt_pass along with...
9593 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9594 (make_pass_ipa_free_inline_summary): ...new function.
9595 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9596 subclass of ipa_opt_pass_d along with...
9597 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9598 and...
9599 (make_pass_ipa_whole_program_visibility): ...new function.
9600 (pass_ipa_profile): Convert from a global struct to a subclass of
9601 ipa_opt_pass_d along with...
9602 (pass_data_ipa_profile): ...new pass_data instance and...
9603 (make_pass_ipa_profile): ...new function.
9604 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9605 ipa_opt_pass_d along with...
9606 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9607 (make_pass_ipa_cdtor_merge): ...new function.
9608 * ira.c (pass_ira): Convert from a global struct to a subclass of
9609 rtl_opt_pass along with...
9610 (pass_data_ira): ...new pass_data instance and...
9611 (make_pass_ira): ...new function.
9612 (pass_reload): Convert from a global struct to a subclass of
9613 rtl_opt_pass along with...
9614 (pass_data_reload): ...new pass_data instance and...
9615 (make_pass_reload): ...new function.
9616 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9617 subclass of rtl_opt_pass along with...
9618 (pass_data_cleanup_barriers): ...new pass_data instance and...
9619 (make_pass_cleanup_barriers): ...new function.
9620 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9621 of rtl_opt_pass along with...
9622 (pass_data_loop2): ...new pass_data instance and...
9623 (make_pass_loop2): ...new function.
9624 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9625 rtl_opt_pass along with...
9626 (pass_data_rtl_loop_init): ...new pass_data instance and...
9627 (make_pass_rtl_loop_init): ...new function.
9628 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9629 rtl_opt_pass along with...
9630 (pass_data_rtl_loop_done): ...new pass_data instance and...
9631 (make_pass_rtl_loop_done): ...new function.
9632 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9633 subclass of rtl_opt_pass along with...
9634 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9635 (make_pass_rtl_move_loop_invariants): ...new function.
9636 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9637 rtl_opt_pass along with...
9638 (pass_data_rtl_unswitch): ...new pass_data instance and...
9639 (make_pass_rtl_unswitch): ...new function.
9640 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9641 subclass of rtl_opt_pass along with...
9642 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9643 and...
9644 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9645 (pass_rtl_doloop): Convert from a global struct to a subclass of
9646 rtl_opt_pass along with...
9647 (pass_data_rtl_doloop): ...new pass_data instance and...
9648 (make_pass_rtl_doloop): ...new function.
9649 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9650 a subclass of rtl_opt_pass along with...
9651 (pass_data_lower_subreg): ...new pass_data instance and...
9652 (make_pass_lower_subreg): ...new function.
9653 (pass_lower_subreg2): Convert from a global struct to a subclass of
9654 rtl_opt_pass along with...
9655 (pass_data_lower_subreg2): ...new pass_data instance and...
9656 (make_pass_lower_subreg2): ...new function.
9657 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9658 struct to a subclass of ipa_opt_pass_d along with...
9659 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9660 (make_pass_ipa_lto_gimple_out): ...new function.
9661 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9662 of ipa_opt_pass_d along with...
9663 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9664 (make_pass_ipa_lto_finish_out): ...new function.
9665 * mode-switching.c (pass_mode_switching): Convert from a global struct
9666 to a subclass of rtl_opt_pass along with...
9667 (pass_data_mode_switching): ...new pass_data instance and...
9668 (make_pass_mode_switching): ...new function.
9669 * modulo-sched.c (pass_sms): Convert from a global struct to a
9670 subclass of rtl_opt_pass along with...
9671 (pass_data_sms): ...new pass_data instance and...
9672 (make_pass_sms): ...new function.
9673 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9674 subclass of gimple_opt_pass along with...
9675 (pass_data_expand_omp): ...new pass_data instance and...
9676 (make_pass_expand_omp): ...new function.
9677 (pass_lower_omp): Convert from a global struct to a subclass of
9678 gimple_opt_pass along with...
9679 (pass_data_lower_omp): ...new pass_data instance and...
9680 (make_pass_lower_omp): ...new function.
9681 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9682 of gimple_opt_pass along with...
9683 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9684 (make_pass_diagnose_omp_blocks): ...new function.
9685 * passes.c (pass_early_local_passes): Convert from a global struct to
9686 a subclass of simple_ipa_opt_pass along with...
9687 (pass_data_early_local_passes): ...new pass_data instance and...
9688 (make_pass_early_local_passes): ...new function.
9689 (pass_all_early_optimizations): Convert from a global struct to a
9690 subclass of gimple_opt_pass along with...
9691 (pass_data_all_early_optimizations): ...new pass_data instance and...
9692 (make_pass_all_early_optimizations): ...new function.
9693 (pass_all_optimizations): Convert from a global struct to a subclass
9694 of gimple_opt_pass along with...
9695 (pass_data_all_optimizations): ...new pass_data instance and...
9696 (make_pass_all_optimizations): ...new function.
9697 (pass_all_optimizations_g): Convert from a global struct to a subclass
9698 of gimple_opt_pass along with...
9699 (pass_data_all_optimizations_g): ...new pass_data instance and...
9700 (make_pass_all_optimizations_g): ...new function.
9701 (pass_rest_of_compilation): Convert from a global struct to a subclass
9702 of rtl_opt_pass along with...
9703 (pass_data_rest_of_compilation): ...new pass_data instance and...
9704 (make_pass_rest_of_compilation): ...new function.
9705 (pass_postreload): Convert from a global struct to a subclass of
9706 rtl_opt_pass along with...
9707 (pass_data_postreload): ...new pass_data instance and...
9708 (make_pass_postreload): ...new function.
9709 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9710 subclass of rtl_opt_pass along with...
9711 (pass_data_gcse2): ...new pass_data instance and...
9712 (make_pass_gcse2): ...new function.
9713 * postreload.c (pass_postreload_cse): Convert from a global struct to
9714 a subclass of rtl_opt_pass along with...
9715 (pass_data_postreload_cse): ...new pass_data instance and...
9716 (make_pass_postreload_cse): ...new function.
9717 * predict.c (pass_profile): Convert from a global struct to a subclass
9718 of gimple_opt_pass along with...
9719 (pass_data_profile): ...new pass_data instance and...
9720 (make_pass_profile): ...new function.
9721 (pass_strip_predict_hints): Convert from a global struct to a subclass
9722 of gimple_opt_pass along with...
9723 (pass_data_strip_predict_hints): ...new pass_data instance and...
9724 (make_pass_strip_predict_hints): ...new function.
9725 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9726 of rtl_opt_pass along with...
9727 (pass_data_peephole2): ...new pass_data instance and...
9728 (make_pass_peephole2): ...new function.
9729 (pass_split_all_insns): Convert from a global struct to a subclass of
9730 rtl_opt_pass along with...
9731 (pass_data_split_all_insns): ...new pass_data instance and...
9732 (make_pass_split_all_insns): ...new function.
9733 (pass_split_after_reload): Convert from a global struct to a subclass
9734 of rtl_opt_pass along with...
9735 (pass_data_split_after_reload): ...new pass_data instance and...
9736 (make_pass_split_after_reload): ...new function.
9737 (pass_split_before_regstack): Convert from a global struct to a
9738 subclass of rtl_opt_pass along with...
9739 (pass_data_split_before_regstack): ...new pass_data instance and...
9740 (make_pass_split_before_regstack): ...new function.
9741 (pass_split_before_sched2): Convert from a global struct to a subclass
9742 of rtl_opt_pass along with...
9743 (pass_data_split_before_sched2): ...new pass_data instance and...
9744 (make_pass_split_before_sched2): ...new function.
9745 (pass_split_for_shorten_branches): Convert from a global struct to a
9746 subclass of rtl_opt_pass along with...
9747 (pass_data_split_for_shorten_branches): ...new pass_data instance
9748 and...
9749 (make_pass_split_for_shorten_branches): ...new function.
9750 * ree.c (pass_ree): Convert from a global struct to a subclass of
9751 rtl_opt_pass along with...
9752 (pass_data_ree): ...new pass_data instance and...
9753 (make_pass_ree): ...new function.
9754 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9755 subclass of rtl_opt_pass along with...
9756 (pass_data_stack_regs): ...new pass_data instance and...
9757 (make_pass_stack_regs): ...new function.
9758 (pass_stack_regs_run): Convert from a global struct to a subclass of
9759 rtl_opt_pass along with...
9760 (pass_data_stack_regs_run): ...new pass_data instance and...
9761 (make_pass_stack_regs_run): ...new function.
9762 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
9763 subclass of rtl_opt_pass along with...
9764 (pass_data_cprop_hardreg): ...new pass_data instance and...
9765 (make_pass_cprop_hardreg): ...new function.
9766 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
9767 subclass of rtl_opt_pass along with...
9768 (pass_data_reginfo_init): ...new pass_data instance and...
9769 (make_pass_reginfo_init): ...new function.
9770 * regmove.c (pass_regmove): Convert from a global struct to a subclass
9771 of rtl_opt_pass along with...
9772 (pass_data_regmove): ...new pass_data instance and...
9773 (make_pass_regmove): ...new function.
9774 * regrename.c (pass_regrename): Convert from a global struct to a
9775 subclass of rtl_opt_pass along with...
9776 (pass_data_regrename): ...new pass_data instance and...
9777 (make_pass_regrename): ...new function.
9778 * reorg.c (pass_delay_slots): Convert from a global struct to a
9779 subclass of rtl_opt_pass along with...
9780 (pass_data_delay_slots): ...new pass_data instance and...
9781 (make_pass_delay_slots): ...new function.
9782 (pass_machine_reorg): Convert from a global struct to a subclass of
9783 rtl_opt_pass along with...
9784 (pass_data_machine_reorg): ...new pass_data instance and...
9785 (make_pass_machine_reorg): ...new function.
9786 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
9787 of rtl_opt_pass along with...
9788 (pass_data_sched): ...new pass_data instance and...
9789 (make_pass_sched): ...new function.
9790 (pass_sched2): Convert from a global struct to a subclass of
9791 rtl_opt_pass along with...
9792 (pass_data_sched2): ...new pass_data instance and...
9793 (make_pass_sched2): ...new function.
9794 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
9795 to a subclass of rtl_opt_pass along with...
9796 (pass_data_stack_ptr_mod): ...new pass_data instance and...
9797 (make_pass_stack_ptr_mod): ...new function.
9798 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
9799 to a subclass of rtl_opt_pass along with...
9800 (pass_data_rtl_store_motion): ...new pass_data instance and...
9801 (make_pass_rtl_store_motion): ...new function.
9802 * tracer.c (pass_tracer): Convert from a global struct to a subclass
9803 of gimple_opt_pass along with...
9804 (pass_data_tracer): ...new pass_data instance and...
9805 (make_pass_tracer): ...new function.
9806 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
9807 to a subclass of gimple_opt_pass along with...
9808 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
9809 (make_pass_diagnose_tm_blocks): ...new function.
9810 (pass_lower_tm): Convert from a global struct to a subclass of
9811 gimple_opt_pass along with...
9812 (pass_data_lower_tm): ...new pass_data instance and...
9813 (make_pass_lower_tm): ...new function.
9814 (pass_tm_init): Convert from a global struct to a subclass of
9815 gimple_opt_pass along with...
9816 (pass_data_tm_init): ...new pass_data instance and...
9817 (make_pass_tm_init): ...new function.
9818 (pass_tm_mark): Convert from a global struct to a subclass of
9819 gimple_opt_pass along with...
9820 (pass_data_tm_mark): ...new pass_data instance and...
9821 (make_pass_tm_mark): ...new function.
9822 (pass_tm_edges): Convert from a global struct to a subclass of
9823 gimple_opt_pass along with...
9824 (pass_data_tm_edges): ...new pass_data instance and...
9825 (make_pass_tm_edges): ...new function.
9826 (pass_tm_memopt): Convert from a global struct to a subclass of
9827 gimple_opt_pass along with...
9828 (pass_data_tm_memopt): ...new pass_data instance and...
9829 (make_pass_tm_memopt): ...new function.
9830 (pass_ipa_tm): Convert from a global struct to a subclass of
9831 simple_ipa_opt_pass along with...
9832 (pass_data_ipa_tm): ...new pass_data instance and...
9833 (make_pass_ipa_tm): ...new function.
9834 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
9835 subclass of gimple_opt_pass along with...
9836 (pass_data_call_cdce): ...new pass_data instance and...
9837 (make_pass_call_cdce): ...new function.
9838 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
9839 subclass of gimple_opt_pass along with...
9840 (pass_data_build_cfg): ...new pass_data instance and...
9841 (make_pass_build_cfg): ...new function.
9842 (pass_split_crit_edges): Convert from a global struct to a subclass of
9843 gimple_opt_pass along with...
9844 (pass_data_split_crit_edges): ...new pass_data instance and...
9845 (make_pass_split_crit_edges): ...new function.
9846 (pass_warn_function_return): Convert from a global struct to a
9847 subclass of gimple_opt_pass along with...
9848 (pass_data_warn_function_return): ...new pass_data instance and...
9849 (make_pass_warn_function_return): ...new function.
9850 (pass_warn_function_noreturn): Convert from a global struct to a
9851 subclass of gimple_opt_pass along with...
9852 (pass_data_warn_function_noreturn): ...new pass_data instance and...
9853 (make_pass_warn_function_noreturn): ...new function.
9854 (pass_warn_unused_result): Convert from a global struct to a subclass
9855 of gimple_opt_pass along with...
9856 (pass_data_warn_unused_result): ...new pass_data instance and...
9857 (make_pass_warn_unused_result): ...new function.
9858 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
9859 a subclass of gimple_opt_pass along with...
9860 (pass_data_merge_phi): ...new pass_data instance and...
9861 (make_pass_merge_phi): ...new function.
9862 * tree-complex.c (pass_lower_complex): Convert from a global struct to
9863 a subclass of gimple_opt_pass along with...
9864 (pass_data_lower_complex): ...new pass_data instance and...
9865 (make_pass_lower_complex): ...new function.
9866 (pass_lower_complex_O0): Convert from a global struct to a subclass of
9867 gimple_opt_pass along with...
9868 (pass_data_lower_complex_O0): ...new pass_data instance and...
9869 (make_pass_lower_complex_O0): ...new function.
9870 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
9871 subclass of gimple_opt_pass along with...
9872 (pass_data_lower_eh): ...new pass_data instance and...
9873 (make_pass_lower_eh): ...new function.
9874 (pass_refactor_eh): Convert from a global struct to a subclass of
9875 gimple_opt_pass along with...
9876 (pass_data_refactor_eh): ...new pass_data instance and...
9877 (make_pass_refactor_eh): ...new function.
9878 (pass_lower_resx): Convert from a global struct to a subclass of
9879 gimple_opt_pass along with...
9880 (pass_data_lower_resx): ...new pass_data instance and...
9881 (make_pass_lower_resx): ...new function.
9882 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
9883 of gimple_opt_pass along with...
9884 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
9885 (make_pass_lower_eh_dispatch): ...new function.
9886 (pass_cleanup_eh): Convert from a global struct to a subclass of
9887 gimple_opt_pass along with...
9888 (pass_data_cleanup_eh): ...new pass_data instance and...
9889 (make_pass_cleanup_eh): ...new function.
9890 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
9891 to a subclass of simple_ipa_opt_pass along with...
9892 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
9893 (make_pass_ipa_lower_emutls): ...new function.
9894 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
9895 a subclass of gimple_opt_pass along with...
9896 (pass_data_if_conversion): ...new pass_data instance and...
9897 (make_pass_if_conversion): ...new function.
9898 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
9899 subclass of gimple_opt_pass along with...
9900 (pass_data_build_ssa): ...new pass_data instance and...
9901 (make_pass_build_ssa): ...new function.
9902 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
9903 global struct to a subclass of gimple_opt_pass along with...
9904 (pass_data_loop_distribution): ...new pass_data instance and...
9905 (make_pass_loop_distribution): ...new function.
9906 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
9907 subclass of gimple_opt_pass along with...
9908 (pass_data_mudflap_1): ...new pass_data instance and...
9909 (make_pass_mudflap_1): ...new function.
9910 (pass_mudflap_2): Convert from a global struct to a subclass of
9911 gimple_opt_pass along with...
9912 (pass_data_mudflap_2): ...new pass_data instance and...
9913 (make_pass_mudflap_2): ...new function.
9914 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
9915 subclass of gimple_opt_pass along with...
9916 (pass_data_mudflap_1): ...new pass_data instance and...
9917 (make_pass_mudflap_1): ...new function.
9918 (pass_mudflap_2): Convert from a global struct to a subclass of
9919 gimple_opt_pass along with...
9920 (pass_data_mudflap_2): ...new pass_data instance and...
9921 (make_pass_mudflap_2): ...new function.
9922 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
9923 gimple_opt_pass along with...
9924 (pass_data_nrv): ...new pass_data instance and...
9925 (make_pass_nrv): ...new function.
9926 (pass_return_slot): Convert from a global struct to a subclass of
9927 gimple_opt_pass along with...
9928 (pass_data_return_slot): ...new pass_data instance and...
9929 (make_pass_return_slot): ...new function.
9930 * tree-object-size.c (pass_object_sizes): Convert from a global struct
9931 to a subclass of gimple_opt_pass along with...
9932 (pass_data_object_sizes): ...new pass_data instance and...
9933 (make_pass_object_sizes): ...new function.
9934 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
9935 global struct to a subclass of gimple_opt_pass along with...
9936 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
9937 and...
9938 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9939 (pass_fixup_cfg): Convert from a global struct to a subclass of
9940 gimple_opt_pass along with...
9941 (pass_data_fixup_cfg): ...new pass_data instance and...
9942 (make_pass_fixup_cfg): ...new function.
9943 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
9944 (make_pass_mudflap_1): ...new function.
9945 (pass_mudflap_2): Replace declaration with that of...
9946 (make_pass_mudflap_2): ...new function.
9947 (pass_asan): Replace declaration with that of...
9948 (make_pass_asan): ...new function.
9949 (pass_asan_O0): Replace declaration with that of...
9950 (make_pass_asan_O0): ...new function.
9951 (pass_tsan): Replace declaration with that of...
9952 (make_pass_tsan): ...new function.
9953 (pass_tsan_O0): Replace declaration with that of...
9954 (make_pass_tsan_O0): ...new function.
9955 (pass_lower_cf): Replace declaration with that of...
9956 (make_pass_lower_cf): ...new function.
9957 (pass_refactor_eh): Replace declaration with that of...
9958 (make_pass_refactor_eh): ...new function.
9959 (pass_lower_eh): Replace declaration with that of...
9960 (make_pass_lower_eh): ...new function.
9961 (pass_lower_eh_dispatch): Replace declaration with that of...
9962 (make_pass_lower_eh_dispatch): ...new function.
9963 (pass_lower_resx): Replace declaration with that of...
9964 (make_pass_lower_resx): ...new function.
9965 (pass_build_cfg): Replace declaration with that of...
9966 (make_pass_build_cfg): ...new function.
9967 (pass_early_tree_profile): Replace declaration with that of...
9968 (make_pass_early_tree_profile): ...new function.
9969 (pass_cleanup_eh): Replace declaration with that of...
9970 (make_pass_cleanup_eh): ...new function.
9971 (pass_sra): Replace declaration with that of...
9972 (make_pass_sra): ...new function.
9973 (pass_sra_early): Replace declaration with that of...
9974 (make_pass_sra_early): ...new function.
9975 (pass_early_ipa_sra): Replace declaration with that of...
9976 (make_pass_early_ipa_sra): ...new function.
9977 (pass_tail_recursion): Replace declaration with that of...
9978 (make_pass_tail_recursion): ...new function.
9979 (pass_tail_calls): Replace declaration with that of...
9980 (make_pass_tail_calls): ...new function.
9981 (pass_tree_loop): Replace declaration with that of...
9982 (make_pass_tree_loop): ...new function.
9983 (pass_tree_loop_init): Replace declaration with that of...
9984 (make_pass_tree_loop_init): ...new function.
9985 (pass_lim): Replace declaration with that of...
9986 (make_pass_lim): ...new function.
9987 (pass_tree_unswitch): Replace declaration with that of...
9988 (make_pass_tree_unswitch): ...new function.
9989 (pass_predcom): Replace declaration with that of...
9990 (make_pass_predcom): ...new function.
9991 (pass_iv_canon): Replace declaration with that of...
9992 (make_pass_iv_canon): ...new function.
9993 (pass_scev_cprop): Replace declaration with that of...
9994 (make_pass_scev_cprop): ...new function.
9995 (pass_empty_loop): Replace declaration with that of...
9996 (make_pass_empty_loop): ...new function.
9997 (pass_record_bounds): Replace declaration with that of...
9998 (make_pass_record_bounds): ...new function.
9999 (pass_graphite): Replace declaration with that of...
10000 (make_pass_graphite): ...new function.
10001 (pass_graphite_transforms): Replace declaration with that of...
10002 (make_pass_graphite_transforms): ...new function.
10003 (pass_if_conversion): Replace declaration with that of...
10004 (make_pass_if_conversion): ...new function.
10005 (pass_loop_distribution): Replace declaration with that of...
10006 (make_pass_loop_distribution): ...new function.
10007 (pass_vectorize): Replace declaration with that of...
10008 (make_pass_vectorize): ...new function.
10009 (pass_slp_vectorize): Replace declaration with that of...
10010 (make_pass_slp_vectorize): ...new function.
10011 (pass_complete_unroll): Replace declaration with that of...
10012 (make_pass_complete_unroll): ...new function.
10013 (pass_complete_unrolli): Replace declaration with that of...
10014 (make_pass_complete_unrolli): ...new function.
10015 (pass_parallelize_loops): Replace declaration with that of...
10016 (make_pass_parallelize_loops): ...new function.
10017 (pass_loop_prefetch): Replace declaration with that of...
10018 (make_pass_loop_prefetch): ...new function.
10019 (pass_iv_optimize): Replace declaration with that of...
10020 (make_pass_iv_optimize): ...new function.
10021 (pass_tree_loop_done): Replace declaration with that of...
10022 (make_pass_tree_loop_done): ...new function.
10023 (pass_ch): Replace declaration with that of...
10024 (make_pass_ch): ...new function.
10025 (pass_ccp): Replace declaration with that of...
10026 (make_pass_ccp): ...new function.
10027 (pass_phi_only_cprop): Replace declaration with that of...
10028 (make_pass_phi_only_cprop): ...new function.
10029 (pass_build_ssa): Replace declaration with that of...
10030 (make_pass_build_ssa): ...new function.
10031 (pass_build_alias): Replace declaration with that of...
10032 (make_pass_build_alias): ...new function.
10033 (pass_build_ealias): Replace declaration with that of...
10034 (make_pass_build_ealias): ...new function.
10035 (pass_dominator): Replace declaration with that of...
10036 (make_pass_dominator): ...new function.
10037 (pass_dce): Replace declaration with that of...
10038 (make_pass_dce): ...new function.
10039 (pass_dce_loop): Replace declaration with that of...
10040 (make_pass_dce_loop): ...new function.
10041 (pass_cd_dce): Replace declaration with that of...
10042 (make_pass_cd_dce): ...new function.
10043 (pass_call_cdce): Replace declaration with that of...
10044 (make_pass_call_cdce): ...new function.
10045 (pass_merge_phi): Replace declaration with that of...
10046 (make_pass_merge_phi): ...new function.
10047 (pass_split_crit_edges): Replace declaration with that of...
10048 (make_pass_split_crit_edges): ...new function.
10049 (pass_pre): Replace declaration with that of...
10050 (make_pass_pre): ...new function.
10051 (pass_profile): Replace declaration with that of...
10052 (make_pass_profile): ...new function.
10053 (pass_strip_predict_hints): Replace declaration with that of...
10054 (make_pass_strip_predict_hints): ...new function.
10055 (pass_lower_complex_O0): Replace declaration with that of...
10056 (make_pass_lower_complex_O0): ...new function.
10057 (pass_lower_complex): Replace declaration with that of...
10058 (make_pass_lower_complex): ...new function.
10059 (pass_lower_vector): Replace declaration with that of...
10060 (make_pass_lower_vector): ...new function.
10061 (pass_lower_vector_ssa): Replace declaration with that of...
10062 (make_pass_lower_vector_ssa): ...new function.
10063 (pass_lower_omp): Replace declaration with that of...
10064 (make_pass_lower_omp): ...new function.
10065 (pass_diagnose_omp_blocks): Replace declaration with that of...
10066 (make_pass_diagnose_omp_blocks): ...new function.
10067 (pass_expand_omp): Replace declaration with that of...
10068 (make_pass_expand_omp): ...new function.
10069 (pass_expand_omp_ssa): Replace declaration with that of...
10070 (make_pass_expand_omp_ssa): ...new function.
10071 (pass_object_sizes): Replace declaration with that of...
10072 (make_pass_object_sizes): ...new function.
10073 (pass_strlen): Replace declaration with that of...
10074 (make_pass_strlen): ...new function.
10075 (pass_fold_builtins): Replace declaration with that of...
10076 (make_pass_fold_builtins): ...new function.
10077 (pass_stdarg): Replace declaration with that of...
10078 (make_pass_stdarg): ...new function.
10079 (pass_early_warn_uninitialized): Replace declaration with that of...
10080 (make_pass_early_warn_uninitialized): ...new function.
10081 (pass_late_warn_uninitialized): Replace declaration with that of...
10082 (make_pass_late_warn_uninitialized): ...new function.
10083 (pass_cse_reciprocals): Replace declaration with that of...
10084 (make_pass_cse_reciprocals): ...new function.
10085 (pass_cse_sincos): Replace declaration with that of...
10086 (make_pass_cse_sincos): ...new function.
10087 (pass_optimize_bswap): Replace declaration with that of...
10088 (make_pass_optimize_bswap): ...new function.
10089 (pass_optimize_widening_mul): Replace declaration with that of...
10090 (make_pass_optimize_widening_mul): ...new function.
10091 (pass_warn_function_return): Replace declaration with that of...
10092 (make_pass_warn_function_return): ...new function.
10093 (pass_warn_function_noreturn): Replace declaration with that of...
10094 (make_pass_warn_function_noreturn): ...new function.
10095 (pass_cselim): Replace declaration with that of...
10096 (make_pass_cselim): ...new function.
10097 (pass_phiopt): Replace declaration with that of...
10098 (make_pass_phiopt): ...new function.
10099 (pass_forwprop): Replace declaration with that of...
10100 (make_pass_forwprop): ...new function.
10101 (pass_phiprop): Replace declaration with that of...
10102 (make_pass_phiprop): ...new function.
10103 (pass_tree_ifcombine): Replace declaration with that of...
10104 (make_pass_tree_ifcombine): ...new function.
10105 (pass_dse): Replace declaration with that of...
10106 (make_pass_dse): ...new function.
10107 (pass_nrv): Replace declaration with that of...
10108 (make_pass_nrv): ...new function.
10109 (pass_rename_ssa_copies): Replace declaration with that of...
10110 (make_pass_rename_ssa_copies): ...new function.
10111 (pass_sink_code): Replace declaration with that of...
10112 (make_pass_sink_code): ...new function.
10113 (pass_fre): Replace declaration with that of...
10114 (make_pass_fre): ...new function.
10115 (pass_check_data_deps): Replace declaration with that of...
10116 (make_pass_check_data_deps): ...new function.
10117 (pass_copy_prop): Replace declaration with that of...
10118 (make_pass_copy_prop): ...new function.
10119 (pass_vrp): Replace declaration with that of...
10120 (make_pass_vrp): ...new function.
10121 (pass_uncprop): Replace declaration with that of...
10122 (make_pass_uncprop): ...new function.
10123 (pass_return_slot): Replace declaration with that of...
10124 (make_pass_return_slot): ...new function.
10125 (pass_reassoc): Replace declaration with that of...
10126 (make_pass_reassoc): ...new function.
10127 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10128 (make_pass_rebuild_cgraph_edges): ...new function.
10129 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10130 (make_pass_remove_cgraph_callee_edges): ...new function.
10131 (pass_build_cgraph_edges): Replace declaration with that of...
10132 (make_pass_build_cgraph_edges): ...new function.
10133 (pass_local_pure_const): Replace declaration with that of...
10134 (make_pass_local_pure_const): ...new function.
10135 (pass_tracer): Replace declaration with that of...
10136 (make_pass_tracer): ...new function.
10137 (pass_warn_unused_result): Replace declaration with that of...
10138 (make_pass_warn_unused_result): ...new function.
10139 (pass_diagnose_tm_blocks): Replace declaration with that of...
10140 (make_pass_diagnose_tm_blocks): ...new function.
10141 (pass_lower_tm): Replace declaration with that of...
10142 (make_pass_lower_tm): ...new function.
10143 (pass_tm_init): Replace declaration with that of...
10144 (make_pass_tm_init): ...new function.
10145 (pass_tm_mark): Replace declaration with that of...
10146 (make_pass_tm_mark): ...new function.
10147 (pass_tm_memopt): Replace declaration with that of...
10148 (make_pass_tm_memopt): ...new function.
10149 (pass_tm_edges): Replace declaration with that of...
10150 (make_pass_tm_edges): ...new function.
10151 (pass_split_functions): Replace declaration with that of...
10152 (make_pass_split_functions): ...new function.
10153 (pass_feedback_split_functions): Replace declaration with that of...
10154 (make_pass_feedback_split_functions): ...new function.
10155 (pass_strength_reduction): Replace declaration with that of...
10156 (make_pass_strength_reduction): ...new function.
10157 (pass_ipa_lower_emutls): Replace declaration with that of...
10158 (make_pass_ipa_lower_emutls): ...new function.
10159 (pass_ipa_function_and_variable_visibility): Replace declaration with
10160 that of...
10161 (make_pass_ipa_function_and_variable_visibility): ...new function.
10162 (pass_ipa_tree_profile): Replace declaration with that of...
10163 (make_pass_ipa_tree_profile): ...new function.
10164 (pass_early_local_passes): Replace declaration with that of...
10165 (make_pass_early_local_passes): ...new function.
10166 (pass_ipa_whole_program_visibility): Replace declaration with that
10167 of...
10168 (make_pass_ipa_whole_program_visibility): ...new function.
10169 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10170 (make_pass_ipa_lto_gimple_out): ...new function.
10171 (pass_ipa_increase_alignment): Replace declaration with that of...
10172 (make_pass_ipa_increase_alignment): ...new function.
10173 (pass_ipa_inline): Replace declaration with that of...
10174 (make_pass_ipa_inline): ...new function.
10175 (pass_ipa_free_lang_data): Replace declaration with that of...
10176 (make_pass_ipa_free_lang_data): ...new function.
10177 (pass_ipa_free_inline_summary): Replace declaration with that of...
10178 (make_pass_ipa_free_inline_summary): ...new function.
10179 (pass_ipa_cp): Replace declaration with that of...
10180 (make_pass_ipa_cp): ...new function.
10181 (pass_ipa_reference): Replace declaration with that of...
10182 (make_pass_ipa_reference): ...new function.
10183 (pass_ipa_pure_const): Replace declaration with that of...
10184 (make_pass_ipa_pure_const): ...new function.
10185 (pass_ipa_pta): Replace declaration with that of...
10186 (make_pass_ipa_pta): ...new function.
10187 (pass_ipa_lto_finish_out): Replace declaration with that of...
10188 (make_pass_ipa_lto_finish_out): ...new function.
10189 (pass_ipa_tm): Replace declaration with that of...
10190 (make_pass_ipa_tm): ...new function.
10191 (pass_ipa_profile): Replace declaration with that of...
10192 (make_pass_ipa_profile): ...new function.
10193 (pass_ipa_cdtor_merge): Replace declaration with that of...
10194 (make_pass_ipa_cdtor_merge): ...new function.
10195 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10196 of...
10197 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10198 (pass_init_datastructures): Replace declaration with that of...
10199 (make_pass_init_datastructures): ...new function.
10200 (pass_fixup_cfg): Replace declaration with that of...
10201 (make_pass_fixup_cfg): ...new function.
10202 (pass_expand): Replace declaration with that of...
10203 (make_pass_expand): ...new function.
10204 (pass_instantiate_virtual_regs): Replace declaration with that of...
10205 (make_pass_instantiate_virtual_regs): ...new function.
10206 (pass_rtl_fwprop): Replace declaration with that of...
10207 (make_pass_rtl_fwprop): ...new function.
10208 (pass_rtl_fwprop_addr): Replace declaration with that of...
10209 (make_pass_rtl_fwprop_addr): ...new function.
10210 (pass_jump): Replace declaration with that of...
10211 (make_pass_jump): ...new function.
10212 (pass_jump2): Replace declaration with that of...
10213 (make_pass_jump2): ...new function.
10214 (pass_lower_subreg): Replace declaration with that of...
10215 (make_pass_lower_subreg): ...new function.
10216 (pass_cse): Replace declaration with that of...
10217 (make_pass_cse): ...new function.
10218 (pass_fast_rtl_dce): Replace declaration with that of...
10219 (make_pass_fast_rtl_dce): ...new function.
10220 (pass_ud_rtl_dce): Replace declaration with that of...
10221 (make_pass_ud_rtl_dce): ...new function.
10222 (pass_rtl_dce): Replace declaration with that of...
10223 (make_pass_rtl_dce): ...new function.
10224 (pass_rtl_dse1): Replace declaration with that of...
10225 (make_pass_rtl_dse1): ...new function.
10226 (pass_rtl_dse2): Replace declaration with that of...
10227 (make_pass_rtl_dse2): ...new function.
10228 (pass_rtl_dse3): Replace declaration with that of...
10229 (make_pass_rtl_dse3): ...new function.
10230 (pass_rtl_cprop): Replace declaration with that of...
10231 (make_pass_rtl_cprop): ...new function.
10232 (pass_rtl_pre): Replace declaration with that of...
10233 (make_pass_rtl_pre): ...new function.
10234 (pass_rtl_hoist): Replace declaration with that of...
10235 (make_pass_rtl_hoist): ...new function.
10236 (pass_rtl_store_motion): Replace declaration with that of...
10237 (make_pass_rtl_store_motion): ...new function.
10238 (pass_cse_after_global_opts): Replace declaration with that of...
10239 (make_pass_cse_after_global_opts): ...new function.
10240 (pass_rtl_ifcvt): Replace declaration with that of...
10241 (make_pass_rtl_ifcvt): ...new function.
10242 (pass_into_cfg_layout_mode): Replace declaration with that of...
10243 (make_pass_into_cfg_layout_mode): ...new function.
10244 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10245 (make_pass_outof_cfg_layout_mode): ...new function.
10246 (pass_loop2): Replace declaration with that of...
10247 (make_pass_loop2): ...new function.
10248 (pass_rtl_loop_init): Replace declaration with that of...
10249 (make_pass_rtl_loop_init): ...new function.
10250 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10251 (make_pass_rtl_move_loop_invariants): ...new function.
10252 (pass_rtl_unswitch): Replace declaration with that of...
10253 (make_pass_rtl_unswitch): ...new function.
10254 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10255 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10256 (pass_rtl_doloop): Replace declaration with that of...
10257 (make_pass_rtl_doloop): ...new function.
10258 (pass_rtl_loop_done): Replace declaration with that of...
10259 (make_pass_rtl_loop_done): ...new function.
10260 (pass_web): Replace declaration with that of...
10261 (make_pass_web): ...new function.
10262 (pass_cse2): Replace declaration with that of...
10263 (make_pass_cse2): ...new function.
10264 (pass_df_initialize_opt): Replace declaration with that of...
10265 (make_pass_df_initialize_opt): ...new function.
10266 (pass_df_initialize_no_opt): Replace declaration with that of...
10267 (make_pass_df_initialize_no_opt): ...new function.
10268 (pass_reginfo_init): Replace declaration with that of...
10269 (make_pass_reginfo_init): ...new function.
10270 (pass_inc_dec): Replace declaration with that of...
10271 (make_pass_inc_dec): ...new function.
10272 (pass_stack_ptr_mod): Replace declaration with that of...
10273 (make_pass_stack_ptr_mod): ...new function.
10274 (pass_initialize_regs): Replace declaration with that of...
10275 (make_pass_initialize_regs): ...new function.
10276 (pass_combine): Replace declaration with that of...
10277 (make_pass_combine): ...new function.
10278 (pass_if_after_combine): Replace declaration with that of...
10279 (make_pass_if_after_combine): ...new function.
10280 (pass_ree): Replace declaration with that of...
10281 (make_pass_ree): ...new function.
10282 (pass_partition_blocks): Replace declaration with that of...
10283 (make_pass_partition_blocks): ...new function.
10284 (pass_match_asm_constraints): Replace declaration with that of...
10285 (make_pass_match_asm_constraints): ...new function.
10286 (pass_regmove): Replace declaration with that of...
10287 (make_pass_regmove): ...new function.
10288 (pass_split_all_insns): Replace declaration with that of...
10289 (make_pass_split_all_insns): ...new function.
10290 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10291 (make_pass_fast_rtl_byte_dce): ...new function.
10292 (pass_lower_subreg2): Replace declaration with that of...
10293 (make_pass_lower_subreg2): ...new function.
10294 (pass_mode_switching): Replace declaration with that of...
10295 (make_pass_mode_switching): ...new function.
10296 (pass_sms): Replace declaration with that of...
10297 (make_pass_sms): ...new function.
10298 (pass_sched): Replace declaration with that of...
10299 (make_pass_sched): ...new function.
10300 (pass_ira): Replace declaration with that of...
10301 (make_pass_ira): ...new function.
10302 (pass_reload): Replace declaration with that of...
10303 (make_pass_reload): ...new function.
10304 (pass_clean_state): Replace declaration with that of...
10305 (make_pass_clean_state): ...new function.
10306 (pass_branch_prob): Replace declaration with that of...
10307 (make_pass_branch_prob): ...new function.
10308 (pass_value_profile_transformations): Replace declaration with that
10309 of...
10310 (make_pass_value_profile_transformations): ...new function.
10311 (pass_postreload_cse): Replace declaration with that of...
10312 (make_pass_postreload_cse): ...new function.
10313 (pass_gcse2): Replace declaration with that of...
10314 (make_pass_gcse2): ...new function.
10315 (pass_split_after_reload): Replace declaration with that of...
10316 (make_pass_split_after_reload): ...new function.
10317 (pass_branch_target_load_optimize1): Replace declaration with that
10318 of...
10319 (make_pass_branch_target_load_optimize1): ...new function.
10320 (pass_thread_prologue_and_epilogue): Replace declaration with that
10321 of...
10322 (make_pass_thread_prologue_and_epilogue): ...new function.
10323 (pass_stack_adjustments): Replace declaration with that of...
10324 (make_pass_stack_adjustments): ...new function.
10325 (pass_peephole2): Replace declaration with that of...
10326 (make_pass_peephole2): ...new function.
10327 (pass_if_after_reload): Replace declaration with that of...
10328 (make_pass_if_after_reload): ...new function.
10329 (pass_regrename): Replace declaration with that of...
10330 (make_pass_regrename): ...new function.
10331 (pass_cprop_hardreg): Replace declaration with that of...
10332 (make_pass_cprop_hardreg): ...new function.
10333 (pass_reorder_blocks): Replace declaration with that of...
10334 (make_pass_reorder_blocks): ...new function.
10335 (pass_branch_target_load_optimize2): Replace declaration with that
10336 of...
10337 (make_pass_branch_target_load_optimize2): ...new function.
10338 (pass_leaf_regs): Replace declaration with that of...
10339 (make_pass_leaf_regs): ...new function.
10340 (pass_split_before_sched2): Replace declaration with that of...
10341 (make_pass_split_before_sched2): ...new function.
10342 (pass_compare_elim_after_reload): Replace declaration with that of...
10343 (make_pass_compare_elim_after_reload): ...new function.
10344 (pass_sched2): Replace declaration with that of...
10345 (make_pass_sched2): ...new function.
10346 (pass_stack_regs): Replace declaration with that of...
10347 (make_pass_stack_regs): ...new function.
10348 (pass_stack_regs_run): Replace declaration with that of...
10349 (make_pass_stack_regs_run): ...new function.
10350 (pass_df_finish): Replace declaration with that of...
10351 (make_pass_df_finish): ...new function.
10352 (pass_compute_alignments): Replace declaration with that of...
10353 (make_pass_compute_alignments): ...new function.
10354 (pass_duplicate_computed_gotos): Replace declaration with that of...
10355 (make_pass_duplicate_computed_gotos): ...new function.
10356 (pass_variable_tracking): Replace declaration with that of...
10357 (make_pass_variable_tracking): ...new function.
10358 (pass_free_cfg): Replace declaration with that of...
10359 (make_pass_free_cfg): ...new function.
10360 (pass_machine_reorg): Replace declaration with that of...
10361 (make_pass_machine_reorg): ...new function.
10362 (pass_cleanup_barriers): Replace declaration with that of...
10363 (make_pass_cleanup_barriers): ...new function.
10364 (pass_delay_slots): Replace declaration with that of...
10365 (make_pass_delay_slots): ...new function.
10366 (pass_split_for_shorten_branches): Replace declaration with that of...
10367 (make_pass_split_for_shorten_branches): ...new function.
10368 (pass_split_before_regstack): Replace declaration with that of...
10369 (make_pass_split_before_regstack): ...new function.
10370 (pass_convert_to_eh_region_ranges): Replace declaration with that
10371 of...
10372 (make_pass_convert_to_eh_region_ranges): ...new function.
10373 (pass_shorten_branches): Replace declaration with that of...
10374 (make_pass_shorten_branches): ...new function.
10375 (pass_set_nothrow_function_flags): Replace declaration with that of...
10376 (make_pass_set_nothrow_function_flags): ...new function.
10377 (pass_dwarf2_frame): Replace declaration with that of...
10378 (make_pass_dwarf2_frame): ...new function.
10379 (pass_final): Replace declaration with that of...
10380 (make_pass_final): ...new function.
10381 (pass_rtl_seqabstr): Replace declaration with that of...
10382 (make_pass_rtl_seqabstr): ...new function.
10383 (pass_release_ssa_names): Replace declaration with that of...
10384 (make_pass_release_ssa_names): ...new function.
10385 (pass_early_inline): Replace declaration with that of...
10386 (make_pass_early_inline): ...new function.
10387 (pass_inline_parameters): Replace declaration with that of...
10388 (make_pass_inline_parameters): ...new function.
10389 (pass_update_address_taken): Replace declaration with that of...
10390 (make_pass_update_address_taken): ...new function.
10391 (pass_convert_switch): Replace declaration with that of...
10392 (make_pass_convert_switch): ...new function.
10393 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10394 to a subclass of simple_ipa_opt_pass along with...
10395 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10396 (make_pass_ipa_tree_profile): ...new function.
10397 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10398 subclass of gimple_opt_pass along with...
10399 (pass_data_sra_early): ...new pass_data instance and...
10400 (make_pass_sra_early): ...new function.
10401 (pass_sra): Convert from a global struct to a subclass of
10402 gimple_opt_pass along with...
10403 (pass_data_sra): ...new pass_data instance and...
10404 (make_pass_sra): ...new function.
10405 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10406 gimple_opt_pass along with...
10407 (pass_data_early_ipa_sra): ...new pass_data instance and...
10408 (make_pass_early_ipa_sra): ...new function.
10409 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10410 subclass of gimple_opt_pass along with...
10411 (pass_data_ccp): ...new pass_data instance and...
10412 (make_pass_ccp): ...new function.
10413 (pass_fold_builtins): Convert from a global struct to a subclass of
10414 gimple_opt_pass along with...
10415 (pass_data_fold_builtins): ...new pass_data instance and...
10416 (make_pass_fold_builtins): ...new function.
10417 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10418 subclass of gimple_opt_pass along with...
10419 (pass_data_copy_prop): ...new pass_data instance and...
10420 (make_pass_copy_prop): ...new function.
10421 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10422 global struct to a subclass of gimple_opt_pass along with...
10423 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10424 (make_pass_rename_ssa_copies): ...new function.
10425 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10426 subclass of gimple_opt_pass along with...
10427 (pass_data_dce): ...new pass_data instance and...
10428 (make_pass_dce): ...new function.
10429 (pass_dce_loop): Convert from a global struct to a subclass of
10430 gimple_opt_pass along with...
10431 (pass_data_dce_loop): ...new pass_data instance and...
10432 (make_pass_dce_loop): ...new function.
10433 (pass_cd_dce): Convert from a global struct to a subclass of
10434 gimple_opt_pass along with...
10435 (pass_data_cd_dce): ...new pass_data instance and...
10436 (make_pass_cd_dce): ...new function.
10437 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10438 subclass of gimple_opt_pass along with...
10439 (pass_data_dominator): ...new pass_data instance and...
10440 (make_pass_dominator): ...new function.
10441 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10442 gimple_opt_pass along with...
10443 (pass_data_phi_only_cprop): ...new pass_data instance and...
10444 (make_pass_phi_only_cprop): ...new function.
10445 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10446 subclass of gimple_opt_pass along with...
10447 (pass_data_dse): ...new pass_data instance and...
10448 (make_pass_dse): ...new function.
10449 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10450 a subclass of gimple_opt_pass along with...
10451 (pass_data_forwprop): ...new pass_data instance and...
10452 (make_pass_forwprop): ...new function.
10453 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10454 struct to a subclass of gimple_opt_pass along with...
10455 (pass_data_tree_ifcombine): ...new pass_data instance and...
10456 (make_pass_tree_ifcombine): ...new function.
10457 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10458 subclass of gimple_opt_pass along with...
10459 (pass_data_ch): ...new pass_data instance and...
10460 (make_pass_ch): ...new function.
10461 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10462 subclass of gimple_opt_pass along with...
10463 (pass_data_tree_loop): ...new pass_data instance and...
10464 (make_pass_tree_loop): ...new function.
10465 (pass_tree_loop_init): Convert from a global struct to a subclass of
10466 gimple_opt_pass along with...
10467 (pass_data_tree_loop_init): ...new pass_data instance and...
10468 (make_pass_tree_loop_init): ...new function.
10469 (pass_lim): Convert from a global struct to a subclass of
10470 gimple_opt_pass along with...
10471 (pass_data_lim): ...new pass_data instance and...
10472 (make_pass_lim): ...new function.
10473 (pass_tree_unswitch): Convert from a global struct to a subclass of
10474 gimple_opt_pass along with...
10475 (pass_data_tree_unswitch): ...new pass_data instance and...
10476 (make_pass_tree_unswitch): ...new function.
10477 (pass_predcom): Convert from a global struct to a subclass of
10478 gimple_opt_pass along with...
10479 (pass_data_predcom): ...new pass_data instance and...
10480 (make_pass_predcom): ...new function.
10481 (pass_vectorize): Convert from a global struct to a subclass of
10482 gimple_opt_pass along with...
10483 (pass_data_vectorize): ...new pass_data instance and...
10484 (make_pass_vectorize): ...new function.
10485 (pass_graphite): Convert from a global struct to a subclass of
10486 gimple_opt_pass along with...
10487 (pass_data_graphite): ...new pass_data instance and...
10488 (make_pass_graphite): ...new function.
10489 (pass_graphite_transforms): Convert from a global struct to a subclass
10490 of gimple_opt_pass along with...
10491 (pass_data_graphite_transforms): ...new pass_data instance and...
10492 (make_pass_graphite_transforms): ...new function.
10493 (pass_check_data_deps): Convert from a global struct to a subclass of
10494 gimple_opt_pass along with...
10495 (pass_data_check_data_deps): ...new pass_data instance and...
10496 (make_pass_check_data_deps): ...new function.
10497 (pass_iv_canon): Convert from a global struct to a subclass of
10498 gimple_opt_pass along with...
10499 (pass_data_iv_canon): ...new pass_data instance and...
10500 (make_pass_iv_canon): ...new function.
10501 (pass_scev_cprop): Convert from a global struct to a subclass of
10502 gimple_opt_pass along with...
10503 (pass_data_scev_cprop): ...new pass_data instance and...
10504 (make_pass_scev_cprop): ...new function.
10505 (pass_record_bounds): Convert from a global struct to a subclass of
10506 gimple_opt_pass along with...
10507 (pass_data_record_bounds): ...new pass_data instance and...
10508 (make_pass_record_bounds): ...new function.
10509 (pass_complete_unroll): Convert from a global struct to a subclass of
10510 gimple_opt_pass along with...
10511 (pass_data_complete_unroll): ...new pass_data instance and...
10512 (make_pass_complete_unroll): ...new function.
10513 (pass_complete_unrolli): Convert from a global struct to a subclass of
10514 gimple_opt_pass along with...
10515 (pass_data_complete_unrolli): ...new pass_data instance and...
10516 (make_pass_complete_unrolli): ...new function.
10517 (pass_parallelize_loops): Convert from a global struct to a subclass
10518 of gimple_opt_pass along with...
10519 (pass_data_parallelize_loops): ...new pass_data instance and...
10520 (make_pass_parallelize_loops): ...new function.
10521 (pass_loop_prefetch): Convert from a global struct to a subclass of
10522 gimple_opt_pass along with...
10523 (pass_data_loop_prefetch): ...new pass_data instance and...
10524 (make_pass_loop_prefetch): ...new function.
10525 (pass_iv_optimize): Convert from a global struct to a subclass of
10526 gimple_opt_pass along with...
10527 (pass_data_iv_optimize): ...new pass_data instance and...
10528 (make_pass_iv_optimize): ...new function.
10529 (pass_tree_loop_done): Convert from a global struct to a subclass of
10530 gimple_opt_pass along with...
10531 (pass_data_tree_loop_done): ...new pass_data instance and...
10532 (make_pass_tree_loop_done): ...new function.
10533 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10534 struct to a subclass of gimple_opt_pass along with...
10535 (pass_data_cse_reciprocals): ...new pass_data instance and...
10536 (make_pass_cse_reciprocals): ...new function.
10537 (pass_cse_sincos): Convert from a global struct to a subclass of
10538 gimple_opt_pass along with...
10539 (pass_data_cse_sincos): ...new pass_data instance and...
10540 (make_pass_cse_sincos): ...new function.
10541 (pass_optimize_bswap): Convert from a global struct to a subclass of
10542 gimple_opt_pass along with...
10543 (pass_data_optimize_bswap): ...new pass_data instance and...
10544 (make_pass_optimize_bswap): ...new function.
10545 (pass_optimize_widening_mul): Convert from a global struct to a
10546 subclass of gimple_opt_pass along with...
10547 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10548 (make_pass_optimize_widening_mul): ...new function.
10549 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10550 subclass of gimple_opt_pass along with...
10551 (pass_data_phiopt): ...new pass_data instance and...
10552 (make_pass_phiopt): ...new function.
10553 (pass_cselim): Convert from a global struct to a subclass of
10554 gimple_opt_pass along with...
10555 (pass_data_cselim): ...new pass_data instance and...
10556 (make_pass_cselim): ...new function.
10557 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10558 subclass of gimple_opt_pass along with...
10559 (pass_data_phiprop): ...new pass_data instance and...
10560 (make_pass_phiprop): ...new function.
10561 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10562 subclass of gimple_opt_pass along with...
10563 (pass_data_pre): ...new pass_data instance and...
10564 (make_pass_pre): ...new function.
10565 (pass_fre): Convert from a global struct to a subclass of
10566 gimple_opt_pass along with...
10567 (pass_data_fre): ...new pass_data instance and...
10568 (make_pass_fre): ...new function.
10569 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10570 subclass of gimple_opt_pass along with...
10571 (pass_data_reassoc): ...new pass_data instance and...
10572 (make_pass_reassoc): ...new function.
10573 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10574 subclass of gimple_opt_pass along with...
10575 (pass_data_sink_code): ...new pass_data instance and...
10576 (make_pass_sink_code): ...new function.
10577 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10578 subclass of gimple_opt_pass along with...
10579 (pass_data_strlen): ...new pass_data instance and...
10580 (make_pass_strlen): ...new function.
10581 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10582 struct to a subclass of gimple_opt_pass along with...
10583 (pass_data_build_alias): ...new pass_data instance and...
10584 (make_pass_build_alias): ...new function.
10585 (pass_build_ealias): Convert from a global struct to a subclass of
10586 gimple_opt_pass along with...
10587 (pass_data_build_ealias): ...new pass_data instance and...
10588 (make_pass_build_ealias): ...new function.
10589 (pass_ipa_pta): Convert from a global struct to a subclass of
10590 simple_ipa_opt_pass along with...
10591 (pass_data_ipa_pta): ...new pass_data instance and...
10592 (make_pass_ipa_pta): ...new function.
10593 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10594 subclass of gimple_opt_pass along with...
10595 (pass_data_uncprop): ...new pass_data instance and...
10596 (make_pass_uncprop): ...new function.
10597 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10598 global struct to a subclass of gimple_opt_pass along with...
10599 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10600 (make_pass_late_warn_uninitialized): ...new function.
10601 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10602 to a subclass of gimple_opt_pass along with...
10603 (pass_data_init_datastructures): ...new pass_data instance and...
10604 (make_pass_init_datastructures): ...new function.
10605 (pass_early_warn_uninitialized): Convert from a global struct to a
10606 subclass of gimple_opt_pass along with...
10607 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10608 (make_pass_early_warn_uninitialized): ...new function.
10609 (pass_update_address_taken): Convert from a global struct to a
10610 subclass of gimple_opt_pass along with...
10611 (pass_data_update_address_taken): ...new pass_data instance and...
10612 (make_pass_update_address_taken): ...new function.
10613 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10614 struct to a subclass of gimple_opt_pass along with...
10615 (pass_data_release_ssa_names): ...new pass_data instance and...
10616 (make_pass_release_ssa_names): ...new function.
10617 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10618 subclass of gimple_opt_pass along with...
10619 (pass_data_stdarg): ...new pass_data instance and...
10620 (make_pass_stdarg): ...new function.
10621 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10622 global struct to a subclass of gimple_opt_pass along with...
10623 (pass_data_convert_switch): ...new pass_data instance and...
10624 (make_pass_convert_switch): ...new function.
10625 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10626 to a subclass of gimple_opt_pass along with...
10627 (pass_data_tail_recursion): ...new pass_data instance and...
10628 (make_pass_tail_recursion): ...new function.
10629 (pass_tail_calls): Convert from a global struct to a subclass of
10630 gimple_opt_pass along with...
10631 (pass_data_tail_calls): ...new pass_data instance and...
10632 (make_pass_tail_calls): ...new function.
10633 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10634 struct to a subclass of gimple_opt_pass along with...
10635 (pass_data_lower_vector): ...new pass_data instance and...
10636 (make_pass_lower_vector): ...new function.
10637 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10638 gimple_opt_pass along with...
10639 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10640 (make_pass_lower_vector_ssa): ...new function.
10641 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10642 to a subclass of gimple_opt_pass along with...
10643 (pass_data_slp_vectorize): ...new pass_data instance and...
10644 (make_pass_slp_vectorize): ...new function.
10645 (pass_ipa_increase_alignment): Convert from a global struct to a
10646 subclass of simple_ipa_opt_pass along with...
10647 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10648 (make_pass_ipa_increase_alignment): ...new function.
10649 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10650 gimple_opt_pass along with...
10651 (pass_data_vrp): ...new pass_data instance and...
10652 (make_pass_vrp): ...new function.
10653 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10654 subclass of simple_ipa_opt_pass along with...
10655 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10656 (make_pass_ipa_free_lang_data): ...new function.
10657 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10658 gimple_opt_pass along with...
10659 (pass_data_tsan): ...new pass_data instance and...
10660 (make_pass_tsan): ...new function.
10661 (pass_tsan_O0): Convert from a global struct to a subclass of
10662 gimple_opt_pass along with...
10663 (pass_data_tsan_O0): ...new pass_data instance and...
10664 (make_pass_tsan_O0): ...new function.
10665 * var-tracking.c (pass_variable_tracking): Convert from a global
10666 struct to a subclass of rtl_opt_pass along with...
10667 (pass_data_variable_tracking): ...new pass_data instance and...
10668 (make_pass_variable_tracking): ...new function.
10669 * web.c (pass_web): Convert from a global struct to a subclass of
10670 rtl_opt_pass along with...
10671 (pass_data_web): ...new pass_data instance and...
10672 (make_pass_web): ...new function.
10673 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10674 declaration with that of...
10675 (make_pass_mode_switch_use): ...new function.
10676 (pass_resolve_sw_modes): Replace declaration with that of...
10677 (make_pass_resolve_sw_modes): ...new function.
10678 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10679 from a global struct to a subclass of rtl_opt_pass along with...
10680 (pass_data_mode_switch_use): ...new pass_data instance and...
10681 (make_pass_mode_switch_use): ...new function.
10682 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10683 from a global struct to a subclass of rtl_opt_pass along with...
10684 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10685 (make_pass_resolve_sw_modes): ...new function.
10686 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10687 struct to a subclass of rtl_opt_pass along with...
10688 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10689 (make_pass_insert_vzeroupper): ...new function.
10690 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10691 global struct to a subclass of rtl_opt_pass along with...
10692 (pass_data_work_around_errata): ...new pass_data instance and...
10693 (make_pass_work_around_errata): ...new function.
10694 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10695 struct to a subclass of rtl_opt_pass along with...
10696 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10697 (make_pass_mips_machine_reorg2): ...new function.
10698
6a389ed5
DM
106992013-08-05 David Malcolm <dmalcolm@redhat.com>
10700
10701 * passes.c (pass_manager::operator new): New.
10702
f7695dbf
DM
107032013-08-05 David Malcolm <dmalcolm@redhat.com>
10704
10705 Handwritten part of conversion of passes to C++ classes.
10706
10707 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10708 (toplev.o): Add dep on PASS_MANAGER_H.
10709 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10710 of early local pases to reflect this moving from a global to a
10711 member of gcc::pass_manager.
10712 (cgraph_add_new_function): Likewise.
10713 * lto-cgraph.c (lto_output_node): Update for conversion of
10714 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10715 * passes.c (opt_pass::clone): New.
10716 (opt_pass::gate): New.
10717 (opt_pass::execute): New.
10718 (opt_pass::opt_pass): New.
10719 (pass_manager::execute_early_local_passes): New.
10720 (pass_manager::execute_pass_mode_switching): new.
10721 (finish_optimization_passes): Convert to...
10722 (pass_manager::finish_optimization_passes): ...this.
10723 (finish_optimization_passes): Update for conversion of passes to
10724 C++ classes.
10725 (register_dump_files_1): Use has_gate since we cannot portably
10726 check a vtable entry against NULL.
10727 (dump_one_pass): Likewise.
10728 (ipa_write_summaries_2): Likewise.
10729 (ipa_write_optimization_summaries_1): Likewise.
10730 (ipa_read_summaries_1): Likewise.
10731 (ipa_read_optimization_summaries_1): Likewise.
10732 (execute_ipa_stmt_fixups): Likewise.
10733 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10734 pass-creation functions rather than wiring up globals, and
10735 storing the results in fields of pass_manager generated using
10736 pass-instances.def.
10737 (pass_manager::dump_profile_report): Update for conversion of
10738 passes to C++ classes.
10739 (pass_manager::execute_ipa_summary_passes): Likewise.
10740 (execute_one_ipa_transform_pass): Likewise.
10741 (execute_one_pass): Use has_gate and has_execute since we cannot
10742 portably check a vtable entry against NULL.
10743 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10744 (pass_manager): Use pass-instances.def to add fields for the
10745 various pass instances.
10746 * toplev.c (finalize): Update for move of
10747 finish_optimization_passes to a method of gcc::pass_manager.
10748 * toplev.h (finish_optimization_passes): Move to method of class
10749 pass_manager.
10750 * tree-pass.h (struct pass_data): New.
03b0ee0a 10751 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
10752 (opt_pass::gate): Convert to virtual function.
10753 (opt_pass::~opt_pass): New.
10754 (opt_pass::clone): New.
10755 (opt_pass::execute): Convert to virtual function.
10756 (opt_pass::opt_pass): New.
10757 (opt_pass::ctxt_): new.
10758 (gimple_opt_pass): Convert to subclass of opt_pass.
10759 (gimple_opt_pass::gimple_opt_pass): New.
10760 (rtl_opt_pass): Convert to subclass of opt_pass.
10761 (rtl_opt_pass::rtl_opt_pass): New.
10762 (ipa_opt_pass_d): Convert to subclass of opt_pass.
10763 (ipa_opt_pass_d::ipa_opt_pass_d): New.
10764 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
10765 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
10766 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
10767 invocation of pass_mode_switching to reflect this moving from a
10768 global to a member of gcc::pass_manager.
10769 (ix86_option_override): Rework how pass_insert_vzeroupper is
10770 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 10771 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 10772
d0b2f831
RE
107732013-08-05 Richard Earnshaw <rearnsha@arm.com>
10774
10775 PR rtl-optimization/57708
10776 * recog.c (peep2_find_free_register): Validate all regs in a
10777 multi-reg mode.
10778
51a5c0c2
JH
107792013-08-05 Jan Hubicka <jh@suse.cz>
10780
10781 PR lto/57602
03b0ee0a
UB
10782 * cgraph.c (verify_cgraph_node): Accept local flags from other
10783 partitions.
51a5c0c2
JH
10784 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
10785 (function_and_variable_visibility): Likewise.
10786 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
10787
65f0a120
GDR
107882013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10789
10790 * graph.c (init_graph_slim_pretty_print): Remove.
10791 (print_graph_cfg): Do not call it. Use local pretty printer.
10792 (start_graph_dump): Likewise.
10793
b3f80694
GDR
107942013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10795
10796 * gimple-pretty-print.c (buffer): Remove.
10797 (initialized): Likewise.
10798 (maybe_init_pretty_print): Likewise.
10799 (print_gimple_stmt): Do not call it. Use non-static local
10800 pretty_printer variable.
10801 (print_gimple_expr): Likewise.
10802 (print_gimple_seq): Likewise.
10803 (gimple_dump_bb): Likewise.
10804
11a877b3
GDR
108052013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10806
10807 * asan.c (asan_pp): Remove.
10808 (asan_pp_initialized): Likewise.
10809 (asan_pp_initialize): Likewise.
10810 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
10811 (asan_emit_stack_protection): Tidy. Use local pretty printer.
10812 (asan_add_global): Likewise.
10813
b066401f
GDR
108142013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
10815
10816 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
10817 * diagnostic.h (diagnostic_flush_buffer): Adjust.
10818 * pretty-print.c (pp_formatted_text_data): Likewise.
10819 (pp_indent): Rename from pp_base_indent.
10820 (pp_format): Rename from pp_base_format.
10821 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
10822 (pp_format_verbatim): Rename from pp_base_format_verbatim.
10823 (pp_flush): Rename from pp_base_flush.
10824 (pp_set_line_maximum_length): Rename from
10825 pp_base_set_line_maximum_length.
10826 (pp_clear_output_area): Rename from pp_base_clear_output_area.
10827 (pp_set_prefix): Rename from pp_base_set_prefix.
10828 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
10829 (pp_emit_prefix): Rename from pp_base_emit_prefix.
10830 (pp_append_text): Rename from pp_base_append_text.
10831 (pp_formatted_text): Rename from pp_base_formatted_text.
10832 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
10833 (pp_remaining_character_count_for_line): Rename from
10834 pp_base_remaining_character_count_for_line.
10835 (pp_newline): Rename from pp_base_newline.
10836 (pp_character): Rename from pp_base_character.
10837 (pp_string): Rename from pp_base_string.
10838 (pp_maybe_space): Rename from pp_base_maybe_space.
10839 * asan.c (asan_pp_string): Adjust.
10840 (asan_emit_stack_protection): Likewise.
10841 (asan_add_global): Likewise.
10842 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
10843 * tree-mudflap.c (mf_varname_tree): Likewise.
10844 * tree-pretty-print.c (pp_tree_identifier): Rename from
10845 pp_base_tree_identifier.
10846 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
10847 Declare as function.
10848
137a1a27
GDR
108492013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10850
10851 * pretty-print.h (pp_bar_bar): New.
10852 (pp_ampersand_ampersand): Likewise.
10853 (pp_less_equal): Likewise.
10854 (pp_greater_equal): Likewise.
10855 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
10856 printer functions instead of pp_string or operators and punctuators.
10857 (dump_gimple_call): Likewise.
10858 (dump_gimple_omp_for): Likewise.
10859 (dump_gimple_transaction): Likewise.
10860 (dump_gimple_phi): Likewise.
10861 (pp_gimple_stmt_1): Likewise.
10862 * sched-vis.c (print_insn): Likewise.
10863 * tree-mudflap.c (mf_varname_tree): Likewise.
10864 * tree-pretty-print.c (dump_block_node): Likewise.
10865 (dump_generic_node): Likewise.
10866
815effe1
JH
108672013-08-02 Jan Hubicka <jh@suse.cz>
10868
10869 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
10870 boundaries.
10871 * lto-streamer-out.c (tree_is_indexable): Results decls and
10872 parm decls are not indexable.
10873 (DFS_write_tree_body): Do not follow args and results.
10874 (hash_tree): Likewise.
10875 (output_functions): Rearrange so struct function is needed
10876 only when real body is output; be able to also ouptut abstract
10877 functions; output DECL_ARGUMENTS and DECL_RESULT.
10878 (lto_output): When not in WPA, ale store abstract functions.
10879 (write_symbol): Do not care about RESULT_DECL.
10880 (output_symbol_p): Handle correctly sbtract decls.
10881 * lto-streamer-in.c (input_function): Rearrange so struct
10882 function can be NULL at entry; allow streaming of
10883 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
10884 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
10885 sanity check during LTO.
10886 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
10887 RESULT_DECl and DECL_ARGUMENTS.
10888 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
10889 Likewise.
10890
07838b13
GDR
108912013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10892
10893 * pretty-print.h (pp_underscore): New.
10894 (pp_comma): Tidy.
10895 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
10896 printer functions instead of pp_character.
10897 (dump_binary_rhs): Likewise.
10898 (dump_ternary_rhs): Likewise.
10899 (dump_gimple_call_args): Likewise.
10900 (pp_points_to_solution): Likewise.
10901 (dump_gimple_call): Likewise.
10902 (dump_gimple_switch): Likewise.
10903 (dump_gimple_cond): Likewise.
10904 (dump_gimple_bind): Likewise.
10905 (dump_gimple_try): Likewise.
10906 (dump_gimple_omp_for): Likewise.
10907 (dump_gimple_omp_continue): Likewise.
10908 (dump_gimple_omp_single): Likewise.
10909 (dump_gimple_omp_sections): Likewise.
10910 (dump_gimple_omp_block): Likewise.
10911 (dump_gimple_omp_critical): Likewise.
10912 (dump_gimple_transaction): Likewise.
10913 (dump_gimple_asm): Likewise.
10914 (dump_gimple_phi): Likewise.
10915 (dump_gimple_omp_parallel): Likewise.
10916 (dump_gimple_omp_task): Likewise.
10917 (dump_gimple_omp_atomic_load): Likewise.
10918 (dump_gimple_omp_atomic_store): Likewise.
10919 (dump_gimple_mem_ops): Likewise.
10920 (pp_gimple_stmt_1): Likewise.
10921 (pp_cfg_jump): Likewise.
10922 (dump_implicit_edges): Likewise.
10923 (gimple_dump_bb_for_graph): Likewise.
10924 * graph.c (draw_cfg_node): Likewise.
10925 * langhooks.c (lhd_print_error_function): Likewise.
10926 * sched-vis.c (print_exp): Likewise.
10927 (print_value): Likewise.
10928 (print_pattern): Likewise.
10929 (print_insn): Likewise.
10930 (rtl_dump_bb_for_graph): Likewise.
10931 * tree-pretty-print.c (dump_function_declaration): Likewise.
10932 (dump_array_domain): Likewise.
10933 (dump_omp_clause): Likewise.
10934 (dump_location): Likewise.
10935 (dump_generic_node): Likewise.
10936 (print_struct_decl): Likewise.
10937 * diagnostic.c (diagnostic_show_locus): Use pp_space.
10938
bb0d2039
BS
109392013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10940
10941 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
10942 candidate table when replacing a candidate statement.
10943 (replace_rhs_if_not_dup): Likewise.
10944 (replace_one_candidate): Likewise.
10945
bc0ec027 109462013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 10947 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
10948
10949 * cgraphunit.c (add_new_function): Fix logic when adding from
10950 late IPA pass.
10951 (assemble_thunk): Rename to ...
03b0ee0a
UB
10952 (expand_thunk); .. this one; export; get it working with
10953 general functions; make produced gimple valid.
bc0ec027
JH
10954 * cgraph.h (expand_thunk): Declare.
10955
0e8853ee
JH
109562013-08-02 Jan Hubicka <jh@suse.cz>
10957
03b0ee0a
UB
10958 * ipa-cp.c (gather_context_independent_values): Use
10959 ipa_get_param_move_cost.
10960 (get_replacement_map): Remove PARAM; move parameter folding
10961 into tree-inline.c
0e8853ee
JH
10962 (create_specialized_node): Update.
10963 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
10964 assert that we have gimple body; update move_cost.
10965 (count_formal_params): Assert that we have gimple body.
10966 (ipa_dump_param): New function.
10967 (ipa_alloc_node_params): Break out from ...
10968 (ipa_initialize_node_params): ... here.
10969 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
10970 (ipa_write_node_info): Stream move costs.
10971 (ipa_read_node_info): Read move costs.
10972 (ipa_update_after_lto_read): Do not recompute node params.
10973 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
10974 (ipa_get_param): Check we are not in WPA.
10975 (ipa_get_param_move_cost): New.
10976 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
10977 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
10978 parm numbers to be present.
10979
ecee672b
VM
109802013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10981
10982 PR rtl-optimization/58048
10983 * lra-constraints.c (process_alt_operands): Don't check asm
10984 operand on register.
10985
13ec0527
EB
109862013-08-02 Eric Botcazou <ebotcazou@adacore.com>
10987
10988 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
10989 the implied StoreLoad barrier for atomic operations if before.
10990
af15184a
JH
109912013-08-02 Jan Hubicka <jh@suse.cz>
10992 Martin Liska <marxin.liska@gmail.com>
10993
03b0ee0a
UB
10994 * cgraph.c (cgraph_function_body_availability): Do not check
10995 cgraph flags.
af15184a
JH
10996 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
10997 symtab_node_availability): Declare.
10998 * ipa.c (can_replace_by_local_alias): New.
10999 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11000 * symtab.c (symtab_for_node_and_aliases,
11001 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11002
01e54ef8
VM
110032013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11004
11005 PR rtl-optimization/57963
03b0ee0a 11006 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11007 (lra_constraints): Use them.
11008
e2fd7ca7
SN
110092013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11010
03b0ee0a
UB
11011 * config/arm/types.md (define_attr "type"): Add "load_acq"
11012 and "store_rel".
e2fd7ca7
SN
11013 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11014 changes.
11015 (cortex_a53_store1): Likewise.
11016
0dcc26c3
JH
110172013-08-01 Jan Hubicka <jh@suse.cz>
11018
03b0ee0a
UB
11019 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11020 partitions are not needed.
0dcc26c3 11021
0bd72901
UB
110222013-08-01 Uros Bizjak <ubizjak@gmail.com>
11023
11024 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11025 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11026 MAYBE_NON_Q_CLASS_P where appropriate.
11027
12123452
JH
110282013-08-01 Jan Hubicka <jh@suse.cz>
11029
11030 * cgraph.h (release_function_body): Declare.
11031 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11032 of unused delcarations.
11033
ce852f9c
KT
110342013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11035
03b0ee0a
UB
11036 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11037 RTL form when subtracting a constant.
ce852f9c 11038
c743b246
KT
110392013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11040
11041 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11042 Generate canonical plus rtx with negated immediate instead of minus
11043 where appropriate.
11044 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11045
c0c123ef
JH
110462013-08-01 Jan Hubicka <jh@suse.cz>
11047
11048 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11049 (cgraph_release_function_body): Likewise.
11050 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11051 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11052 to used_as_abstract_origin.
11053 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11054 symbols used as abstract origins.
11055 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11056 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11057 used_as_abstract_origin.
c0c123ef 11058 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11059 used_as_abstract_origin; be ready for DECL_RESULT and
11060 DECL_ARGUMENTS to be NULL.
c0c123ef 11061
0bd72901
UB
11062 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11063 for abstract functions.
11064 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11065 real symbols.
c0c123ef 11066
1f029433
JH
110672013-08-01 Jan Hubicka <jh@suse.cz>
11068
11069 * profile.c (compute_value_histograms): Fix thinko.
11070
c451f4d6
SN
110712013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11072
11073 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11074 aarch-common-protos.h to extra_headers.
11075 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11076 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11077 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11078
34b512f5
SN
110792013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11080
11081 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11082 Include "../arm/types.md". Define "type" attribute for all patterns.
11083 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11084 attribute changes.
11085
d86e633a
MM
110862013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11087
11088 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11089 to support power8 load fusion.
11090 (fusion_gpr_mem_load): Likewise.
11091
11092 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11093
11094 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11095 declarations for power8 load fusion.
11096 (emit_fusion_gpr_load): Likewise.
11097
11098 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11099 tuning for power8, turn on fusion mode by default. Turn on sign
11100 extending fusion mode if normal fusion mode is on, and we are at
11101 -O2 or -O3.
11102 (fusion_gpr_load_p): New function, return true if we can fuse an
11103 addis instruction with a dependent load to a GPR.
11104 (emit_fusion_gpr_load): Emit the instructions for power8 load
11105 fusion to GPRs.
11106
0bd72901 11107 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11108 (VSX load fusion peepholes): New peepholes to fuse together an
11109 addi instruction with a VSX load instruction.
11110
11111 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11112 peepholes to fuse an addis instruction with a load to a GPR base
11113 register. If we are supporting sign extending fusions, convert
11114 sign extending loads to zero extending loads and add an explicit
11115 sign extension.
11116
c3f35647
SN
111172013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11118
11119 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11120 aarch-common-protos.h to extra_headers.
11121 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11122 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11123 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11124 (arm_no_early_alu_shift_dep): Likewise.
11125 (arm_no_early_alu_shift_value_dep): Likewise.
11126 (arm_no_early_mul_dep): Likewise.
11127 (arm_no_early_store_addr_dep): Likewise.
11128 (arm_mac_accumulator_is_mul_result): Likewise.
11129 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11130 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11131 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11132 here to ...
c3f35647 11133 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11134 (arm_no_early_alu_shift_dep): Likewise.
11135 (arm_no_early_alu_shift_value_dep): Likewise.
11136 (arm_no_early_mul_dep): Likewise.
11137 (arm_no_early_store_addr_dep): Likewise.
11138 (arm_mac_accumulator_is_mul_result): Likewise.
11139 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11140 * config/arm/aarch-common-protos.h: ... here. New file.
11141 * config/arm/t-arm (aarch-common.o): Define.
11142
111432013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11144
11145 * config/arm/arm.md: Include new file "types.md".
11146 (define_attr "type"): Move from here to ...
11147 (define_attr "mul32"): Likewise.
11148 (define_attr "mul64"): Likewise.
11149 * config/arm/types.md: ... here. New file.
11150
228c1313
SH
111512013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11152
11153 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11154 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11155
d6e9046d 111562013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11157
11158 * gen-pass-instances.awk: Fix offset of substr().
11159
a167b052
DM
111602013-07-31 David Malcolm <dmalcolm@redhat.com>
11161
11162 * Makefile.in (pass-instances.def): New.
11163 (passes.o): Replace dependency on passes.def with one on
11164 pass-instances.def
11165
11166 * gen-pass-instances.awk: New.
11167
11168 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11169 rather than passes.def, updating local definition of NEXT_PASS
11170 macro to add an extra NUM parameter (currently unused).
11171
315f8c0e
DM
111722013-07-30 David Malcolm <dmalcolm@redhat.com>
11173
11174 * Makefile.in (PASS_MANAGER_H): New.
11175 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11176 (passes.o): Likewise.
11177 (statistics.o): Likewise.
11178 (cgraphunit.o): Likewise.
11179 (context.o): Depend on PASS_MANAGER_H.
11180
11181 * pass_manager.h: New.
11182
11183 * cgraphunit.c (cgraph_add_new_function): Update for moves
11184 of globals to fields of pass_manager.
11185 (analyze_function): Likewise.
11186 (expand_function): Likewise.
11187 (ipa_passes): Likewise.
11188 (compile): Likewise.
11189
11190 * context.c (context::context): New.
11191 * context.h (context::context): New.
11192 (context::get_passes): New.
11193 (context::passes_): New.
11194
11195 * lto-cgraph.c (input_node): Update for moves of globals to
11196 fields of pass_manager.
11197
11198 * passes.c (all_passes): Remove, in favor of a field of the
11199 same name within the new class pass_manager.
11200 (all_small_ipa_passes): Likewise.
11201 (all_lowering_passes): Likewise.
11202 (all_regular_ipa_passes): Likewise.
11203 (all_late_ipa_passes): Likewise.
11204 (all_lto_gen_passes): Likewise.
11205 (passes_by_id): Likewise.
11206 (passes_by_id_size): Likewise.
11207 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11208 the new class pass_manager.
11209 (set_pass_for_id): Convert to...
11210 (pass_manager::set_pass_for_id): ...method.
11211 (get_pass_for_id): Convert to...
11212 (pass_manager::get_pass_for_id): ...method.
11213 (register_one_dump_file): Move body of implementation into...
11214 (pass_manager::register_one_dump_file): ...here.
11215 (register_dump_files_1): Convert to...
11216 (pass_manager::register_dump_files_1): ...method.
11217 (register_dump_files): Convert to...
11218 (pass_manager::register_dump_files): ...method.
11219 (create_pass_tab): Update for moves of globals to fields of
11220 pass_manager.
11221 (dump_passes): Move body of implementation into...
11222 (pass_manager::dump_passes): ...here.
11223 (register_pass): Move body of implementation into...
11224 (pass_manager::register_pass): ...here.
11225 (init_optimization_passes): Convert into...
11226 (pass_manager::pass_manager): ...constructor for new
11227 pass_manager class, and initialize the pass_lists array.
11228 (check_profile_consistency): Update for moves of globals to
11229 fields of pass_manager.
11230 (dump_profile_report): Move body of implementation into...
11231 (pass_manager::dump_profile_report): ...here.
11232 (ipa_write_summaries_1): Update for moves of pass lists from
11233 being globals to fields of pass_manager.
11234 (ipa_write_optimization_summaries): Likewise.
11235 (ipa_read_summaries): Likewise.
11236 (ipa_read_optimization_summaries): Likewise.
11237 (execute_all_ipa_stmt_fixups): Likewise.
11238
11239 * statistics.c (statistics_fini): Update for moves of globals to
11240 fields of pass_manager.
11241
11242 * toplev.c (general_init): Replace call to
11243 init_optimization_passes with construction of the pass_manager
11244 instance.
11245
11246 * tree-pass.h (all_passes): Remove, in favor of a field of the
11247 same name within the new class pass_manager.
11248 (all_small_ipa_passes): Likewise.
11249 (all_lowering_passes): Likewise.
11250 (all_regular_ipa_passes): Likewise.
11251 (all_lto_gen_passes): Likewise.
11252 (all_late_ipa_passes): Likewise.
11253 (passes_by_id): Likewise.
11254 (passes_by_id_size): Likewise.
11255 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11256 the new class pass_manager.
11257 (get_pass_for_id): Remove.
11258
02cab1c1
RE
112592013-07-30 Richard Earnshaw <rearnsha@arm.com>
11260
11261 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11262 configs.
11263
b2d3f886
RE
112642013-07-30 Richard Earnshaw <rearnsha@arm.com>
11265
11266 * arm.md (mulhi3): New expand pattern.
11267
605e86fa
JH
112682013-07-30 Jan Hubicka <jh@suse.cz>
11269 Martin Liska <marxin.liska@gmail.com>
11270
11271 * profile.c (compute_value_histograms): Do not ICE when
11272 there is mismatch only on some counters.
11273
14a87636
ZC
112742013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11275
11276 PR rtl-optimization/57637
11277 * function.c (move_insn_for_shrink_wrap): Also check the
11278 GEN set of the LIVE problem for the liveness analysis
11279 if it exists, otherwise give up.
11280
0100cd3f
BS
112812013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11282
11283 PR tree-optimization/57993
11284 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11285 replaced statement in the candidate table.
11286 (phi_add_costs): Return infinite cost when the hidden basis does
11287 not dominate all phis on which the candidate is dependent.
11288 (replace_one_candidate): Record replaced statement in the
11289 candidate table.
11290
f0d811f7
JR
112912013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11292
11293 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11294 (ashlv2si3): New expander.
11295 (*ashlv2si3_i): New define_insn_and_split.
11296 * predicates.md (float_operation): Allow patterns with three
11297 basic sub-patterns.
11298
bba33211
JR
11299 PR rtl-optimization/58021
11300 * mode-switching.c (create_pre_exit): Always split off preceding
11301 insns if we are not at the basic block head.
11302
ff3f3951
MR
113032013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11304
11305 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11306 (UCLIBC_DYNAMIC_LINKER): New macro.
11307 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11308 `-mnan=2008'.
11309 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11310 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11311 `-mnan=2008'.
11312 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11313 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11314 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11315 for SF and DF modes. Use ieee_quad_format for TF mode.
11316 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11317 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11318 (mips_option_override): Handle `-mnan=legacy'.
11319 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11320 `-mabs=2008' and `-mnan=2008'.
11321 (OPTION_DEFAULT_SPECS): Add "nan" default.
11322 (ASM_SPEC): Handle `-mnan='.
11323 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11324 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11325 comment accordingly.
11326 (neg<mode>2): Likewise.
11327 * config/mips/mips.opt (mabs, mnan): New options.
11328 * doc/install.texi (Configuration): Document `--with-nan=' option.
11329 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11330 `-mnan=' options.
11331 (MIPS Options): Document them.
11332 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11333 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11334 * configure: Regenerate.
11335 * config.in: Regenerate.
11336
576e2f37
UB
113372013-07-29 Uros Bizjak <ubizjak@gmail.com>
11338
11339 * config/i386/i386.md (float post-reload splitters): Do not check
11340 for subregs of SSE registers.
11341
113422013-07-29 Uros Bizjak <ubizjak@gmail.com>
11343 H.J. Lu <hongjiu.lu@intel.com>
11344
11345 PR target/57954
11346 PR target/57988
11347 * config/i386/i386.md (post-reload splitter
11348 to avoid partial SSE reg dependency stalls): New pattern.
11349
a71f0749
DV
113502013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11351
11352 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11353
4c97f1cc
JR
113542013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11355
11356 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11357 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11358
b0c733d8
CC
113592013-07-26 Cary Coutant <ccoutant@google.com>
11360
11361 * dwarf2out.c (die_checksum_ordered): Don't include template
11362 instantiations in signature.
11363 (is_template_parameter): New function.
11364 (is_template_instantiation): New function.
11365 (generate_skeleton_bottom_up): Don't include template instantiations
11366 in type unit DIE.
11367 (generate_skeleton): Likewise.
11368 (break_out_comdat_types): Move recursive call to break out nested
11369 types earlier.
11370 (prune_unused_types_mark_generic_parms_dies): Call
11371 is_template_parameter.
11372
040d8a1c
IB
113732013-07-26 Ian Bolton <ian.bolton@arm.com>
11374
11375 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11376 uses vector registers.
89fdc743 11377 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11378
85bd4ac6 113792013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11380 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11381
11382 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11383 where appropriate.
85bd4ac6
KT
11384 * config/arm/arm.md (movcond_addsi): New splitter.
11385
b6051207
SA
113862013-07-25 Sterling Augustine <saugustine@google.com>
11387
11388 * dwarf2out.c (size_of_pubnames): Move code to...
11389 (include_pubname_in_output): ...here. New.
11390 (want_pubnames): Rearrange.
11391 (output_pubnames): Call include_pubname_in_output. Move assertion.
11392
41a7c215
CM
113932013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11394
11395 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11396
113972013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11398
11399 PR target/38836
11400 * doc/extend.texi: Remove obsolete builtins. Fix
11401 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11402
49bde175
JH
114032013-07-25 Jan Hubicka <jh@suse.cz>
11404
11405 * cgraph.c (release_function_body): Break out from ...
11406 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11407 and DECL_ARGUMENTS.
11408 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11409 old_tree in the map.
11410 (create_specialized_node): Update.
11411 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11412 into index.
41a7c215
CM
11413 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11414 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11415 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11416 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11417 DECL_RESULT.
11418
4870352d
KT
114192013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11420
11421 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11422 addsi3_carryin_alt2_<optab>): Correct output template.
11423
1d6aee1c
KT
114242013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11425
11426 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11427 Adjust for arm_restrict_it.
11428 Remove trailing whitespace.
11429
c7cafd75
MK
114302013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11431
017d38f5
MK
11432 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11433 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11434
c7cafd75
MK
11435 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11436
00b7527b
VM
114372013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11438
11439 PR rtl-optimization/57960
11440 * lra-constraints.c (process_alt_operands): Use the right mode
11441 when checking strict_low.
11442
4f63dfc6
JH
114432013-07-25 Jan Hubicka <jh@suse.cz>
11444
11445 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11446 * cgraph.c (cgraph_remove_node): Do not release function body
11447 when in cgraph streaming.
11448 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11449 in other partitions are not considered reachable; fix handling of
11450 clones.
4f63dfc6 11451
e6dcfa18
RR
114522013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11453
11454 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11455
0b93d3b6
RR
114562013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11457
11458 PR target/19599
11459 PR target/57731
bb80c2eb 11460 PR target/57837
e6dcfa18 11461 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11462 Ss with US. Adjust output for v5 and v4t.
41a7c215 11463 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11464
0b93d3b6
RR
11465 * config/arm/constraints.md ("Ss"): Rename to US.
11466
690688b3
TG
114672013-07-25 Terry Guo <terry.guo@arm.com>
11468
11469 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11470 shift_add/shift_sub0/shift_sub1 RTXs.
11471
a4ad093b 114722013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11473 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11474
11475 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11476 (altivec_vpks<VI_char>ss): Likewise.
11477 (altivec_vpks<VI_char>us): Likewise.
11478 (altivec_vpku<VI_char>us): Likewise.
11479 (altivec_vpku<VI_char>um): Likewise.
11480
8c5005ce
DM
114812013-07-24 David Malcolm <dmalcolm@redhat.com>
11482
11483 Introduce context class.
11484
11485 * Makefile.in (CONTEXT_H): New.
11486 (OBJS): Add context.o.
11487 (toplev.o): Add CONTEXT_H to dependencies.
11488 (context.o): New.
11489
41a7c215 11490 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11491
11492 * context.c: New.
11493
11494 * context.h: New.
11495
ce4a9422
JR
114962013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11497
11498 PR rtl-optimization/57968
11499 * mode-switching.c (create_pre_exit): Allow instructions that
11500 don't set a return register to need a non-exit mode.
11501
493f4c9e 115022013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11503 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11504
b5860fd3
WS
11505 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11506 operands to vperm for little endian.
11507 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11508 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11509
73792b92 115102013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11511 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11512
11513 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11514 two operands for little-endian.
11515
14c21302
SE
115162013-07-23 Steve Ellcey <sellcey@mips.com>
11517
11518 * config/mips/mips.c (mips_case_values_threshold): New.
11519 (TARGET_CASE_VALUES_THRESHOLD): Define.
11520
a6056198 115212013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11522 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11523
11524 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11525 selection of field for vector splat in little endian mode.
11526
dd7a40e1
MM
115272013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11528
11529 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11530 expanders to rs6000.md.
11531 (ior<mode>3): Likewise.
11532 (and<mode>3): Likewise.
11533 (one_cmpl<mode>2): Likewise.
11534 (nor<mode>3): Likewise.
11535 (andc<mode>3): Likewise.
11536 (eqv<mode>3): Likewise.
11537 (nand<mode>3): Likewise.
11538 (orc<mode>3): Likewise.
11539
11540 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11541 declaration.
11542
11543 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11544 to split multi-word logical operations.
11545 (rs6000_split_logical_di): Likewise.
11546 (rs6000_split_logical): Likewise.
11547
11548 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11549 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11550 and allow TImode operations in 32-bit.
11551 (vsx_and<mode>3_64bit): Likewise.
11552 (vsx_ior<mode>3_32bit): Likewise.
11553 (vsx_ior<mode>3_64bit): Likewise.
11554 (vsx_xor<mode>3_32bit): Likewise.
11555 (vsx_xor<mode>3_64bit): Likewise.
11556 (vsx_one_cmpl<mode>2_32bit): Likewise.
11557 (vsx_one_cmpl<mode>2_64bit): Likewise.
11558 (vsx_nor<mode>3_32bit): Likewise.
11559 (vsx_nor<mode>3_64bit): Likewise.
11560 (vsx_andc<mode>3_32bit): Likewise.
11561 (vsx_andc<mode>3_64bit): Likewise.
11562 (vsx_eqv<mode>3_32bit): Likewise.
11563 (vsx_eqv<mode>3_64bit): Likewise.
11564 (vsx_nand<mode>3_32bit): Likewise.
11565 (vsx_nand<mode>3_64bit): Likewise.
11566 (vsx_orc<mode>3_32bit): Likewise.
11567 (vsx_orc<mode>3_64bit): Likewise.
11568
11569 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11570 logical types in GPRs.
11571
11572 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11573 logical insns to rs6000.md, and allow TImode operations in
11574 32-bit.
11575 (altivec_ior<mode>3): Likewise.
11576 (altivec_xor<mode>3): Likewise.
11577 (altivec_one_cmpl<mode>2): Likewise.
11578 (altivec_nor<mode>3): Likewise.
11579 (altivec_andc<mode>3): Likewise.
11580
11581 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11582 attributes for moving the 128-bit logical operations into
11583 rs6000.md.
11584 (BOOL_REGS_OUTPUT): Likewise.
11585 (BOOL_REGS_OP1): Likewise.
11586 (BOOL_REGS_OP2): Likewise.
11587 (BOOL_REGS_UNARY): Likewise.
11588 (BOOL_REGS_AND_CR0): Likewise.
11589 (one_cmpl<mode>2): Add support for DI logical operations on
11590 32-bit, splitting the operations to 32-bit.
11591 (anddi3): Likewise.
11592 (iordi3): Likewise.
11593 (xordi3): Likewise.
11594 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11595 changes to combine the 32/64-bit code, allow logical operations on
11596 TI mode in 32-bit, and to use similar match_operator patterns like
11597 scalar mode uses. Combine the Altivec and VSX code for logical
11598 operations, and move it here.
11599 (ior<mode>3, 128-bit types): Likewise.
11600 (xor<mode>3, 128-bit types): Likewise.
11601 (one_cmpl<mode>3, 128-bit types): Likewise.
11602 (nor<mode>3, 128-bit types): Likewise.
11603 (andc<mode>3, 128-bit types): Likewise.
11604 (eqv<mode>3, 128-bit types): Likewise.
11605 (nand<mode>3, 128-bit types): Likewise.
11606 (orc<mode>3, 128-bit types): Likewise.
11607 (and<mode>3_internal): Likewise.
11608 (bool<mode>3_internal): Likewise.
11609 (boolc<mode>3_internal1): Likewise.
11610 (boolc<mode>3_internal2): Likewise.
11611 (boolcc<mode>3_internal1): Likewise.
11612 (boolcc<mode>3_internal2): Likewise.
11613 (eqv<mode>3_internal1): Likewise.
11614 (eqv<mode>3_internal2): Likewise.
11615 (one_cmpl1<mode>3_internal): Likewise.
11616
12211b99 116172013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11618
11619 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11620 Rename flag_stack_usage to flag_stack_usage_info.
11621
12211b99 116222013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11623
a5f257fd
ME
11624 * config/microblaze/sync.md: New file.
11625 * config/microblaze/microblaze.md: Include sync.md
11626 * config/microblaze/microblaze.c: Add print_operand 'y'.
11627 * config/microblaze/constraints.md: Add memory_contraint
11628 'Q' which is a single register.
450b0ebb 11629
49fba14f
EB
116302013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11631
11632 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11633
c7b3b99f
PCC
116342013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11635
11636 * reload.c (find_reloads): Exit loop once we find this operand
11637 cannot be reloaded somehow for this alternative.
11638
11639 * reload.c (find_reloads): Exit loop once we find a hard register.
11640
11641 * rtlanal.c (computed_jump_p): Exit loop once we find label
11642 reference is used.
11643
11644 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11645
11646 * cfgloopmanip.c (remove_path): Exit loop after setting
11647 irred_invalidated.
11648
11649 * gensupport.c (subst_dup): Avoid loop if code is not
11650 MATCH_DUP nor MATCH_OP_DUP.
11651
c8fbf1fa
NBJ
116522013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11653
11654 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11655
9259db42
YZ
116562013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11657
11658 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11659 true for SP_REGNUM if mode == ptr_mode.
11660 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11661 with value R0_REGNUM + 31.
11662
00edcfbe
YZ
116632013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11664
11665 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11666 pad pointer-typed argument downward.
11667
43be9a95
YZ
116682013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11669
11670 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11671 and __ILP32__ when the ILP32 model is in use.
11672
28514dda
YZ
116732013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11674
11675 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11676 (aarch64_load_symref_appropriately): In the case of
11677 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11678 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11679 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11680 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11681 if 'mode' doesn't equal to 'ptr_mode'.
11682 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11683 'vcall_offset'; change to call aarch64_emit_move differently depending
11684 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11685 to calculate the upper bound of 'vcall_offset'.
11686 (aarch64_cannot_force_const_mem): Change to also return true if
11687 mode != ptr_mode.
11688 (aarch64_legitimize_reload_address): In the case of large
11689 displacements, add new local variable 'xmode' and an assertion
11690 based on it; change to use 'xmode' to generate the new rtx and
11691 reload.
11692 (aarch64_asm_trampoline_template): Change to generate the template
11693 differently depending on TARGET_ILP32 or not; change to use
11694 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11695 (aarch64_trampoline_size): Removed.
11696 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11697 and replace immediate literals with it. Change to use 'ptr_mode'
11698 instead of 'DImode' and call convert_memory_address if the mode
11699 of 'fnaddr' doesn't equal to 'ptr_mode'.
11700 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11701 to output symbol.
11702 (aarch64_elf_asm_destructor): Likewise.
11703 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11704 on TARGET_ILP32 instead of aarch64_trampoline_size.
11705 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11706 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11707 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11708 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11709 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11710 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11711 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11712 depending on the value of 'mode'.
11713 (add_losym_<mode>): New.
11714 (ldr_got_small_<mode>): New, based on ldr_got_small.
11715 (ldr_got_small): Remove.
11716 (ldr_got_small_sidi): New.
11717 * config/aarch64/iterators.md (P): New.
11718 (PTR): Change to 'ptr_mode' in the condition.
11719
17a819cb
YZ
117202013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11721
11722 * config.gcc (aarch64*-*-*): Support --with-abi.
11723 (aarch64*-*-elf): Support --with-multilib-list.
11724 (aarch64*-*-linux*): Likewise.
11725 (supported_defaults): Add abi to aarch64*-*-*.
11726 * configure.ac: Mention AArch64 for --with-multilib-list.
11727 * configure: Re-generated.
11728 * config/aarch64/biarchilp32.h: New file.
11729 * config/aarch64/biarchlp64.h: New file.
11730 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11731 (ABI_SPEC): Ditto.
11732 (MULTILIB_DEFAULTS): Ditto.
11733 (DRIVER_SELF_SPECS): Ditto.
11734 (ASM_SPEC): Update to also substitute -mabi.
11735 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11736 file whose name depends on -mabi= and -mbig-endian.
11737 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11738 TARGET_ILP32.
11739 (POINTER_SIZE): New define.
11740 (POINTERS_EXTEND_UNSIGNED): Ditto.
11741 (enum aarch64_abi_type): New enumeration tag.
11742 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11743 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11744 (TARGET_ILP32): New define.
11745 * config/aarch64/aarch64.opt (mabi): New.
11746 (aarch64_abi): New.
11747 (ilp32, lp64): New values for -mabi.
11748 * config/aarch64/t-aarch64 (comma): New define.
11749 (MULTILIB_OPTIONS): Ditto.
11750 (MULTILIB_DIRNAMES): Ditto.
11751 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11752 * doc/invoke.texi: Document -mabi for AArch64.
11753
9f9cbdce
GJL
117542013-07-23 Georg-Johann Lay <avr@gjlay.de>
11755
11756 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11757
7061977b 117582013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11759 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
11760
11761 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
11762 endianness when selecting field to splat.
11763
75a41878
EC
117642013-07-22 Eric Christopher <echristo@gmail.com>
11765
11766 * dwarf2out.c (die_odr_checksum): New function to use
11767 CHECKSUM_ macros and ULEB128 for DIE tag.
11768 (generate_type_signature): Use.
41a7c215 11769
38ae58ca
EB
117702013-07-22 Eric Botcazou <ebotcazou@adacore.com>
11771
11772 * config.gcc (sparc*-*-*): Accept leon3 processor.
11773 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
11774 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
11775 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
11776 * config/sparc/sparc.opt (enum processor_type): Add leon3.
11777 (mfix-ut699): Adjust comment.
11778 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
11779 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
11780 (CPP_CPU_SPEC): Likewise.
11781 (ASM_CPU_SPEC): Likewise.
11782 * config/sparc/sparc.c (leon3_cost): New constant.
11783 (sparc_option_override): Add leon3 support.
11784 (mem_ref): New function.
11785 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
11786 (sparc_do_work_around_errata): Look into the instruction in the delay
11787 slot and adjust accordingly. Add fix for the data cache nullify issues
11788 of the UT699. Change insertion position for the NOP.
11789 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
11790 (leon3_load): New reservation.
11791 (leon_store): Bump latency to 2.
11792 (grfpu): New automaton.
11793 (grfpu_alu): New unit.
11794 (grfpu_ds): Likewise.
11795 (leon_fp_alu): Adjust.
11796 (leon_fp_mult): Delete.
11797 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
11798 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
11799 * config/sparc/sparc.md (cpu): Add leon3.
11800 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
11801 (swapsi): Likewise.
11802 (atomic_test_and_set): Likewise.
11803 (ldstub): Likewise.
11804
04dfc6df
JU
118052013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
11806
11807 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
11808 default for R5900 targets.
11809 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
11810 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
11811 * config/mips/mips.c (mips_option_override): Report an error for
11812 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
11813 for -march=r5900 -mhard-float.
11814
c7b3b99f 118152013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
11816
11817 * df-problems.c (can_move_insns_across): Exit loop once we
11818 find a non-fixed, non-global register.
11819
11820 * ipa-pure-const.c (propagate_nothrow): Exit loop after
11821 setting can_throw.
11822
11823 * omega.c (omega_eliminate_red): Break after setting red_found.
11824 (omega_problem_has_red_equations): Similarly after setting found.
11825 (omega_query_variable): Similarly after setting coupled.
11826
9b6e6981
MP
118272013-07-22 Marek Polacek <polacek@redhat.com>
11828
11829 * gimplify.c: Don't include gimple.h twice.
11830
5e5f7673
KT
118312013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11832
11833 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
11834 instead of TARGET_THUMB1.
11835 (Pz): New constraint.
11836 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
11837 encodings.
11838 (compare_negsi_si): Likewise.
11839 (compare_addsi2_op0): Likewise.
11840 (compare_addsi2_op1): Likewise.
11841 (addsi3_carryin_<optab>): Likewise.
11842 (addsi3_carryin_alt2_<optab>): Likewise.
11843 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
11844 for arm_restrict_it.
11845 (subsi3_carryin): Likewise.
11846 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
11847 (minmax_arithsi): Disable for arm_restrict_it.
11848 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
11849 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
11850 (satsi_<SAT:code>_shift): Likewise.
11851 (arm_shiftsi3): Add alternative for 16-bit encoding.
11852 (arm32_movhf): Disable for arm_restrict_it.
11853 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
11854 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
11855
859abddd
SN
118562013-07-22 Sofiane Naci <sofiane.naci@arm.com>
11857
11858 * config/arm/arm.md (attribute "insn"): Delete.
11859 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
11860 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
11861 (not_shiftsi): Update for attribute change.
11862 (not_shiftsi_compare0): Likewise.
11863 (not_shiftsi_compare0_scratch): Likewise.
11864 (arm_one_cmplsi2): Likewise.
11865 (thumb1_one_cmplsi2): Likewise.
11866 (notsi_compare0): Likewise.
11867 (notsi_compare0_scratch): Likewise.
11868 (thumb1_movdi_insn): Likewise.
11869 (arm_movsi_insn): Likewise.
11870 (movhi_insn_arch4): Likewise.
11871 (movhi_bytes): Likewise.
11872 (arm_movqi_insn): Likewise.
11873 (thumb1_movqi_insn): Likewise.
11874 (arm32_movhf): Likewise.
11875 (thumb1_movhf): Likewise.
11876 (arm_movsf_soft_insn): Likewise.
11877 (thumb1_movsf_insn): Likewise.
11878 (thumb_movdf_insn): Likewise.
11879 (movsicc_insn): Likewise.
11880 (movsfcc_soft_insn): Likewise.
11881 (and_scc): Likewise.
11882 (cond_move): Likewise.
11883 (if_move_not): Likewise.
11884 (if_not_move): Likewise.
11885 (if_shift_move): Likewise.
11886 (if_move_shift): Likewise.
11887 (if_shift_shift): Likewise.
11888 (if_not_arith): Likewise.
11889 (if_arith_not): Likewise.
11890 (cond_move_not): Likewise.
11891 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
11892 (neon_mov<mode>): Likewise.
11893 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
11894 (thumb2_movsi_vfp): Likewise.
11895 (movsf_vfp): Likewise.
11896 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
11897 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11898 change.
859abddd
SN
11899 (cortexa7_older_only): Likewise.
11900 (cortexa7_younger): Likewise.
11901 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
11902 (1020alu_shift_op): Likewise.
11903 (1020alu_shift_reg_op): Likewise.
11904 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
11905 (alu_shift_op): Likewise.
11906 (alu_shift_reg_op): Likewise.
11907 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
11908 (11_alu_shift_op): Likewise.
11909 (11_alu_shift_reg_op): Likewise.
11910 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
11911 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11912 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11913 change.
859abddd
SN
11914 (cortex_a15_alu_shift): Likewise.
11915 (cortex_a15_alu_shift_reg): Likewise.
11916 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
11917 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
11918 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
11919 change.
859abddd 11920 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
11921 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11922 change.
859abddd
SN
11923 (cortex_a7_alu_reg): Likewise.
11924 (cortex_a7_alu_shift): Likewise.
11925 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11926 (cortex_a8_alu_shift): Likewise.
11927 (cortex_a8_alu_shift_reg): Likewise.
11928 (cortex_a8_mov): Likewise.
11929 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
11930 (cortex_a9_dp_shift): Likewise.
11931 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
11932 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
11933 (cortex_r4_mov): Likewise.
11934 (cortex_r4_alu_shift): Likewise.
11935 (cortex_r4_alu_shift_reg): Likewise.
11936 * config/arm/fa526.md (526_alu_op): Update for attribute change.
11937 (526_alu_shift_op): Likewise.
11938 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
11939 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
11940 (626te_alu_shift_op): Likewise.
11941 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
11942 (726te_alu_op): Likewise.
11943 (726te_alu_shift_op): Likewise.
11944 (726te_alu_shift_reg_op): Likewise.
11945 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
11946 (mp626_alu_shift_op): Likewise.
11947 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
11948 (pj4_alu_e1_conds): Likewise.
11949 (pj4_alu): Likewise.
11950 (pj4_alu_conds): Likewise.
11951 (pj4_shift): Likewise.
11952 (pj4_shift_conds): Likewise.
11953 (pj4_alu_shift): Likewise.
11954 (pj4_alu_shift_conds): Likewise.
11955
95b97fac
KT
119562013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11957
11958 * config/arm/predicates.md (shiftable_operator_strict_it):
11959 New predicate.
11960 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
11961 Disable cond_exec version for arm_restrict_it.
11962 (thumb2_smaxsi3): Convert to generate cond_exec.
11963 (thumb2_sminsi3): Likewise.
11964 (thumb32_umaxsi3): Likewise.
11965 (thumb2_uminsi3): Likewise.
11966 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
11967 (thumb2_neg_abssi2): Likewise.
11968 (thumb2_mov_scc): Add alternative for 16-bit encoding.
11969 (thumb2_movsicc_insn): Adjust alternatives.
11970 (thumb2_mov_negscc): Disable for arm_restrict_it.
11971 (thumb2_mov_negscc_strict_it): New pattern.
11972 (thumb2_mov_notscc_strict_it): New pattern.
11973 (thumb2_mov_notscc): Disable for arm_restrict_it.
11974 (thumb2_ior_scc): Likewise.
11975 (thumb2_ior_scc_strict_it): New pattern.
11976 (thumb2_cond_move): Adjust for arm_restrict_it.
11977 (thumb2_cond_arith): Disable for arm_restrict_it.
11978 (thumb2_cond_arith_strict_it): New pattern.
11979 (thumb2_cond_sub): Adjust for arm_restrict_it.
11980 (thumb2_movcond): Likewise.
11981 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
11982 (thumb2_zero_extendhisi2_v6): Likewise.
11983 (thumb2_zero_extendqisi2_v6): Likewise.
11984 (orsi_notsi_si): Likewise.
11985 (orsi_not_shiftsi_si): Likewise.
11986
d5a6ef82
GJL
119872013-07-22 Georg-Johann Lay <avr@gjlay.de>
11988
11989 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
11990 instruction sequence is 1 byte shorter.
11991
d9e71154
UB
119922013-07-22 Uros Bizjak <ubizjak@gmail.com>
11993
11994 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
11995 it is not needed after split.
11996
8c6381ec
IS
119972013-07-20 Iain Sandoe <iain@codesourcery.com>
11998
11999 PR target/51784
12000 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12001 second label for nonlocal goto receivers. Don't output pic base labels
12002 unless we're producing PIC; mark that action unreachable().
12003 (ix86_save_reg): If the function contains a nonlocal label, save the
12004 PIC base reg.
12005 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12006 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12007 (update_pic_label_number_if_needed): New.
12008 (machopic_output_function_base_name): Adjust for nonlocal receiver
12009 case.
12010 (machopic_should_output_picbase_label): New.
12011 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12012 (nonlocal_goto_receiver): New insn and split.
12013
d05d0709
JG
120142013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12015
12016 * config/aarch64/aarch64-builtins.c
12017 (aarch64_fold_builtin): Fold abs in all modes.
12018 * config/aarch64/aarch64-simd-builtins.def
12019 (abs): Enable for all modes.
12020 * config/aarch64/arm_neon.h
12021 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12022 (vabs_f64): Add missing intrinsic.
12023
ba590e63
IB
120242013-07-19 Ian Bolton <ian.bolton@arm.com>
12025
12026 * config/aarch64/arm_neon.h (vabs_s64): New function
12027
02371798
GJL
120282013-07-19 Georg-Johann Lay <avr@gjlay.de>
12029
12030 PR target/57516
12031 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12032 * config/avr/avr.md (adjust_len): Add `round'.
12033 * config/avr/avr-protos.h (avr_out_round): New prototype.
12034 (avr_out_plus): Add `out_label' argument.
12035 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12036 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12037 Handle the case where `insn' is just a pattern.
12038 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12039 (avr_out_round): New function.
12040 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12041
12211b99 120422013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12043
12044 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12045 Add check for flag_stack_usage to handle -fstack-usage support
12046
12211b99 120472013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12048
12049 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12050 interaction for new Power8 flags and VSX.
12051
df9dda2d
ST
120522013-07-18 Sriraman Tallam <tmsriram@google.com>
12053
12054 PR middle-end/57698
12055 * tree-inline.c (expand_call_inline): Emit errors during
12056 early_inlining only if optimization is not turned on.
12057
0f9cdef4
DM
120582013-07-18 David Malcolm <dmalcolm@redhat.com>
12059
12060 * passes.def: New.
12061
12062 * passes.c (init_optimization_passes): Move the construction of
12063 the pass hierarchy into a new passes.def file.
12064
12065 * Makefile.in (passes.o): Add dependency on passes.def.
12066
2efa4087
DM
120672013-07-18 David Malcolm <dmalcolm@redhat.com>
12068
12069 * passes.c (init_optimization_passes): Introduce macros for
12070 constructing the tree of passes (INSERT_PASSES_AFTER,
12071 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12072 TERMINATE_PASS_LIST).
12073
bc404e1b
VM
120742013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12075 Wei Mi <wmi@google.com>
12076
12077 PR rtl-optimization/57878
12078 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12079 top.
12080 (reload_pseudo_compare_func): Check nregs first for reload
12081 pseudos.
12082
d675843f
DM
120832013-07-18 David Malcolm <dmalcolm@redhat.com>
12084
12085 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12086
c7b3b99f 120872013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12088
12089 * read-rtl.c (validate_const_int): Once an invalid character is
12090 seen, quit the loop.
12091
12092 * gengtype.c (write_roots): Similarly once we find the "deletable"
12093 or "if_marked" option.
12094
52fceb44
SN
120952013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12096
12097 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12098 "xtab" and "sat". Move value "clz" from here to ...
12099 (attriubte "type"): ... here.
12100 (satsi_<SAT:code>): Delete "insn" attribute.
12101 (satsi_<SAT:code>_shift): Likewise.
12102 (arm_zero_extendqisi2addsi): Likewise.
12103 (arm_extendqisi2addsi): Likewise.
12104 (clzsi2): Update for attribute changes.
12105 (rbitsi2): Likewise.
371e77e3
UB
12106 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12107 attribute.
52fceb44
SN
12108 (arm_usatsihi): Likewise.
12109 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12110
006bd006
SN
121112013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12112
12113 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12114 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12115 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12116 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12117 in alphabetical order.
12118 (attribute "core_cycles"): Update for attribute changes.
12119 (arm_addsi3): Likewise.
12120 (addsi3_compare0): Likewise.
12121 (addsi3_compare0_scratch): Likewise.
12122 (addsi3_compare_op1): Likewise.
12123 (addsi3_compare_op2): Likewise.
12124 (compare_addsi2_op0): Likewise.
12125 (compare_addsi2_op1): Likewise.
12126 (addsi3_carryin_shift_<optab>): Likewise.
12127 (subsi3_carryin_shift): Likewise.
12128 (rsbsi3_carryin_shift): Likewise.
12129 (arm_subsi3_insn): Likewise.
12130 (subsi3_compare0): Likewise.
12131 (subsi3_compare): Likewise.
12132 (arm_andsi3_insn): Likewise.
12133 (thumb1_andsi3_insn): Likewise.
12134 (andsi3_compare0): Likewise.
12135 (andsi3_compare0_scratch): Likewise.
12136 (zeroextractsi_compare0_scratch
12137 (andsi_not_shiftsi_si): Likewise.
12138 (iorsi3_insn): Likewise.
12139 (iorsi3_compare0): Likewise.
12140 (iorsi3_compare0_scratch): Likewise.
12141 (arm_xorsi3): Likewise.
12142 (thumb1_xorsi3_insn): Likewise.
12143 (xorsi3_compare0): Likewise.
12144 (xorsi3_compare0_scratch): Likewise.
12145 (satsi_<SAT:code>_shift): Likewise.
12146 (rrx): Likewise.
12147 (arm_shiftsi3): Likewise.
12148 (shiftsi3_compare0): Likewise.
12149 (not_shiftsi): Likewise.
12150 (not_shiftsi_compare0): Likewise.
12151 (not_shiftsi_compare0_scratch): Likewise.
12152 (arm_one_cmplsi2): Likewise.
12153 (thumb_one_complsi2): Likewise.
12154 (notsi_compare0): Likewise.
12155 (notsi_compare0_scratch): Likewise.
12156 (thumb1_zero_extendhisi2): Likewise.
12157 (arm_zero_extendhisi2): Likewise.
12158 (arm_zero_extendhisi2_v6): Likewise.
12159 (arm_zero_extendhisi2addsi): Likewise.
12160 (thumb1_zero_extendqisi2): Likewise.
12161 (thumb1_zero_extendqisi2_v6): Likewise.
12162 (arm_zero_extendqisi2): Likewise.
12163 (arm_zero_extendqisi2_v6): Likewise.
12164 (arm_zero_extendqisi2addsi): Likewise.
12165 (thumb1_extendhisi2): Likewise.
12166 (arm_extendhisi2): Likewise.
12167 (arm_extendhisi2_v6): Likewise.
12168 (arm_extendqisi): Likewise.
12169 (arm_extendqisi_v6): Likewise.
12170 (arm_extendqisi2addsi): Likewise.
12171 (thumb1_extendqisi2): Likewise.
12172 (thumb1_movdi_insn): Likewise.
12173 (arm_movsi_insn): Likewise.
12174 (movsi_compare0): Likewise.
12175 (movhi_insn_arch4): Likewise.
12176 (movhi_bytes): Likewise.
12177 (arm_movqi_insn): Likewise.
12178 (thumb1_movqi_insn): Likewise.
12179 (arm32_movhf): Likewise.
12180 (thumb1_movhf): Likewise.
12181 (arm_movsf_soft_insn): Likewise.
12182 (thumb1_movsf_insn): Likewise.
12183 (movdf_soft_insn): Likewise.
12184 (thumb_movdf_insn): Likewise.
12185 (arm_cmpsi_insn): Likewise.
12186 (cmpsi_shiftsi): Likewise.
12187 (cmpsi_shiftsi_swp): Likewise.
12188 (arm_cmpsi_negshiftsi_si): Likewise.
12189 (movsicc_insn): Likewise.
12190 (movsfcc_soft_insn): Likewise.
12191 (arith_shiftsi): Likewise.
12192 (arith_shiftsi_compare0
12193 (arith_shiftsi_compare0_scratch
12194 (sub_shiftsi): Likewise.
12195 (sub_shiftsi_compare0
12196 (sub_shiftsi_compare0_scratch
12197 (and_scc): Likewise.
12198 (cond_move): Likewise.
12199 (if_plus_move): Likewise.
12200 (if_move_plus): Likewise.
12201 (if_move_not): Likewise.
12202 (if_not_move): Likewise.
12203 (if_shift_move): Likewise.
12204 (if_move_shift): Likewise.
12205 (if_shift_shift): Likewise.
12206 (if_not_arith): Likewise.
12207 (if_arith_not): Likewise.
12208 (cond_move_not): Likewise.
12209 (thumb1_ashlsi3): Set type attribute.
12210 (thumb1_ashrsi3): Likewise.
12211 (thumb1_lshrsi3): Likewise.
12212 (thumb1_rotrsi3): Likewise.
12213 (shiftsi3_compare0_scratch): Likewise.
12214 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12215 (neon_mov<mode>): Likewise.
371e77e3
UB
12216 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12217 attribute changes.
006bd006
SN
12218 (thumb2_movsi_insn): Likewise.
12219 (thumb2_cmpsi_neg_shiftsi): Likewise.
12220 (thumb2_extendqisi_v6): Likewise.
12221 (thumb2_zero_extendhisi2_v6): Likewise.
12222 (thumb2_zero_extendqisi2_v6): Likewise.
12223 (thumb2_shiftsi3_short): Likewise.
12224 (thumb2_addsi3_compare0_scratch): Likewise.
12225 (orsi_not_shiftsi_si): Likewise.
12226 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12227 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12228 changes.
12229 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12230 (1020alu_shift_op): Likewise.
12231 (1020alu_shift_reg_op): Likewise.
12232 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12233 (alu_shift_op): Likewise.
12234 (alu_shift_reg_op): Likewise.
12235 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12236 (11_alu_shift_op): Likewise.
12237 (11_alu_shift_reg_op): Likewise.
12238 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12239 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12240 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12241 changes.
006bd006
SN
12242 (cortex_a15_alu_shift): Likewise.
12243 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12244 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12245 changes.
006bd006
SN
12246 (cortex_a5_alu_shift): Likewise.
12247 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12248 changes.
12249 (cortex_a53_alu_shift): Likewise.
12250 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12251 changes.
12252 (cortex_a7_alu_reg): Likewise.
12253 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12254 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12255 changes.
006bd006
SN
12256 (cortex_a8_alu_shift): Likewise.
12257 (cortex_a8_alu_shift_reg): Likewise.
12258 (cortex_a8_mov): Likewise.
12259 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12260 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12261 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12262 changes.
12263 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12264 changes.
006bd006
SN
12265 (cortex_r4_mov): Likewise.
12266 (cortex_r4_alu_shift): Likewise.
12267 (cortex_r4_alu_shift_reg): Likewise.
12268 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12269 (526_alu_shift_op): Likewise.
12270 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12271 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12272 (626te_alu_shift_op): Likewise.
12273 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12274 (726te_alu_op): Likewise.
12275 (726te_alu_shift_op): Likewise.
12276 (726te_alu_shift_reg_op): Likewise.
12277 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12278 (mp626_alu_shift_op): Likewise.
12279 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12280 (pj4_alu_e1_conds): Likewise.
12281 (pj4_alu): Likewise.
12282 (pj4_alu_conds): Likewise.
12283 (pj4_shift): Likewise.
12284 (pj4_shift_conds): Likewise.
12285 (pj4_alu_shift): Likewise.
12286 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12287 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12288 changes.
006bd006
SN
12289 (cortexa7_older_only): Likewise.
12290 (cortexa7_younger): Likewise.
12291
651df1b2
DM
122922013-07-18 David Malcolm <dmalcolm@redhat.com>
12293
12294 * ipa-pure-const.c (generate_summary): Rename to...
12295 (pure_const_generate_summary): ... this.
12296
ea717bd7
IS
122972013-07-17 Iain Sandoe <iain@codesourcery.com>
12298
12299 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12300
a1259a13
YR
123012013-07-17 Yvan Roux <yvan.roux@linaro.org>
12302
12303 PR target/57909
12304 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12305 usage in HI mode.
12306
167f68ed
AK
123072013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12308
12309 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12310 enabled without -march=zEC12.
12311 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12312 flags to be set.
12313
f900a982
MR
123142013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12315
12316 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12317 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12318 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12319 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12320 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12321 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12322 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12323 ISA_HAS_FP4.
12324 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12325 and ISA_HAS_NMADD3_NMSUB3.
12326 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12327 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12328 (nmsub4<mode>, nmsub3<mode>): Likewise.
12329 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12330
d4ed27eb
MR
123312013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12332
12333 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12334 TARGET_MIPS5400 checking.
12335
7a5add18
PB
123362013-07-16 Jakub Jelinek <jakub@redhat.com>
12337 Peter Bergner <bergner@vnet.ibm.com>
12338
12339 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12340 registers in the comment.
12341 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12342 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12343 rather than FIRST_PSEUDO_REGISTERS.
12344
123452013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12346
12347 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12348 enable extra ISA flags with TARGET_HTM.
12349
d2ab0929
MR
123502013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12351
12352 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12353 Fix comment typos.
12354
839c74bc
CH
123552013-07-15 Cong Hou <congh@google.com>
12356
12357 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12358 in compare function for sorting.
12359
7a5add18 123602013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12361
12362 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12363 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12364 * config/rs6000/rs6000.opt: Add -mhtm option.
12365 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12366 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12367 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12368 __HTM__ if the HTM instructions are available.
12369 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12370 htm_spr_reg_operand): New define_predicates.
12371 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12372 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12373 Include htm.md.
12374 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12375 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12376 HTM builtin functions.
12377 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12378 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12379 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12380 (rs6000_builtin_mask_calculate): Likewise.
12381 (rs6000_option_override_internal): Likewise.
12382 (bdesc_htm): Add new HTM builtin support.
12383 (htm_spr_num): New function.
12384 (htm_spr_regno): Likewise.
12385 (rs6000_htm_spr_icode): Likewise.
12386 (htm_expand_builtin): Likewise.
12387 (htm_init_builtins): Likewise.
12388 (rs6000_expand_builtin): Add support for HTM builtin functions.
12389 (rs6000_init_builtins): Likewise.
371e77e3
UB
12390 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12391 option.
0258b6e4
PB
12392 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12393 (TARGET_HTM, MASK_HTM): Define macros.
12394 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12395 (FIXED_REGISTERS): Likewise.
12396 (CALL_USED_REGISTERS): Likewise.
12397 (CALL_REALLY_USED_REGISTERS): Likewise.
12398 (REG_ALLOC_ORDER): Likewise.
12399 (enum reg_class): Likewise.
12400 (REG_CLASS_NAMES): Likewise.
12401 (REG_CLASS_CONTENTS): Likewise.
12402 (REGISTER_NAMES): Likewise.
12403 (ADDITIONAL_REGISTER_NAMES): Likewise.
12404 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12405 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12406 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12407 * config/rs6000/htm.md: New file.
12408 * config/rs6000/htmintrin.h: New file.
12409 * config/rs6000/htmxlintrin.h: New file.
12410
87dd8ab0
MS
124112013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12412
12413 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12414 Define SYMBOL_TINY_GOT, update comment.
12415 * config/aarch64/aarch64.c
12416 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12417 (aarch64_expand_mov_immediate): Likewise.
12418 (aarch64_print_operand): Likewise.
12419 (aarch64_classify_symbol): Likewise.
12420 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12421 (ldr_got_tiny): Define.
12422
52d676b6
TG
124232013-07-13 Tobias Grosser <tobias@grosser.es>
12424
12425 PR tree-optimization/54094
12426 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12427 scheduling dimension for the parallelism check from the polyhedral
12428 information in the AST.
12429 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12430 in 2D + 1 form.
12431
286e8fc1
JM
124322013-07-13 Jason Merrill <jason@redhat.com>
12433
12434 * print-tree.c (debug_vec_tree): Use debug_raw.
12435 (debug_raw (vec<tree, va_gc> &)): New.
12436 (debug_raw (vec<tree, va_gc> *)): New.
12437 * tree.h: Declare them.
12438
e43257e8
BC
124392013-07-13 Bin Cheng <bin.cheng@arm.com>
12440
12441 * ifcvt.c (ifcvt_after_combine): New static variable.
12442 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12443 for size.
12444 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12445 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12446 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12447
da582d46
MR
124482013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12449
12450 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12451
18b0ea8f
MM
124522013-07-12 Michael Matz <matz@suse.de>
12453
12454 PR middle-end/55771
12455 * convert.c (convert_to_real): Reject non-float inner types.
12456
e4f0f84d
TB
124572013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12458
12459 * config/aarch64/aarch64-protos.h
12460 (aarch64_simd_immediate_valid_for_move): Remove.
12461 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12462 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12463 cases.
12464 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12465
76500022
SE
124662013-07-11 Steve Ellcey <sellcey@mips.com>
12467
12468 * config/mips/mips.c (mips_conditional_register_usage): Do not
12469 use t[0-7] registers in MIPS16 mode when optimizing for size.
12470
78039734
ST
124712013-07-11 Sriraman Tallam <tmsriram@google.com>
12472
12473 * config/i386/i386.c (dispatch_function_versions): Fix array
12474 indexing of function_version_info to match actual_versions.
12475
7b24b675
TJ
124762013-07-11 Teresa Johnson <tejohnson@google.com>
12477
12478 * vec.h (struct va_gc): Move release out-of-line.
12479 (va_gc::release): Call ggc_free on released vec.
12480
85d4cbb8
UW
124812013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12482
12483 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12484 Require GOT register as additional operand in UNSPEC.
12485 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12486 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12487 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12488 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12489 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12490 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12491 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12492
52b3f9e2
GJL
124932013-07-11 Georg-Johann Lay <avr@gjlay.de>
12494
12495 PR target/57631
12496 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12497 name seen by assembler/linker rather if available.
12498
3f3e266e
AS
124992013-07-11 Andreas Schwab <schwab@suse.de>
12500
12501 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12502
21231ca6
VM
125032013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12504
371e77e3 12505 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12506
d331d374
JM
125072013-07-10 Joseph Myers <joseph@codesourcery.com>
12508
673c2f63
JM
12509 * doc/tm.texi.in: Move hook documentation to ....
12510 * target.def: ... here.
12511
d331d374
JM
12512 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12513 text on @hook line.
12514 * doc/tm.texi: Regenerate.
12515
dfeadaa0
PC
125162013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12517
12518 PR c++/57869
12519 * doc/invoke.texi: Document -Wconditionally-supported.
12520
bb6f2bac
GJL
125212013-07-10 Georg-Johann Lay <avr@gjlay.de>
12522
12523 PR target/57844
12524 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12525 of my_fp.
12526
5219b232
GJL
125272013-07-10 Georg-Johann Lay <avr@gjlay.de>
12528
12529 PR target/57506
12530 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12531 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12532 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12533 Remove duplicate devices.
12534 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12535 * config/avr/t-multilib: Regenerate.
12536 * config/avr/avr-tables.opt: Regenerate.
12537 * doc/avr-mmcu.texi: Regenerate.
12538
283045c0
GJL
125392013-07-10 Georg-Johann Lay <avr@gjlay.de>
12540
12541 PR target/56987
12542 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12543
ceb2d59f 125442013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12545
ceb2d59f
GS
12546 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12547 the cost of MULT when optimizing for size.
12548
055e0a99
JBG
125492013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12550
12551 * config/cr16/cr16-protos.h: Don't include target.h.
12552
ef43e868
JM
125532013-07-09 Joseph Myers <joseph@codesourcery.com>
12554
12555 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12556 adjust register size for TDmode and TFmode for VSX registers.
12557
4a283fdf
KT
125582013-07-08 Kai Tietz <ktietz@redhat.com>
12559
12560 PR target/56892
12561 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12562 hook_bool_const_tree_true.
12563
2cf4c39e
AK
125642013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12565
12566 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12567 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12568 * config/s390/s390.md: Define FPR*_REGNUM constants.
12569 Fix FPR2_REGNUM constant (18 -> 17).
12570 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12571 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12572 ("trunc<BFP:mode><DFP_ALL:mode>2")
12573 ("trunc<DFP_ALL:mode><BFP:mode>2")
12574 ("*extend<BFP:mode><DFP_ALL:mode>2")
12575 ("*extend<DFP_ALL:mode><BFP:mode>2")
12576 ("extend<BFP:mode><DFP_ALL:mode>2")
12577 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12578 FPR4_REGNUM.
12579
e6ac0270 125802013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12581
6a2fa4b2 12582 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12583
b89b22fc
AK
125842013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12585
12586 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12587 and cfun_fpr_bit_p to cfun_fpr_save_p.
12588 (s390_frame_area, s390_register_info, s390_frame_info)
12589 (s390_emit_prologue, s390_emit_epilogue)
12590 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12591 register numbers.
12592 * config/s390/s390.h: Define *_REGNUM macros for floating point
12593 register numbers.
12594
07f398aa
EB
125952013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12596
12597 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12598
75fefa91
PCC
125992013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12600
12601 PR rtl-optimization/57786
12602 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12603 and break out of the loop when it is set to false.
12604
046f1eee
JJ
126052013-07-08 Jakub Jelinek <jakub@redhat.com>
12606
8140c065
JJ
12607 PR target/57819
12608 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12609 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12610 (const_int 63)) 0)).
12611 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12612 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12613 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12614
046f1eee
JJ
12615 PR rtl-optimization/57829
12616 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12617 mask bits outside of mode are just sign-extension from mode to HWI.
12618
930b700b
MZ
126192013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12620
12621 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12622 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12623 adjust_address instead of change_address to keep info about alignment.
12624 (emit_strmov): Remove.
12625 (emit_memmov): New function.
12626 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12627 (expand_movmem_epilogue): Likewise and return updated rtx for
12628 destination.
12629 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12630 destination and source.
12631 (decide_alignment): Refactor, handle vector_loop.
12632 (ix86_expand_movmem): Likewise.
12633 (ix86_expand_setmem): Likewise.
12634 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12635
7b9d1bd8
UB
126362013-07-07 Uros Bizjak <ubizjak@gmail.com>
12637
12638 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12639 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12640
eabb5f48
UB
126412013-07-06 Uros Bizjak <ubizjak@gmail.com>
12642
12643 * config/i386/sse.md (sse_movlhps): Change alternative 3
12644 of operand 2 to "m".
12645
126462013-07-06 Uros Bizjak <ubizjak@gmail.com>
12647
12648 PR target/57807
12649 * config/i386/sse.md (iptr): New mode attribute.
12650 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12651 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12652 (<sse>_vmmul<mode>3): Ditto.
12653 (<sse>_vmdiv<mode>3): Ditto.
12654 (sse_vmrcpv4sf2): Ditto.
12655 (<sse>_vmsqrt<mode>2): Ditto.
12656 (sse_vmrsqrtv4sf2): Ditto.
12657 (<sse>_vm<code><mode>3): Ditto.
12658 (avx_vmcmp<mode>3): Ditto.
12659 (<sse>_vmmaskcmp<mode>3): Ditto.
12660 (<sse>_comi): Ditto.
12661 (<sse>_ucomi): Ditto.
12662 (*xop_vmfrcz_<mode>): Ditto.
12663 (*fmai_fmadd_<mode>): Ditto.
12664 (*fmai_fmsub_<mode>): Ditto.
12665 (*fmai_fnmadd_<mode>): Ditto.
12666 (*fmai_fnmsub_<mode>): Ditto.
12667 (*fma4i_vmfmadd_<mode>): Ditto.
12668 (*fma4i_vmfmsub_<mode>): Ditto.
12669 (*fma4i_vmfnmadd_<mode>): Ditto.
12670 (*fma4i_vmfnmsub_<mode>): Ditto.
12671 (*xop_vmfrcz_<mode>): Ditto.
12672 (sse_cvtps2pi): Ditto.
12673 (sse_cvttps2pi): Ditto.
12674 (sse_cvtss2si): Ditto.
12675 (sse_cvtss2si_2): Ditto.
12676 (sse_cvtss2siq_2): Ditto.
12677 (sse_cvttss2si): Ditto.
12678 (sse_cvttss2siq): Ditto.
12679 (sse_cvtsd2si): Ditto.
12680 (sse_cvtsd2si_2): Ditto.
12681 (sse_cvtsd2siq_2): Ditto.
12682 (sse_cvttsd2si): Ditto.
12683 (sse_cvttsd2siq): Ditto.
12684 (sse_cvtsd2ss): Ditto.
12685 (sse_cvtss2sd): Ditto.
12686 (avx2_pbroadcast<mode>): Ditto.
12687 (avx2_pbroadcast<mode>_1): Ditto.
12688 (*avx_vperm_broadcast_v4sf): Ditto.
12689
12690 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12691 (sse_movlhps): Ditto.
12692 (sse_storehps): Ditto.
12693 (sse_loadhps): Ditto.
12694 (sse_storelps): Ditto.
12695 (sse_loadlps): Ditto.
12696 (*vec_concatv4sf): Ditto.
12697 (*vec_interleave_highv2df): Ditto.
12698 (*vec_interleave_lowv2df): Ditto.
12699 (*vec_extractv2df_1_sse): Ditto.
12700 (*vec_extractv2df_0_sse): Ditto.
12701 (sse2_storelpd): Ditto.
12702 (sse2_loadlpd): Ditto.
12703 (sse2_movsd): Ditto.
12704 (*vec_concatv4si): Ditto.
12705 (vec_concatv2di): Ditto.
12706
12707 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12708 for Intel asm dialect.
12709 (mmx_punpcklwd): Ditto.
12710 (mmx_punpckldq): Ditto.
12711
12712 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12713 for intel assembler dialect.
12714
1f6eac90
JJ
127152013-07-06 Jakub Jelinek <jakub@redhat.com>
12716
12717 PR target/29776
12718 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12719 for BUILT_IN_C{LZ,LRSB}*.
12720 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12721 * tree-vrp.c (extract_range_basic): Handle
12722 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12723 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12724 fall thru to code calling set_value*.
12725 * builtins.c (expand_builtin): Remove *IMAX cases.
12726 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12727 if width is bigger than 2*HWI.
12728
2b778c9d
VM
127292013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12730
12731 PR rtl-optimization/55342
12732 * lra-int.h (lra_subreg_reload_pseudos): New.
12733 * lra.c: Add undoing optional reloads to the block diagram.
12734 (lra_subreg_reload_pseudos): New.
12735 (lra_optional_reload_pseudos): Change comments.
12736 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12737 lra_optional_reload_pseudos after undo transformations.
12738 * lra-assigns.c (pseudo_prefix_title): New.
12739 (lra_setup_reg_renumber): Use it.
12740 (spill_for): Ditto. Check subreg reload pseudos too.
12741 (assign_by_spills): Consider subreg reload pseudos too.
12742 * lra-constraints.c (simplify_operand_subreg): Use
12743 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12744 (curr_insn_transform): Recognize and do optional reloads.
12745 (undo_optional_reloads): New.
12746 (lra_undo_inheritance): Call undo_optional_reloads.
12747
207156e4
TQ
127482013-07-05 Thomas Quinot <quinot@adacore.com>
12749
12750 * tree-complex.c (expand_complex_operations_1): Fix typo.
12751
8990e73a
TB
127522013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12753
12754 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12755 (tune_params): New member 'const vec_costs'.
12756 * config/aarch64/aarch64.c (generic_vector_cost): New.
12757 (generic_tunings): New member 'generic_vector_cost'.
12758 (aarch64_builtin_vectorization_cost): New.
12759 (aarch64_add_stmt_cost): New.
12760 (TARGET_VECTORIZE_ADD_STMT_COST): New.
12761 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
12762
f7bc421d
JJ
127632013-07-03 Jakub Jelinek <jakub@redhat.com>
12764
12765 PR target/57777
12766 * config/i386/predicates.md (vsib_address_operand): Disallow
12767 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
12768
e90d1568
HPN
127692013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
12770
12771 PR middle-end/55030
12772 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
12773 expand_builtin_setjmp_receiver.
12774 (expand_label): Adjust, call expand_builtin_setjmp_receiver
12775 with NULL for the label parameter.
12776 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
12777 the frame-pointer. Adjust comments.
12778 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
12779 only if LABEL is non-NULL.
12780
cbd7413b
YZ
127812013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
12782
12783 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
12784 (ARM_ABI_AAPCS64): Ditto.
12785 (arm_abi): Ditto.
12786 (ARM_DEFAULT_ABI): Ditto.
12787
dec11868
JG
127882013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
12789
12790 * config/aarch64/aarch64-builtins.c
12791 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
12792 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
12793 (st1): Likewise.
12794 * config/aarch64/aarch64-simd.md
12795 (aarch64_ld1<VALL:mode>): New.
12796 (aarch64_st1<VALL:mode>): Likewise.
12797 * config/aarch64/arm_neon.h
12798 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
12799
786fb9b6
ST
128002013-07-02 Sriraman Tallam <tmsriram@google.com>
12801
0ba6aff3
UB
12802 * config/i386/i386.c (gate_insert_vzeroupper): Check if
12803 target ISA is AVX.
786fb9b6
ST
12804 (ix86_option_override_internal):Turn on all -mavx target flags by
12805 default as they are dependent on AVX anyway.
12806
4b043553
CC
128072013-07-02 Cary Coutant <ccoutant@google.com>
12808
12809 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
12810 deterministic hash.
12811 (loc_checksum_ordered): Likewise.
12812 (hash_loc_operands): Remove inline keyword.
12813
c4e87a13
JJ
128142013-07-02 Jakub Jelinek <jakub@redhat.com>
12815
12816 PR tree-optimization/57741
12817 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
12818 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
12819 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
12820 Allow REAL_CST step_exprs if flag_associative_math.
12821 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
12822
26366d28
IB
128232013-07-02 Ian Bolton <ian.bolton@arm.com>
12824
0ba6aff3 12825 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 12826
2879bb2b
IB
128272013-07-02 Ian Bolton <ian.bolton@arm.com>
12828
12829 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
12830
afc5e8a6
KT
128312013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12832
12833 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
12834 encoding.
12835 (iorsi3_insn): Likewise.
12836 (arm_xorsi3): Likewise.
12837
31f8442b
SN
128382013-07-01 Sofiane Naci <sofiane.naci@arm.com>
12839
12840 * arm.md (attribute "wtype"): Delete. Move attribute values from here
12841 to ...
12842 (attribute "type"): ... here, and prefix with "wmmx_".
12843 (attribute "core_cycles"): Update for attribute changes.
12844 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
12845 (tbcstv4hi): Likewise.
12846 (tbcstv2si): Likewise.
12847 (iwmmxt_iordi3): Likewise.
12848 (iwmmxt_xordi3): Likewise.
12849 (iwmmxt_anddi3): Likewise.
12850 (iwmmxt_nanddi3): Likewise.
12851 (iwmmxt_arm_movdi): Likewise.
12852 (iwmmxt_movsi_insn): Likewise.
12853 (mov<mode>_internal): Likewise.
12854 (and<mode>3_iwmmxt): Likewise.
12855 (ior<mode>3_iwmmxt): Likewise.
12856 (xor<mode>3_iwmmxt): Likewise.
12857 (add<mode>3_iwmmxt): Likewise.
12858 (ssaddv8qi3): Likewise.
12859 (ssaddv4hi3): Likewise.
12860 (ssaddv2si3): Likewise.
12861 (usaddv8qi3): Likewise.
12862 (usaddv4hi3): Likewise.
12863 (usaddv2si3): Likewise.
12864 (sub<mode>3_iwmmxt): Likewise.
12865 (sssubv8qi3): Likewise.
12866 (sssubv4hi3): Likewise.
12867 (sssubv2si3): Likewise.
12868 (ussubv8qi3): Likewise.
12869 (ussubv4hi3): Likewise.
12870 (ussubv2si3): Likewise.
12871 (mulv4hi3_iwmmxt): Likewise.
12872 (smulv4hi3_highpart): Likewise.
12873 (umulv4hi3_highpart): Likewise.
12874 (iwmmxt_wmacs): Likewise.
12875 (iwmmxt_wmacsz): Likewise.
12876 (iwmmxt_wmacu): Likewise.
12877 (iwmmxt_wmacuz): Likewise.
12878 (iwmmxt_clrdi): Likewise.
12879 (iwmmxt_clrv8qi): Likewise.
12880 (iwmmxt_clr4hi): Likewise.
12881 (iwmmxt_clr2si): Likewise.
12882 (iwmmxt_uavgrndv8qi3): Likewise.
12883 (iwmmxt_uavgrndv4hi3): Likewise.
12884 (iwmmxt_uavgv8qi3): Likewise.
12885 (iwmmxt_uavgv4hi3): Likewise.
12886 (iwmmxt_tinsrb): Likewise.
12887 (iwmmxt_tinsrh): Likewise.
12888 (iwmmxt_tinsrw): Likewise.
12889 (iwmmxt_textrmub): Likewise.
12890 (iwmmxt_textrmsb): Likewise.
12891 (iwmmxt_textrmuh): Likewise.
12892 (iwmmxt_textrmsh): Likewise.
12893 (iwmmxt_textrmw): Likewise.
12894 (iwmxxt_wshufh): Likewise.
12895 (eqv8qi3): Likewise.
12896 (eqv4hi3): Likewise.
12897 (eqv2si3): Likewise.
12898 (gtuv8qi3): Likewise.
12899 (gtuv4hi3): Likewise.
12900 (gtuv2si3): Likewise.
12901 (gtv8qi3): Likewise.
12902 (gtv4hi3): Likewise.
12903 (gtv2si3): Likewise.
12904 (smax<mode>3_iwmmxt): Likewise.
12905 (umax<mode>3_iwmmxt): Likewise.
12906 (smin<mode>3_iwmmxt): Likewise.
12907 (umin<mode>3_iwmmxt): Likewise.
12908 (iwmmxt_wpackhss): Likewise.
12909 (iwmmxt_wpackwss): Likewise.
12910 (iwmmxt_wpackdss): Likewise.
12911 (iwmmxt_wpackhus): Likewise.
12912 (iwmmxt_wpackwus): Likewise.
12913 (iwmmxt_wpackdus): Likewise.
12914 (iwmmxt_wunpckihb): Likewise.
12915 (iwmmxt_wunpckihh): Likewise.
12916 (iwmmxt_wunpckihw): Likewise.
12917 (iwmmxt_wunpckilb): Likewise.
12918 (iwmmxt_wunpckilh): Likewise.
12919 (iwmmxt_wunpckilw): Likewise.
12920 (iwmmxt_wunpckehub): Likewise.
12921 (iwmmxt_wunpckehuh): Likewise.
12922 (iwmmxt_wunpckehuw): Likewise.
12923 (iwmmxt_wunpckehsb): Likewise.
12924 (iwmmxt_wunpckehsh): Likewise.
12925 (iwmmxt_wunpckehsw): Likewise.
12926 (iwmmxt_wunpckelub): Likewise.
12927 (iwmmxt_wunpckeluh): Likewise.
12928 (iwmmxt_wunpckeluw): Likewise.
12929 (iwmmxt_wunpckelsb): Likewise.
12930 (iwmmxt_wunpckelsh): Likewise.
12931 (iwmmxt_wunpckelsw): Likewise.
12932 (ror<mode>3): Likewise.
12933 (ashr<mode>3_iwmmxt): Likewise.
12934 (lshr<mode>3_iwmmxt): Likewise.
12935 (ashl<mode>3_iwmmxt): Likewise.
12936 (ror<mode>3_di): Likewise.
12937 (ashr<mode>3_di): Likewise.
12938 (lshr<mode>3_di): Likewise.
12939 (ashl<mode>3_di): Likewise.
12940 (iwmmxt_wmadds): Likewise.
12941 (iwmmxt_wmaddu): Likewise.
12942 (iwmmxt_tmia): Likewise.
12943 (iwmmxt_tmiaph): Likewise.
12944 (iwmmxt_tmiabb): Likewise.
12945 (iwmmxt_tmiatb): Likewise.
12946 (iwmmxt_tmiabt): Likewise.
12947 (iwmmxt_tmiatt): Likewise.
12948 (iwmmxt_tmovmskb): Likewise.
12949 (iwmmxt_tmovmskh): Likewise.
12950 (iwmmxt_tmovmskw): Likewise.
12951 (iwmmxt_waccb): Likewise.
12952 (iwmmxt_wacch): Likewise.
12953 (iwmmxt_waccw): Likewise.
12954 (iwmmxt_waligni): Likewise.
12955 (iwmmxt_walignr): Likewise.
12956 (iwmmxt_walignr0): Likewise.
12957 (iwmmxt_walignr1): Likewise.
12958 (iwmmxt_walignr2): Likewise.
12959 (iwmmxt_walignr3): Likewise.
12960 (iwmmxt_wsadb): Likewise.
12961 (iwmmxt_wsadh): Likewise.
12962 (iwmmxt_wsadbz): Likewise.
12963 (iwmmxt_wsadhz): Likewise.
12964 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
12965 (iwmmxt_wabsdiffb): Likewise.
12966 (iwmmxt_wabsdiffh): Likewise.
12967 (iwmmxt_wabsdiffw): Likewise.
12968 (iwmmxt_waddsubhx): Likewise
12969 (iwmmxt_wsubaddhx): Likewise.
12970 (addc<mode>3): Likewise.
12971 (iwmmxt_avg4): Likewise.
12972 (iwmmxt_avg4r): Likewise.
12973 (iwmmxt_wmaddsx): Likewise.
12974 (iwmmxt_wmaddux): Likewise.
12975 (iwmmxt_wmaddsn): Likewise.
12976 (iwmmxt_wmaddun): Likewise.
12977 (iwmmxt_wmulwsm): Likewise.
12978 (iwmmxt_wmulwum): Likewise.
12979 (iwmmxt_wmulsmr): Likewise.
12980 (iwmmxt_wmulumr): Likewise.
12981 (iwmmxt_wmulwsmr): Likewise.
12982 (iwmmxt_wmulwumr): Likewise.
12983 (iwmmxt_wmulwl): Likewise.
12984 (iwmmxt_wqmulm): Likewise.
12985 (iwmmxt_wqmulwm): Likewise.
12986 (iwmmxt_wqmulmr): Likewise.
12987 (iwmmxt_wqmulwmr): Likewise.
12988 (iwmmxt_waddbhusm): Likewise.
12989 (iwmmxt_waddbhusl): Likewise.
12990 (iwmmxt_wqmiabb): Likewise.
12991 (iwmmxt_wqmiabt): Likewise.
12992 (iwmmxt_wqmiatb): Likewise.
12993 (iwmmxt_wqmiatt): Likewise.
12994 (iwmmxt_wqmiabbn): Likewise.
12995 (iwmmxt_wqmiabtn): Likewise.
12996 (iwmmxt_wqmiatbn): Likewise.
12997 (iwmmxt_wqmiattn): Likewise.
12998 (iwmmxt_wmiabb): Likewise.
12999 (iwmmxt_wmiabt): Likewise.
13000 (iwmmxt_wmiatb): Likewise.
13001 (iwmmxt_wmiatt): Likewise.
13002 (iwmmxt_wmiabbn): Likewise.
13003 (iwmmxt_wmiabtn): Likewise.
13004 (iwmmxt_wmiatbn): Likewise.
13005 (iwmmxt_wmiattn): Likewise.
13006 (iwmmxt_wmiawbb): Likewise.
13007 (iwmmxt_wmiawbt): Likewise.
13008 (iwmmxt_wmiawtb): Likewise.
13009 (iwmmxt_wmiawtt): Likewise.
13010 (iwmmxt_wmiawbbn): Likewise.
13011 (iwmmxt_wmiawbtn): Likewise.
13012 (iwmmxt_wmiawtbn): Likewise.
13013 (iwmmxt_wmiawttn): Likewise.
13014 (iwmmxt_wmerge): Likewise.
13015 (iwmmxt_tandc<mode>3): Likewise.
13016 (iwmmxt_torc<mode>3): Likewise.
13017 (iwmmxt_torvsc<mode>3): Likewise.
13018 (iwmmxt_textrc<mode>3): Likewise.
13019 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13020 (wmmxt_pack): Likewise.
13021 (wmmxt_mult_c1): Likewise.
13022 (wmmxt_mult_c2): Likewise.
13023 (wmmxt_alu_c1): Likewise.
13024 (wmmxt_alu_c2): Likewise.
13025 (wmmxt_alu_c3): Likewise.
13026 (wmmxt_transfer_c1): Likewise.
13027 (wmmxt_transfer_c2): Likewise.
13028 (wmmxt_transfer_c3): Likewise.
13029 (marvell_f_iwmmxt_wstr): Likewise.
13030 (marvell_f_iwmmxt_wldr): Likewise.
13031
bdb7bf8a
YZ
130322013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13033
0ba6aff3 13034 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13035
e6631d38
VM
130362013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13037
13038 Revert:
13039 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13040 * lra-constraints.c (need_for_split_p): Check call used hard regs
13041 living through calls.
13042
13043 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13044 call used regs for call insn.
13045
53c1275b
JJ
130462013-06-28 Jakub Jelinek <jakub@redhat.com>
13047
13048 PR target/57736
0ba6aff3
UB
13049 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13050 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13051
1141ed3f
BI
130522013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13053
13054 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13055
e32e4c4a
VM
130562013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13057
13058 * lra-constraints.c (need_for_split_p): Check call used hard regs
13059 living through calls.
13060
f161bfd3
MM
130612013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13062
13063 PR target/57744
13064 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13065 to tie with any other modes. Eliminate Altivec vector mode tests,
13066 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13067 code, to return 0 if testing MODE2 for a condition, if we've
13068 already tested MODE1 for the same condition.
13069
7eda14e1
MS
130702013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13071
13072 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13073 layout.
13074
c822f852
MS
130752013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13076
13077 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13078 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13079
da4f13a4
MS
130802013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13081
0ba6aff3
UB
13082 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13083 Define.
da4f13a4
MS
13084 (aarch64_symbolic_constant_p): Remove.
13085 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13086 static. Fix line length and white space.
13087 (aarch64_symbolic_constant_p): Remove.
13088 * config/aarch64/predicates.md (aarch64_valid_symref):
13089 Use aarch64_classify_symbol_expression.
13090
956a95a5
KT
130912013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13092
13093 * config/arm/constraints.md (Ts): New constraint.
13094 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13095 16-bit encodings.
13096 (compare_scc): Use "Ts" constraint for operand 0.
13097 (ior_scc_scc): Likewise.
13098 (and_scc_scc): Likewise.
13099 (and_scc_scc_nodom): Likewise.
13100 (ior_scc_scc_cmp): Likewise for operand 7.
13101 (and_scc_scc_cmp): Likewise.
13102 * config/arm/thumb2.md (thumb2_movsi_insn):
13103 Add alternatives for 16-bit encodings.
13104 (thumb2_movhi_insn): Likewise.
13105 (thumb2_movsicc_insn): Likewise.
13106 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13107 (thumb2_negscc): Use "Ts" constraint.
13108 Move mvn instruction outside cond_exec block.
13109 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13110 for 16-bit encodings.
13111
31dfce10
KT
131122013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13113
13114 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13115 encoding.
13116 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13117 (mulsi3subsi): Likewise.
13118 (mulsidi3adddi): Likewise.
13119 (mulsidi3_v6): Likewise.
13120 (umulsidi3_v6): Likewise.
13121 (umulsidi3adddi_v6): Likewise.
13122 (smulsi3_highpart_v6): Likewise.
13123 (umulsi3_highpart_v6): Likewise.
13124 (mulhisi3tb): Likewise.
13125 (mulhisi3bt): Likewise.
13126 (mulhisi3tt): Likewise.
13127 (maddhisi4): Likewise.
13128 (maddhisi4tb): Likewise.
13129 (maddhisi4tt): Likewise.
13130 (maddhidi4): Likewise.
13131 (maddhidi4tb): Likewise.
13132 (maddhidi4tt): Likewise.
13133 (zeroextractsi_compare0_scratch): Likewise.
13134 (insv_zero): Likewise.
13135 (insv_t2): Likewise.
13136 (anddi_notzesidi_di): Likewise.
13137 (anddi_notsesidi_di): Likewise.
13138 (andsi_notsi_si): Likewise.
13139 (iordi_zesidi_di): Likewise.
13140 (xordi_zesidi_di): Likewise.
13141 (andsi_iorsi3_notsi): Likewise.
13142 (smax_0): Likewise.
13143 (smax_m1): Likewise.
13144 (smin_0): Likewise.
13145 (not_shiftsi): Likewise.
13146 (unaligned_loadsi): Likewise.
13147 (unaligned_loadhis): Likewise.
13148 (unaligned_loadhiu): Likewise.
13149 (unaligned_storesi): Likewise.
13150 (unaligned_storehi): Likewise.
13151 (extv_reg): Likewise.
13152 (extzv_t2): Likewise.
13153 (divsi3): Likewise.
13154 (udivsi3): Likewise.
13155 (arm_zero_extendhisi2addsi): Likewise.
13156 (arm_zero_extendqisi2addsi): Likewise.
13157 (compareqi_eq0): Likewise.
13158 (arm_extendhisi2_v6): Likewise.
13159 (arm_extendqisi2addsi): Likewise.
13160 (arm_movt): Likewise.
13161 (thumb2_ldrd): Likewise.
13162 (thumb2_ldrd_base): Likewise.
13163 (thumb2_ldrd_base_neg): Likewise.
13164 (thumb2_strd): Likewise.
13165 (thumb2_strd_base): Likewise.
13166 (thumb2_strd_base_neg): Likewise.
13167 (arm_negsi2): Add alternative for 16-bit encoding.
13168 (arm_one_cmplsi2): Likewise.
13169
1572e697
KT
131702013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13171
13172 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13173 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13174 (movdfcc): Likewise.
13175 * config/arm/vfp.md (*thumb2_movsf_vfp):
13176 Disable predication for arm_restrict_it.
13177 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13178 (*thumb2_movdfcc_vfp): Likewise.
13179 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13180 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13181 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13182 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13183 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13184 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13185 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13186 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13187 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13188 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13189 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13190 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13191 Disable predication for arm_restrict_it.
13192
ebf8f0ea
KY
131932013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13194
13195 * config/i386/bmiintrin.h (_bextr_u32): New.
13196 (_bextr_u64): Ditto.
13197
a290fcda
RS
131982013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13199
13200 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13201 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13202 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13203 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13204 * config/mips/n32-elf.h: ...this new file.
13205
ea169996
MG
132062013-06-27 Marc Glisse <marc.glisse@inria.fr>
13207
13208 PR target/57224
13209 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13210 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13211
12211b99 132122013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13213
13214 * config/mips/mips-tables.opt: Regenerate.
13215 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13216 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13217 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13218
2444244e
JJ
132192013-06-27 Jakub Jelinek <jakub@redhat.com>
13220
cd06d2a2
JJ
13221 PR target/57623
13222 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13223 constraints of operand 1 and 2.
13224
2444244e
JJ
13225 PR target/57623
13226 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13227 to match RTL canonicalization. Swap predicates and
13228 constraints of operand 1 and 2.
13229
2f259720
VM
132302013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13231
0ba6aff3
UB
13232 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13233 Process OP_INOUT regs for splitting too.
2f259720 13234
fef4d2b3
JJ
132352013-06-27 Jakub Jelinek <jakub@redhat.com>
13236
13237 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13238 decl before the loop, initialize to NULL.
13239 (vectorizable_load): Initialize ptr_incr to NULL.
13240
79ee9826
MJ
132412013-06-27 Martin Jambor <mjambor@suse.cz>
13242
13243 PR lto/57208
13244 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13245 * ipa-ref.c (ipa_maybe_record_reference): New function.
13246 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13247 * ipa-cp.c (create_specialized_node): Record potential references from
13248 aggvals.
13249 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13250
e18b4a81
YZ
132512013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13252
13253 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13254 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13255 'mode' to force_reg.
13256 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13257 (aarch64_expand_mov_immediate): Likewise.
13258
9c023bf0
YZ
132592013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13260
13261 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13262 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13263
5a3fe9b6
AK
132642013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13265
13266 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13267 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13268 (struct machine_function): Add tbegin_p.
13269 (s390_canonicalize_comparison): Fold CC mode compares to
13270 conditional jump if possible.
13271 (s390_emit_jump): Return the emitted jump.
13272 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13273 Handle CCRAWmode compares.
13274 (s390_option_override): Default to -mhtm if available.
13275 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13276 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13277 FPRs instead of df_regs_ever_live_p.
13278 (s390_optimize_nonescaping_tx): New function.
13279 (s390_init_frame_layout): Extend clobbered_regs array to cover
13280 FPRs as well.
13281 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13282 (s390_expand_tbegin): New function.
13283 (enum s390_builtin): New enum definition.
13284 (code_for_builtin): New array definition.
13285 (s390_init_builtins): New function.
13286 (s390_expand_builtin): New function.
13287 (TARGET_INIT_BUILTINS): Define.
13288 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13289 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13290 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13291 (s390_alc_comparison): Likewise.
13292 * config/s390/s390-modes.def: Add CCRAWmode.
13293 * config/s390/s390.h (processor_flags): Add PF_TX.
13294 (TARGET_CPU_HTM): Define macro.
13295 (TARGET_HTM): Define macro.
13296 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13297 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13298 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13299 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13300 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13301 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13302 ("*cc_to_int"): Move up.
13303 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13304 constants other than 0.
13305 ("*ccraw_to_int"): New insn and splitter definition.
13306 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13307 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13308 ("tx_assist"): New expander.
13309 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13310 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13311 * config/s390/s390.opt: Add -mhtm option.
13312 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13313 * config/s390/htmxlintrin.h: New file.
13314 * config/s390/htmintrin.h: New file.
13315 * config/s390/s390intrin.h: New file.
13316 * doc/extend.texi: Document htm builtins.
13317 * config.gcc: Add the new header files to extra_headers.
13318
9e216629
TS
133192013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13320
13321 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13322 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13323
fd8c65e7 133242013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13325 Pat Haugen <pthaugen@us.ibm.com>
13326 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13327
13328 * config/rs6000/power8.md: New.
13329 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13330 setting for power8 entry.
13331 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13332 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13333 test for Power4/Power5 only.
13334 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13335 support.
13336 (force_new_group): Adjust comment.
13337 * config/rs6000/rs6000.md: Include power8.md.
13338
b24a2ce5
GY
133392013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13340
13341 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13342 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13343 declaration.
13344 (tune_params): Update comment.
13345 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13346 (arm_max_conditional_execute): New function.
13347 (thumb2_final_prescan_insn): Use max_insn_skipped and
13348 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13349
f6fdeb62
JJ
133502013-06-25 Jakub Jelinek <jakub@redhat.com>
13351
13352 PR tree-optimization/57705
13353 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13354 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13355 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13356 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13357
c13bc3d9
MJ
133582013-06-25 Martin Jambor <mjambor@suse.cz>
13359
13360 PR middle-end/57670
13361 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13362 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13363 calls in the dump.
13364 (ipa_note_param_call): Initialize member_ptr flag.
13365 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13366 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13367 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13368 (ipa_read_indirect_edge_info): Likewise.
13369
8a845901
RB
133702013-06-25 Richard Biener <rguenther@suse.de>
13371
13372 PR middle-end/56977
13373 * passes.c (init_optimization_passes): Move pass_fold_builtins
13374 and pass_dce earlier with -Og.
13375
33be0bec
EB
133762013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13377
13378 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13379 <BIT_FIELD_REF>: Remove trailing TAB.
13380 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13381 remove blank line.
13382
5fe8e757
MJ
133832013-06-24 Martin Jambor <mjambor@suse.cz>
13384
13385 PR tree-optimization/57358
13386 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13387 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13388 (ipa_analyze_params_uses): Generate pessimistic info when true.
13389
44a60244
MJ
133902013-06-24 Martin Jambor <mjambor@suse.cz>
13391
13392 PR tree-optimization/57539
13393 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13394 global.inlined_to of the new node to it. All callers changed.
13395 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13396 inlining_into, pass it to cgraph_clone_node.
13397 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13398 ipa_free_edge_args_substructures.
13399 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13400 rdesc linked list. Do not assert rdesc edges have inlined caller.
13401 Assert we have found an rdesc in the rdesc list.
13402
7c5848b8
RB
134032013-06-24 Richard Biener <rguenther@suse.de>
13404
0ba6aff3 13405 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13406 (pointer_set_lookup): Declare.
13407 (class pointer_map): New template class implementing a
13408 generic pointer to T map.
13409 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13410 pointer_map<T>::contains, pointer_map<T>::insert,
13411 pointer_map<T>::traverse): New functions.
13412 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13413 (pointer_set_lookup): New function.
13414 (pointer_set_contains): Use pointer_set_lookup.
13415 (pointer_set_insert): Likewise.
13416 (insert_aux): Remove.
13417 (struct pointer_map_t): Embed a pointer_set_t.
13418 (pointer_map_create): Adjust.
13419 (pointer_map_destroy): Likewise.
13420 (pointer_map_contains): Likewise.
13421 (pointer_map_insert): Likewise.
13422 (pointer_map_traverse): Likewise.
13423 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13424 pointer_map<unsigned> instead of a pointer_map_t.
13425 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13426 (streamer_tree_cache_lookup): Likewise.
13427 (streamer_tree_cache_create): Likewise.
13428 (streamer_tree_cache_delete): Likewise.
13429 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13430 pointer_map<unsigned> instead of a pointer_map_t.
13431 (lto_init_tree_ref_encoder): Adjust.
13432 (lto_destroy_tree_ref_encoder): Likewise.
13433 * lto-section-out.c (lto_output_decl_index): Likewise.
13434 (lto_record_function_out_decl_state): Likewise.
13435 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13436
3dbc97a9
RB
134372013-06-24 Richard Biener <rguenther@suse.de>
13438
13439 PR tree-optimization/57488
13440 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13441
8345965a
AM
134422013-06-24 Alan Modra <amodra@gmail.com>
13443
13444 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13445 (gen_easy_altivec_constant): Likewise.
13446 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13447 easy_vector_constant_msb): Likewise.
13448
b7df379f
JJ
134492013-06-23 Jakub Jelinek <jakub@redhat.com>
13450
13451 PR target/57688
13452 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13453 add missing return true.
13454
12211b99 134552013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13456
13457 PR target/52483
13458 * config/sh/predicates.md (general_extend_operand): Invoke
13459 general_movsrc_operand for memory operands.
13460 (general_movsrc_operand): Allow reg+reg addressing, do not use
13461 general_operand for memory operands.
13462
97db2bf7
ST
134632013-06-23 Sriraman Tallam <tmsriram@google.com>
13464
13465 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13466 when current target options does not apply.
13467 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13468 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13469 * config/i386/bmiintrin.h: Pass appropriate target
13470 attributes to header.
97db2bf7
ST
13471 * config/i386/mmintrin.h: Ditto.
13472 * config/i386/nmmintrin.h: Ditto.
13473 * config/i386/avx2intrin.h: Ditto.
13474 * config/i386/fxsrintrin.h: Ditto.
13475 * config/i386/tbmintrin.h: Ditto.
13476 * config/i386/xsaveintrin.h: Ditto.
13477 * config/i386/f16cintrin.h: Ditto.
13478 * config/i386/xtestintrin.h: Ditto.
13479 * config/i386/xsaveoptintrin.h: Ditto.
13480 * config/i386/bmi2intrin.h: Ditto.
13481 * config/i386/lzcntintrin.h: Ditto.
13482 * config/i386/smmintrin.h: Ditto.
13483 * config/i386/wmmintrin.h: Ditto.
13484 * config/i386/x86intrin.h: Remove all header include guards.
13485 * config/i386/prfchwintrin.h: Ditto.
13486 * config/i386/pmmintrin.h: Ditto.
13487 * config/i386/tmmintrin.h: Ditto.
13488 * config/i386/xmmintrin.h: Ditto.
13489 * config/i386/popcntintrin.h: Ditto.
13490 * config/i386/rdseedintrin.h: Ditto.
13491 * config/i386/ammintrin.h: Ditto.
13492 * config/i386/emmintrin.h: Ditto.
13493 * config/i386/immintrin.h: Remove all header include guards.
13494 * config/i386/fma4intrin.h: Ditto.
13495 * config/i386/lwpintrin.h: Ditto.
13496 * config/i386/xopintrin.h: Ditto.
13497 * config/i386/ia32intrin.h: Ditto.
13498 * config/i386/avxintrin.h: Ditto.
13499 * config/i386/rtmintrin.h: Ditto.
13500 * config/i386/fmaintrin.h: Ditto.
13501 * config/i386/mm3dnow.h: Ditto.
13502
495e6879
ST
135032013-06-22 Sriraman Tallam <tmsriram@google.com>
13504
13505 * common/config/i386/i386-common.c: Handle LZCNT.
13506
11e8f687
AK
135072013-06-22 Andi Kleen <ak@linux.intel.com>
13508
13509 * doc/extend.texi: Use __atomic_store_n instead of
13510 __atomic_store in HLE example.
13511
12211b99 135122013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13513
13514 * config/sh/sh.c: Remove <cstdlib> workaround.
13515
927f908b
AK
135162013-06-21 Andi Kleen <ak@linux.intel.com>
13517
0ba6aff3 13518 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13519
cca410b6
AK
135202013-06-21 Andi Kleen <ak@linux.intel.com>
13521
13522 * doc/extend.texi: Document that __atomic_clear and
13523 __atomic_test_and_set should only be used with bool.
13524
d84db1ed
JH
135252013-06-20 Jan Hubicka <jh@suse.cz>
13526
13527 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13528 types_same_for_odr.
13529 * tree.c (decls_same_for_odr): New function.
13530 (same_for_edr): New function.
13531 (types_same_for_odr): New function.
13532 (get_binfo_at_offset): Use it.
13533 * tree.h (types_same_for_odr): Declare.
13534
12211b99 135352013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13536 Jason Merrill <jason@redhat.com>
13537
13538 * system.h: Include <cstdlib> as well as <stdlib.h>.
13539
49b4ff63
UB
135402013-06-20 Uros Bizjak <ubizjak@gmail.com>
13541
13542 PR target/57655
13543 * config/i386/i386.c (construct_container): Report error if
13544 long double is used with disabled x87 float returns.
13545
7a89ad00
JH
135462013-06-20 Jan Hubicka <jh@suse.cz>
13547
13548 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13549
12211b99 135502013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13551
13552 PR rtl-optimization/57425
13553 PR rtl-optimization/57569
13554 * alias.c (write_dependence_p): Remove parameters mem_mode and
13555 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13556 Changed all callers.
13557 (canon_anti_dependence): Get comments and semantics in sync.
13558 Add parameter mem_canonicalized. Changed all callers.
13559 * rtl.h (canon_anti_dependence): Update prototype.
13560
d16e9a99
RB
135612013-06-20 Richard Biener <rguenther@suse.de>
13562
13563 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13564 byte case, inline streamer_read_uchar and defer section
13565 overrun check.
13566
c3a9b91b
RB
135672013-06-20 Richard Biener <rguenther@suse.de>
13568
13569 PR tree-optimization/57584
13570 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13571 SSA names into the expanded expression that take part in
13572 abnormal coalescing.
13573
371e77e3 135742013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13575
13576 * gcov.c (print_usage): Handle new option.
13577 (process_args): Ditto.
13578 (get_gcov_intermediate_filename): New function.
13579 (output_intermediate_file): New function.
13580 (output_gcov_file): New function
13581 (generate_results): Handle new option.
13582 (release_function): Relase demangled name.
13583 (read_graph_file): Handle demangled name.
13584 (output_lines): Ditto.
13585 * doc/gcov.texi: Document gcov intermediate format.
13586
11f5b71a
VM
135872013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13588
13589 PR bootstrap/57604
13590 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13591 (lra_emit_add): Use the functions. Add comment about Y as an
13592 address segment.
13593
e1f9340b
DE
135942013-06-19 David Edelsohn <dje.gcc@gmail.com>
13595
13596 PR driver/57652
13597 * collect2.c (collect_atexit): New.
13598 (collect_exit): Delete.
13599 (main): Register collect_atexit with atexit.
13600 (collect_wait): Change collect_exit to exit.
13601 (do_wait): Same.
13602 * collect2.h (collect_exit): Delete.
13603 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13604
e3f9e0ac
WM
136052013-06-19 Wei Mi <wmi@google.com>
13606
13607 PR rtl-optimization/57518
13608 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13609 if regno is used in paradoxical subreg.
13610 (update_equiv_regs): Check pdx_subregs[regno] before
13611 set a reg to be equivalent with a mem.
13612
a09f1a76
MK
136132013-06-19 Matthias Klose <doko@ubuntu.com>
13614
13615 PR driver/57651
13616 * file-find.h (find_a_file): Add a mode parameter.
13617 * file-find.c (find_a_file): Likewise.
13618 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13619 with X_OK for the executables.
13620 * collect2.c (main): Call find_a_file with X_OK.
13621
7d18b0ad
SE
136222013-06-19 Steve Ellcey <sellcey@mips.com>
13623
13624 PR target/56942
13625 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13626 Use NEXT_INSN instead of next_real_insn.
13627
6a6dac52
JH
136282013-06-19 Jan Hubicka <jh@suse.cz>
13629
13630 * cgraph.h (const_value_known_p): Replace by ...
13631 (ctor_for_folding): .. this one.
13632 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13633 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13634 * expr.c (expand_expr_real_1): Likewise.
13635 (string_constant): Likewise.
13636 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13637 * ipa.c (process_references): Likewise.
13638 (symtab_remove_unreachable_nodes): Likewise.
13639 * ipa-inline-analysis.c (param_change_prob): Likewise.
13640 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13641 (get_base_constructor): Likwise.
13642 * varpool.c (varpool_remove_node): Likewise.
13643 (varpool_remove_initializer): LIkewise.
13644 (dump_varpool_node): LIkwise.
13645 (const_value_known_p): Rewrite to ...
13646 (ctor_for_folding): ... this one.
13647
216c12ab
JJ
136482013-06-19 Jakub Jelinek <jakub@redhat.com>
13649
13650 PR driver/57651
13651 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13652 PERSONALITY in $PATH derived prefixes.
13653
d53e2f99
JL
136542013-06-19 Jeff Law <law@redhat.com>
13655
ecdbf306
JL
13656 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13657 in comment.
13658
d53e2f99
JL
13659 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13660 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13661 booleans.
13662
89e7fc04
SN
136632013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13664
13665 * config/arm/vfp.md: Move VFP instruction classification documentation
13666 to ...
13667 * config/arm/arm.md: ... here. Update instruction classification
13668 documentation.
13669
5e7f6aaa
RE
136702013-06-19 Richard Earnshaw <rearnsha@arm.com>
13671
13672 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13673 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13674 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13675
5fdc1e5d
SB
136762013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13677
13678 PR target/57609
13679 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13680 with NEXT_INSN. Use tablejump_p to check for jump table data
13681 insns.
13682
e952afba
PC
136832013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13684
13685 PR c++/56544
13686 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13687 that now in C++ the value is correct per the C++ standards.
13688
3fd0303a
RB
136892013-06-19 Richard Biener <rguenther@suse.de>
13690
13691 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13692 for global context.
13693
b04e4b08
AK
136942013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13695
13696 Revert:
13697 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13698
13699 PR target/57609
13700 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13701 with next_active_insn.
13702
bef8491a
ST
137032013-06-18 Sriraman Tallam <tmsriram@google.com>
13704
13705 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13706 functions are inlined during failures to flag an error.
13707 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13708 in early inline pass.
22fc7d3d 13709
c21b257d
L
137102013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13711
13712 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13713 in comments.
13714
33255ae3
JB
137152013-06-18 Julian Brown <julian@codesourcery.com>
13716
13717 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13718 Permit virtual register pre-reload if !strict.
13719 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13720 change.
13721 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13722 prototype.
13723 * config/arm/neon.md (movmisalign<mode>): Use
13724 neon_perm_struct_or_reg_operand instead of
13725 neon_struct_or_register_operand.
13726 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13727 neon_permissive_struct_operand instead of neon_struct_operand.
13728 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13729 neon_vector_mem_operand.
13730 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13731 neon_vector_mem_operand.
13732 (neon_permissive_struct_operand): New.
13733 (neon_struct_or_register_operand): Rename to...
13734 (neon_perm_struct_or_reg_operand): This. Adjust call to
13735 neon_vector_mem_operand.
13736
d579fcda
RB
137372013-06-18 Richard Biener <rguenther@suse.de>
13738
13739 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13740 * lto-streamer.h: Include pointer-set.h.
13741 (struct lto_decl_slot): Remove.
13742 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13743 Remove next_index entry.
13744 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13745 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13746 (lto_init_tree_ref_encoder): Adjust.
13747 (lto_destroy_tree_ref_encoder): Likewise.
13748 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13749 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13750 (lto_output_decl_index): Adjust.
13751 (lto_new_out_decl_state): Likewise.
13752 (lto_record_function_out_decl_state): Likewise.
13753 * lto-streamer-out.c (copy_function): Likewise.
13754
31ee20ba
RB
137552013-06-18 Richard Biener <rguenther@suse.de>
13756
13757 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13758 * cgraphunit.c: Include cfgloop.h.
13759 (init_lowered_empty_function): Initialize the loop tree.
13760 (assemble_thunk): Insert new BBs into loops.
13761
ac0511f2
RB
137622013-06-18 Richard Biener <rguenther@suse.de>
13763
13764 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
13765 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
13766 the map from cache entry to cache index optional.
13767 (streamer_tree_cache_replace_tree): Adjust accordingly.
13768 (streamer_tree_cache_append): Likewise.
13769 (streamer_tree_cache_delete): Likewise.
13770 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
13771 streamer cache map from cache entry to cache index.
13772 * lto-streamer-out.c (create_output_block): Adjust.
13773
09485a08
SN
137742013-06-18 Sofiane Naci <sofiane.naci@arm.com>
13775
22fc7d3d
UB
13776 * config/arm/arm.md (attribute "insn"): Move multiplication and
13777 division attributes to...
09485a08
SN
13778 (attribute "type"): ... here. Remove mult.
13779 (attribute "mul32"): New attribute.
13780 (attribute "mul64"): Add umaal.
13781 (*arm_mulsi3): Update attributes.
13782 (*arm_mulsi3_v6): Likewise.
13783 (*thumb_mulsi3): Likewise.
13784 (*thumb_mulsi3_v6): Likewise.
13785 (*mulsi3_compare0): Likewise.
13786 (*mulsi3_compare0_v6): Likewise.
13787 (*mulsi_compare0_scratch): Likewise.
13788 (*mulsi_compare0_scratch_v6): Likewise.
13789 (*mulsi3addsi): Likewise.
13790 (*mulsi3addsi_v6): Likewise.
13791 (*mulsi3addsi_compare0): Likewise.
13792 (*mulsi3addsi_compare0_v6): Likewise.
13793 (*mulsi3addsi_compare0_scratch): Likewise.
13794 (*mulsi3addsi_compare0_scratch_v6): Likewise.
13795 (*mulsi3subsi): Likewise.
13796 (*mulsidi3adddi): Likewise.
13797 (*mulsi3addsi_v6): Likewise.
13798 (*mulsidi3adddi_v6): Likewise.
13799 (*mulsidi3_nov6): Likewise.
13800 (*mulsidi3_v6): Likewise.
13801 (*umulsidi3_nov6): Likewise.
13802 (*umulsidi3_v6): Likewise.
13803 (*umulsidi3adddi): Likewise.
13804 (*umulsidi3adddi_v6): Likewise.
13805 (*smulsi3_highpart_nov6): Likewise.
13806 (*smulsi3_highpart_v6): Likewise.
13807 (*umulsi3_highpart_nov6): Likewise.
13808 (*umulsi3_highpart_v6): Likewise.
13809 (mulhisi3): Likewise.
13810 (*mulhisi3tb): Likewise.
13811 (*mulhisi3bt): Likewise.
13812 (*mulhisi3tt): Likewise.
13813 (maddhisi4): Likewise.
13814 (*maddhisi4tb): Likewise.
13815 (*maddhisi4tt): Likewise.
13816 (maddhidi4): Likewise.
13817 (*maddhidi4tb): Likewise.
13818 (*maddhidi4tt): Likewise.
13819 (divsi3): Likewise.
13820 (udivsi3): Likewise.
13821 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
13822 (thumb2_mulsi_short_compare0): Likewise.
13823 (thumb2_mulsi_short_compare0_scratch): Likewise.
13824 * config/arm/arm1020e.md (1020mult1): Update attribute change.
13825 (1020mult2): Likewise.
13826 (1020mult3): Likewise.
13827 (1020mult4): Likewise.
13828 (1020mult5): Likewise.
13829 (1020mult6): Likewise.
22fc7d3d
UB
13830 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
13831 change.
09485a08
SN
13832 (cortex_a15_mult64): Likewise.
13833 (cortex_a15_sdiv): Likewise.
13834 (cortex_a15_udiv): Likewise.
13835 * config/arm/arm1026ejs.md (mult1): Update attribute change.
13836 (mult2): Likewise.
13837 (mult3): Likewise.
13838 (mult4): Likewise.
13839 (mult5): Likewise.
13840 (mult6): Likewise.
13841 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
13842 (pj4_ir_div): Likewise.
13843 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
13844 (11_mult2): Likewise.
13845 (11_mult3): Likewise.
13846 (11_mult4): Likewise.
13847 (11_mult5): Likewise.
13848 (11_mult6): Likewise.
13849 (11_mult7): Likewise.
13850 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
13851 (cortex_a8_mla): Likewise.
13852 (cortex_a8_mull): Likewise.
13853 (cortex_a8_smulwy): Likewise.
13854 (cortex_a8_smlald): Likewise.
13855 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
13856 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
13857 (cortex_r4_mul_3): Likewise.
13858 (cortex_r4_mla_4): Likewise.
13859 (cortex_r4_mla_3): Likewise.
13860 (cortex_r4_smlald): Likewise.
13861 (cortex_r4_mull): Likewise.
13862 (cortex_r4_sdiv): Likewise.
13863 (cortex_r4_udiv): Likewise.
13864 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
13865 (cortex_a7_idiv): Likewise.
13866 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
13867 (9_mult2): Likewise.
13868 (9_mult3): Likewise.
13869 (9_mult4): Likewise.
13870 (9_mult5): Likewise.
13871 (9_mult6): Likewise.
13872 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
13873 (cortex_a53_sdiv): Likewise.
13874 (cortex_a53_udiv): Likewise.
13875 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
13876 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
13877 (mp626_mult2): Likewise.
13878 (mp626_mult3): Likewise.
13879 (mp626_mult4): Likewise.
13880 * config/arm/fa526.md (526_mult1): Update attribute change.
13881 (526_mult2): Likewise.
13882 * config/arm/arm-generic.md (mult): Update attribute change.
13883 (mult_ldsched_strongarm): Likewise.
13884 (mult_ldsched): Likewise.
13885 (multi_cycle): Likewise.
13886 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
13887 * config/arm/fa606te.md (606te_mult1): Update attribute change.
13888 (606te_mult2): Likewise.
13889 (606te_mult3): Likewise.
13890 (606te_mult4): Likewise.
13891 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
13892 (cortex_a9_mac16): Likewise.
13893 (cortex_a9_multiply): Likewise.
13894 (cortex_a9_mac): Likewise.
13895 (cortex_a9_multiply_long): Likewise.
13896 * config/arm/fa626te.md (626te_mult1): Update attribute change.
13897 (626te_mult2): Likewise.
13898 (626te_mult3): Likewise.
13899 (626te_mult4): Likewise.
13900
8951f345
RB
139012013-06-18 Richard Biener <rguenther@suse.de>
13902
13903 PR lto/57334
13904 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
13905
d8101d05
AK
139062013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13907
13908 PR target/57609
13909 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13910 with next_active_insn.
13911
69eff9da
AM
139122013-06-18 Alan Modra <amodra@gmail.com>
13913
13914 * config/rs6000/rs6000.h (enum data_align): New.
13915 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
13916 (DATA_ABI_ALIGNMENT): Define.
13917 (CONSTANT_ALIGNMENT): Correct comment.
13918 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
13919 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
13920
8ed00d76
DM
139212013-06-17 David Malcolm <dmalcolm@redhat.com>
13922
13923 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
13924 ATTRIBUTE_UNUSED marking.
13925
3d33d06b
SN
139262013-06-17 Sofiane Naci <sofiane.naci@arm.com>
13927
13928 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
13929 alternative and update.
13930 (aarch64_dup_lanedi): Delete.
13931 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
13932 * config/aarch64/aarch64-simd-builtins.def: Update.
13933
ee03e71d
RB
139342013-06-17 Richard Biener <rguenther@suse.de>
13935
13936 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
13937 (lto_input_scc): Declare.
13938 (lto_input_tree_1): Likewise.
13939 (struct lto_stats_d): Add num_tree_bodies_output and
13940 num_pickle_refs_output.
13941 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
13942 (lto_read_tree_1): Split out from ...
13943 (lto_read_tree): ... this.
13944 (lto_input_scc): New function.
13945 (lto_input_tree_1): Split out from ...
13946 (lto_input_tree): ... this. Handle LTO_tree_scc.
13947 (lto_data_in_create): Create the streamer cache without hashes.
13948 * lto-streamer-out.c (create_output_block): Create the streamer
13949 cache with hashes when not doing WPA.
13950 (lto_write_tree_1): Split out from ...
13951 (lto_write_tree): ... this.
13952 (get_symbol_initial_value): New function.
13953 (lto_output_tree_1): Split out from ...
13954 (lto_output_tree): ... this. Write trees as series of SCCs
13955 using a DFS walk via DFS_write_tree.
13956 (struct sccs, struct scc_entry): New types.
13957 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
13958 (DFS_write_tree_body): New function.
13959 (DFS_write_tree): Likewise.
13960 (hash_tree): Likewise.
13961 (scc_entry_compare): Likewise.
13962 (hash_scc): Likewise.
13963 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
13964 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
13965 TREE_CHAIN as regular reference.
13966 (streamer_read_integer_cst): Remove.
13967 (streamer_get_pickled_tree): Adjust.
13968 * tree-streamer-out.c (streamer_write_chain): Disable streaming
13969 of DECL_EXTERNALs in BLOCK_VARS for now.
13970 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
13971 reference.
13972 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13973 Add hash value argument and record that if hashes are recorded
13974 in the cache.
13975 (streamer_tree_cache_insert_1): Adjust.
13976 (streamer_tree_cache_insert): Likewise.
13977 (streamer_tree_cache_insert_at): Rename to ...
13978 (streamer_tree_cache_replace_tree): ... this and adjust.
13979 (streamer_tree_cache_append): Adjust.
13980 (record_common_node): Likewise.
13981 (streamer_tree_cache_create): Add argument whether to
13982 record hash values together with trees.
13983 (streamer_tree_cache_delete): Adjust.
13984 * tree-streamer.h (struct streamer_tree_cache_d): Add
13985 vector of hashes.
13986 (streamer_read_integer_cst): Remove.
13987 (streamer_tree_cache_insert): Adjust.
13988 (streamer_tree_cache_append): Likewise.
13989 (streamer_tree_cache_insert_at): Rename to ...
13990 (streamer_tree_cache_replace_tree): ... this and adjust.
13991 (streamer_tree_cache_create): Add argument whether to record hashes.
13992 (streamer_tree_cache_get): Rename to ...
13993 (streamer_tree_cache_get_tree): ... this.
13994 (streamer_tree_cache_get_hash): New function.
13995 * tree.c (cache_integer_cst): New function.
13996 * tree.h (cache_integer_cst): Declare.
13997 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
13998 * lto-symtab.c (lto_varpool_replace_node): Only release
13999 DECL_INITIAL of non-prevailing decls.
14000 * varpool.c (varpool_remove_initializer): Do not release
14001 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14002
0de86a92
JU
140032013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14004
14005 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14006 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14007 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14008 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14009 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14010 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14011 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14012 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14013 instead of TARGET_64BIT.
14014 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14015 Require ISA_HAS_<D>DIV.
14016
74240413
RS
140172013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14018
14019 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14020 (mips*-*-linux*): Move default with_llsc setting to where other
14021 defaults are set.
14022 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14023 with_arch block.
14024 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14025 Likewise. Remove default with_tune setting. Move default float
14026 setting to its own block. Handle with_llsc in the same block as above.
14027
12211b99 140282013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14029
14030 PR rtl-optimization/57425
14031 PR rtl-optimization/57569
299a5f6a 14032 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14033 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14034 Changed all callers.
14035 (canon_anti_dependence): New function.
14036 * cse.c (check_dependence): Use canon_anti_dependence.
14037 * cselib.c (cselib_invalidate_mem): Likewise.
14038 * rtl.h (canon_anti_dependence): Declare.
14039
b259d352
JU
140402013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14041
14042 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14043 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14044 ".set mips3" for 64-bit targets.
14045
4de09b85
DC
140462013-06-15 Dehao Chen <dehao@google.com>
14047
14048 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14049 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14050 (gimple_check_call_args): Likewise.
14051 * value-prof.c (check_ic_target): Likewise.
14052 * ipa-inline.c (early_inliner): Likewise.
14053 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14054 * cgraph.c (cgraph_create_edge_1): Likewise.
14055 (cgraph_make_edge_direct): Likewise.
14056
d1aa4a76
MM
140572013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14058
14059 PR target/57615
14060 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14061 rs6000_output_move_128bit to handle emitting quad memory
14062 operations. Set attribute length to 8 bytes.
14063
12211b99 140642013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14065
14066 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14067 New pattern.
14068 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14069 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14070 (aarch64_<su>mlsl<mode>): Likewise.
14071
f5273574
MS
140722013-06-14 Mike Stump <mikestump@comcast.net>
14073
14074 * Makefile.in (TARGET_H): Add insn-codes.h.
14075
ef7e7ab2
AM
140762013-06-14 Alan Modra <amodra@gmail.com>
14077
14078 PR middle-end/57134
14079 PR middle-end/57586
14080 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14081 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14082 bitfield expansion when EXPAND_MEMORY.
14083 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14084
135faab6
MM
140852013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14086
14087 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14088 test for clearing quad memory on 32-bit later.
14089
948a1fd9
MG
140902013-06-13 Marc Glisse <marc.glisse@inria.fr>
14091
14092 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14093 (fold_negate_expr): Likewise.
14094 (fold_real_zero_addition_p): Handle vectors.
14095 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14096
0597fb9c
AM
140972013-06-14 Alan Modra <amodra@gmail.com>
14098
14099 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14100
e5b962d0
JH
141012013-06-13 Jan Hubicka <jh@suse.cz>
14102
14103 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14104 Local comdats are not externally visible.
14105 * symtab.c (dump_symtab_base): Dump externally visible.
14106 (verify_symtab_base): Verify back links in the symtab hash.
14107
a8355e51
BC
141082013-06-13 Bin Cheng <bin.cheng@arm.com>
14109
14110 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14111 CONVERT_EXPR as equal nodes.
14112
8f7e6e33
BC
141132013-06-13 Bin Cheng <bin.cheng@arm.com>
14114
22fc7d3d 14115 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14116
5d418483
MG
141172013-06-13 Marc Glisse <marc.glisse@inria.fr>
14118
14119 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14120 Generalize to complex and vector.
14121 * tree.c (build_all_ones_cst): New function.
14122 * tree.h (build_all_ones_cst): Declare it.
14123
50751417
AM
141242013-06-13 Alan Modra <amodra@gmail.com>
14125
14126 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14127 * config/rs6000/rs6000.md (signbittf2): New insn.
14128 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14129 (abstf2_internal, cmptf_internal2): Likewise.
14130 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14131
4b02c962 141322013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14133 Pat Haugen <pthaugen@us.ibm.com>
14134 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14135
14136 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14137 power8 byte, half-word, and quad-word atomic instructions.
14138 (emit_store_conditional): Likewise.
14139 (rs6000_expand_atomic_compare_and_swap): Likewise.
14140 (rs6000_expand_atomic_op): Likewise.
14141
14142 * config/rs6000/sync.md (larx): Add new modes for power8.
14143 (stcx): Likewise.
14144 (AINT): New mode iterator to include TImode as well as normal
14145 integer modes on power8.
14146 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14147 that VSX registers are not considered. Use AINT mode iterator
14148 instead of INT1 to allow inclusion of quad word atomic operations
14149 on power8.
14150 (load_locked<mode>): Likewise.
14151 (store_conditional<mode>): Likewise.
14152 (atomic_compare_and_swap<mode>): Likewise.
14153 (atomic_exchange<mode>): Likewise.
14154 (atomic_nand<mode>): Likewise.
14155 (atomic_fetch_<fetchop_name><mode>): Likewise.
14156 (atomic_nand_fetch<mode>): Likewise.
14157 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14158 each type.
14159 (ATOMIC): On power8, add QImode, HImode modes.
14160 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14161 modes that promote to SImode.
14162 (load_lockedti): Convert TImode arguments to PTImode, so that we
14163 get a guaranteed even/odd register pair.
14164 (load_lockedpti): Likewise.
14165 (store_conditionalti): Likewise.
14166 (store_conditionalpti): Likewise.
14167
14168 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14169 atomic load/store instructions.
14170 (HSI): Likewise.
14171
710b6cc1
RS
141722013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14173
14174 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14175 loads.
14176 (insn_count): New attribute, with most cases extracted from...
14177 (length): ...here. Redefine most cases in terms of insn_count.
14178 (single_insn): Delete.
14179 (can_delay): Use insn_count to check for single instructions.
14180 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14181 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14182 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14183 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14184 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14185 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14186 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14187 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14188 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14189 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14190 rather than "length".
14191 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14192 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14193 Use "insn_count" rather than "length".
14194 * config/mips/mips-dsp.md
14195 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14196 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14197 length attributes.
14198
1951f101
MG
141992013-06-12 Marc Glisse <marc.glisse@inria.fr>
14200
14201 PR tree-optimization/57361
14202 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14203
8b033a8a
SN
142042013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14205
22fc7d3d
UB
14206 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14207 to split.
8b033a8a
SN
14208 (aarch64_simd_combine<mode>): New instruction expansion.
14209 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14210 function prototype.
14211 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14212 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14213
ca0f62a8
JH
142142013-06-12 Jan Hubicka <jh@suse.cz>
14215
14216 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14217 decl has when in streaming stage.
14218 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14219 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14220
12211b99 142212013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14222
14223 PR target/57578
14224 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14225
bfdeda2c
JJ
142262013-06-12 Jakub Jelinek <jakub@redhat.com>
14227
14228 PR tree-optimization/57537
14229 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14230 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14231
a4fa02d1
RB
142322013-06-12 Richard Biener <rguenther@suse.de>
14233
14234 * data-streamer.h (streamer_write_char_stream): CSE
14235 obs->current_pointer.
14236 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14237 streamer_write_char_stream manually and optimize the resulting loop.
14238 (streamer_write_hwi_stream): Likewise.
14239
bbf9ad07
JH
142402013-06-12 Jan Hubicka <jh@suse.cz>
14241
14242 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14243 * cgraph.h (varpool_create_empty_node): Declare.
14244 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14245 duplicated nodes.
14246 * symtab.c (symtab_unregister_node): Be lax about missin entries
14247 in node hash.
14248 (symtab_get_node): Update comment.
14249 * varpool.c (varpool_create_empty_node): Break out from ...
14250 (varpool_node_for_decl): ... here.
14251 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14252
a53f90ad
EB
142532013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14254
14255 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14256 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14257 part. Use straight-line flow at the end.
14258 <COMPONENT_REF>: Remove superfluous else.
14259 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14260
946f9306
JJ
142612013-06-12 Jakub Jelinek <jakub@redhat.com>
14262
14263 PR target/56564
14264 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14265 target hook even for !TREE_PUBLIC decls. If no resolution info
14266 is available, return false for common and external decls.
14267
a7fca6f0
KP
142682013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14269
14270 * config/rl78/constraints.md (U): New constraint.
14271 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14272 valloc attribute.
14273
c7d8f446
MM
142742013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14275
14276 PR target/57589
14277 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14278 to allow returning address to AT_PLATFORM name.
14279
08346abd
JH
142802013-06-11 Jan Hubicka <jh@suse.cz>
14281
14282 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14283 * cgraph.h (symtab_node_base): Add weakref flag.
14284 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14285 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14286 (output_weakrefs): Use weakref flag.
14287 * fold-const.c (simple_operand_p): Handle WEAK.
14288 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14289 * ipa.c (varpool_externally_visible_p): Drop weakref.
14290 (function_and_variable_visibility): Update comment; fix weakref
14291 sanity checks; do not clear DECL_WEAK on them.
14292 * lto-cgraph.c (lto_output_node): update.
14293 (lto_output_varpool_node): Update.
14294 (input_overwrite_node): Update.
14295 (input_node): Update.
14296 (input_varpool_node): Update.
14297 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14298 (lto_symtab_merge_symbols): Add sanity check.
14299 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14300 * passes.c (rest_of_decl_compilation): Set static flag, too.
14301 * symtab.c (dump_symtab_base): Dump weakref.
14302 (verify_symtab_base): Sanity check weakrefs.
14303 (symtab_make_decl_local): Remove duplicated code.
14304 (symtab_alias_ultimate_target): Simplify.
14305 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14306
2e6a2f88
TV
143072013-06-11 Tom de Vries <tom@codesourcery.com>
14308
14309 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14310 sequence_vect == NULL.
14311
d9af3652
DD
143122013-06-11 DJ Delorie <dj@redhat.com>
14313
14314 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14315 (rl78_unwind_word_mode): New.
14316
ffa66012
DM
143172013-06-11 David Malcolm <dmalcolm@redhat.com>
14318
14319 * final.c (debug_prefix_maps): Make static.
14320
783f2d35
DM
143212013-06-11 David Malcolm <dmalcolm@redhat.com>
14322
14323 * function.c (initial_trampoline): Remove stray copy.
14324
7af26def
SN
143252013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14326
14327 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14328
97756c0e
MJ
143292013-06-11 Martin Jambor <mjambor@suse.cz>
14330
14331 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14332 within bounds at the beginning of the function.
14333
2c7b8bf6
AM
143342013-06-11 Alan Modra <amodra@gmail.com>
14335
14336 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14337 reporting.
14338 (get_named_section): Don't NULL !DECL_P decl.
14339
77cea46e
IZ
143402013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14341
14342 * doc/invoke.texi (core-avx2): Document.
14343 (slm): Likewise.
14344 (atom): Updated with MOVBE.
14345
888f0920
RB
143462013-06-11 Richard Biener <rguenther@suse.de>
14347
22fc7d3d 14348 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14349
6b438d58
AB
143502013-06-11 Anton Blanchard <anton@samba.org>
14351
14352 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14353 correct shift value in little-endian mode.
14354
3bc66938
JJ
143552013-06-11 Jakub Jelinek <jakub@redhat.com>
14356
14357 PR target/56564
14358 * varasm.c (get_variable_align): Move #endif to the right place.
14359
a5dc7f88
CC
143602013-06-10 Cary Coutant <ccoutant@google.com>
14361
14362 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14363 for hash so that hash table traversal order is deterministic.
14364
19be72ab 143652013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14366 Pat Haugen <pthaugen@us.ibm.com>
14367 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14368
14369 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14370 of vectors in GPRS if they are direct moves or quad word load or
14371 store moves.
14372
14373 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14374 declaration.
14375 (direct_move_p): Likewise.
14376 (quad_load_store_p): Likewise.
14377
14378 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14379 classes into bins based on the physical register type.
14380 (reg_class_to_reg_type): Likewise.
14381 (IS_STD_REG_TYPE): Likewise.
14382 (IS_FP_VECT_REG_TYPE): Likewise.
14383 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14384 use direct move instructions.
14385 (reload_gpr_vsx): Likewise.
14386 (reload_vsx_gpr): Likewise.
14387 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14388 information that is a simplification of register classes. Also
14389 precalculate direct move reload helpers.
14390 (direct_move_p): New function to return true if the operation can
14391 be done as a direct move instruciton.
14392 (quad_load_store_p): New function to return true if the operation
14393 is a quad memory operation.
14394 (rs6000_legitimize_address): If quad memory, only allow register
14395 indirect for TImode addresses.
14396 (rs6000_legitimate_address_p): Likewise.
14397 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14398 (rs6000_reload_register_type): Likewise.
14399 (register_to_reg_type): Return register type.
14400 (rs6000_secondary_reload_simple_move): New helper function for
14401 secondary reload and secondary memory needed to identify anything
14402 that is a simple move, and does not need reloading.
14403 (rs6000_secondary_reload_direct_move): New helper function for
14404 secondary reload to identify cases that can be done with several
14405 instructions via the direct move instructions.
14406 (rs6000_secondary_reload_move): New helper function for secondary
14407 reload to identify moves between register types that can be done.
14408 (rs6000_secondary_reload): Add support for quad memory operations
14409 and for direct move.
14410 (rs6000_secondary_memory_needed): Likewise.
14411 (rs6000_debug_secondary_memory_needed): Change argument names.
14412 (rs6000_output_move_128bit): New function to return the move to
14413 use for 128-bit moves, including knowing about the various
14414 limitations of quad memory operations.
14415
14416 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14417 memory operations. call rs6000_output_move_128bit for the actual
14418 instruciton(s) to generate.
14419 (vsx_movti_64bit): Likewise.
14420
14421 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14422 (UNSPEC_P8V_MTVSRWZ): Likewise.
14423 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14424 (UNSPEC_P8V_MTVSRD): Likewise.
14425 (UNSPEC_P8V_XXPERMDI): Likewise.
14426 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14427 (UNSPEC_FUSION_GPR): Likewise.
14428 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14429 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14430 (f32_sv): Likewise.
14431 (f32_dm): Likewise.
14432 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14433 loads and direct move instructions.
14434 (zero_extendsidi2_lfiwzx): Likewise.
14435 (extendsidi2_lfiwax): Likewise.
14436 (extendsidi2_nocell): Likewise.
14437 (floatsi<mode>2_lfiwax): Likewise.
14438 (lfiwax): Likewise.
14439 (floatunssi<mode>2_lfiwzx): Likewise.
14440 (lfiwzx): Likewise.
14441 (fix_trunc<mode>_stfiwx): Likewise.
14442 (fixuns_trunc<mode>_stfiwx): Likewise.
14443 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14444 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14445 (parity<mode>2_cmpb): Set length/type attr.
14446 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14447 for 'mr.' to fast_compare.
14448 (bpermd_<mode>): Change type attr to popcnt.
14449 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14450 (p8_mtvsrwz_1): Likewise.
14451 (p8_mtvsrwz_2): Likewise.
14452 (reload_fpr_from_gpr<mode>): Likewise.
14453 (p8_mtvsrd_1): Likewise.
14454 (p8_mtvsrd_2): Likewise.
14455 (p8_xxpermdi_<mode>): Likewise.
14456 (reload_vsx_from_gpr<mode>): Likewise.
14457 (reload_vsx_from_gprsf): Likewise.
14458 (p8_mfvsrd_3_<mode>): LIkewise.
14459 (reload_gpr_from_vsx<mode>): Likewise.
14460 (reload_gpr_from_vsxsf): Likewise.
14461 (p8_mfvsrd_4_disf): Likewise.
14462 (multi-word GPR splits): Do not split direct moves or quad memory
14463 operations.
14464
16876bdc
DM
144652013-06-10 David Malcolm <dmalcolm@redhat.com>
14466
14467 * tree-into-ssa.c (interesting_blocks): Make static.
14468
df8a1d28
JJ
144692013-06-10 Jakub Jelinek <jakub@redhat.com>
14470
14471 PR target/56564
14472 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14473 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14474 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14475 (get_variable_align): New function.
14476 (get_variable_section, emit_bss, emit_common,
14477 assemble_variable_contents, place_block_symbol): Use
14478 get_variable_align instead of DECL_ALIGN.
14479 (assemble_noswitch_variable): Add align argument, use it
14480 instead of DECL_ALIGN.
14481 (assemble_variable): Adjust caller. Use get_variable_align
14482 instead of DECL_ALIGN.
14483 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14484 caller.
14485 (DATA_ABI_ALIGNMENT): Define.
14486 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14487 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14488 opt is false, only return the psABI mandated alignment increase.
14489 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14490 (DATA_ABI_ALIGNMENT): ... this.
14491 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14492 (DATA_ABI_ALIGNMENT): ... this.
14493 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14494 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14495 (DATA_ABI_ALIGNMENT): ... this.
14496 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14497 * doc/tm.texi: Regenerated.
14498
57b29ca6
UB
144992013-06-10 Uros Bizjak <ubizjak@gmail.com>
14500
14501 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14502 cmp_code to construct REG_EQUAL note.
14503
3e56ed50
JJ
145042013-06-09 Jakub Jelinek <jakub@redhat.com>
14505
14506 PR target/57568
14507 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14508 that operands[2] doesn't overlap with operands[0].
14509
74fe2a1d
DE
145102013-06-09 David Edelsohn <dje.gcc@gmail.com>
14511 Jan Hubicka <jh@suse.cz>
14512
14513 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14514 hack to mark symbols as used.
14515
ed52a84e
VM
145162013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14517
14518 PR rtl-optimization/57559
14519 * lra-constraints.c (process_alt_operands): Don't discourage
14520 memory with known offset for offsetable memory constraint.
14521 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14522
299316ed
EB
145232013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14524
14525 * varasm.c (struct oc_local_state): Reorder fields.
14526 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14527 and adjust accordingly.
14528 (output_constructor): Reorder initialization code and adjust call to
14529 output_constructor_bitfield.
14530
88ac60d3
JH
145312013-06-07 Jan Hubicka <jh@suse.cz>
14532
14533 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14534
4cdce1a8
DM
145352013-06-07 David Malcolm <dmalcolm@redhat.com>
14536
14537 * tree-object-size.c (unknown): Make const.
14538
b5e0425c
AK
145392013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14540
14541 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14542 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14543 for last alternative in the cpu_facility attribute.
14544
79678d04
KT
145452013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14546
14547 PR target/56315
14548 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14549 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14550 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14551 * config/arm/constraints.md (Dg): New constraint.
14552 * config/arm/neon.md (xordi3_neon): Remove.
14553 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14554 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14555
b31ddbdb
KT
145562013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14557
14558 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14559 Clean up alternatives.
14560
8f90b7d4
AM
145612013-06-07 Alan Modra <amodra@gmail.com>
14562
14563 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14564 va_list_gpr_size.
14565
961ce119
AM
145662013-06-07 Alan Modra <amodra@gmail.com>
14567
14568 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14569
33e49835
KT
145702013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14571
14572 * config/arm/constraints.md (Df): New constraint.
14573 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14574 Correct length attribute for last two alternatives.
14575
acd17ae6
AM
145762013-06-07 Alan Modra <amodra@gmail.com>
14577
14578 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14579 override user -mfp-in-toc.
14580 (offsettable_ok_by_alignment): Consider just the current access
14581 rather than the whole object, unless BLKmode. Handle
14582 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14583 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14584 for -mcmodel=medium.
14585 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14586 override user -mfp-in-toc or -msum-in-toc. Default to
14587 -mno-fp-in-toc for -mcmodel=medium.
14588
73310b0e
DD
145892013-06-06 DJ Delorie <dj@redhat.com>
14590
14591 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14592 TARGET_VALID_POINTER_MODE.
14593
0bd62dca 145942013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14595 Pat Haugen <pthaugen@us.ibm.com>
14596 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14597
14598 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14599 Document new power8 builtins.
14600
14601 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14602 condition code register, to allow 128-bit logical operations to be
14603 done in the VSX or GPR registers.
14604 (nor<mode>3): Use the canonical form for nor.
14605 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14606 vclz*, and vpopcnt* vector instructions.
14607 (nand<mode>3): Likewise.
14608 (orc<mode>3): Likewise.
14609 (clz<mode>2): LIkewise.
14610 (popcount<mode>2): Likewise.
14611
14612 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14613 that only the GPRs are recognized.
14614
14615 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14616 support for new power8 builtins.
14617
14618 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14619 builtin functions.
14620 (xscvdpspn): Likewise.
14621 (vclz): Likewise.
14622 (vclzb): Likewise.
14623 (vclzh): Likewise.
14624 (vclzw): Likewise.
14625 (vclzd): Likewise.
14626 (vpopcnt): Likewise.
14627 (vpopcntb): Likewise.
14628 (vpopcnth): Likewise.
14629 (vpopcntw): Likewise.
14630 (vpopcntd): Likewise.
14631 (vgbbd): Likewise.
14632 (vmrgew): Likewise.
14633 (vmrgow): Likewise.
14634 (eqv): Likewise.
14635 (eqv_v16qi3): Likewise.
14636 (eqv_v8hi3): Likewise.
14637 (eqv_v4si3): Likewise.
14638 (eqv_v2di3): Likewise.
14639 (eqv_v4sf3): Likewise.
14640 (eqv_v2df3): Likewise.
14641 (nand): Likewise.
14642 (nand_v16qi3): Likewise.
14643 (nand_v8hi3): Likewise.
14644 (nand_v4si3): Likewise.
14645 (nand_v2di3): Likewise.
14646 (nand_v4sf3): Likewise.
14647 (nand_v2df3): Likewise.
14648 (orc): Likewise.
14649 (orc_v16qi3): Likewise.
14650 (orc_v8hi3): Likewise.
14651 (orc_v4si3): Likewise.
14652 (orc_v2di3): Likewise.
14653 (orc_v4sf3): Likewise.
14654 (orc_v2df3): Likewise.
14655
14656 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14657 allow power8 quad mode in 64-bit.
14658 (rs6000_builtin_vectorized_function): Add support to vectorize
14659 ISA 2.07 count leading zeros, population count builtins.
14660 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14661 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14662 (builtin_function_type): Add vgbbd builtin function which takes an
14663 unsigned argument.
14664 (altivec_expand_vec_perm_const): Add support for new power8 merge
14665 instructions.
14666
14667 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14668 that does not include TImdoe for use with 32-bit.
14669 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14670 instructions.
14671 (UNSPEC_VSX_CVDPSPN): Likewise.
14672 (vsx_xscvdpspn): Likewise.
14673 (vsx_xscvspdpn): Likewise.
14674 (vsx_xscvdpspn_scalar): Likewise.
14675 (vsx_xscvspdpn_directmove): Likewise.
14676 (vsx_and<mode>3): Split logical operations into 32-bit and
14677 64-bit. Add support to do logical operations on TImode as well as
14678 VSX vector types. Allow logical operations to be done in either
14679 VSX registers or in general purpose registers in 64-bit mode. Add
14680 splitters if GPRs were used. For AND, add clobber of CCmode to
14681 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14682 encoding.
14683 (vsx_and<mode>3_32bit): Likewise.
14684 (vsx_and<mode>3_64bit): Likewise.
14685 (vsx_ior<mode>3): Likewise.
14686 (vsx_ior<mode>3_32bit): Likewise.
14687 (vsx_ior<mode>3_64bit): Likewise.
14688 (vsx_xor<mode>3): Likewise.
14689 (vsx_xor<mode>3_32bit): Likewise.
14690 (vsx_xor<mode>3_64bit): Likewise.
14691 (vsx_one_cmpl<mode>2): Likewise.
14692 (vsx_one_cmpl<mode>2_32bit): Likewise.
14693 (vsx_one_cmpl<mode>2_64bit): Likewise.
14694 (vsx_nor<mode>3): Likewise.
14695 (vsx_nor<mode>3_32bit): Likewise.
14696 (vsx_nor<mode>3_64bit): Likewise.
14697 (vsx_andc<mode>3): Likewise.
14698 (vsx_andc<mode>3_32bit): Likewise.
14699 (vsx_andc<mode>3_64bit): Likewise.
14700 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14701 and xxlorc instructions.
14702 (vsx_eqv<mode>3_64bit): Likewise.
14703 (vsx_nand<mode>3_32bit): Likewise.
14704 (vsx_nand<mode>3_64bit): Likewise.
14705 (vsx_orc<mode>3_32bit): Likewise.
14706 (vsx_orc<mode>3_64bit): Likewise.
14707
14708 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14709
14710 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14711 instruction.
14712 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14713 (p8_vmrgow): Likewise.
14714 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14715 GPRs to be split under VSX.
14716 (p8v_clz<mode>2): Add power8 count leading zero support.
14717 (p8v_popcount<mode>2): Add power8 population count support.
14718 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14719 support.
14720
14721 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14722 instruction.
14723
14724 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14725 builtin functions.
14726 (vec_nand): Likewise.
14727 (vec_vclz): Likewise.
14728 (vec_vclzb): Likewise.
14729 (vec_vclzd): Likewise.
14730 (vec_vclzh): Likewise.
14731 (vec_vclzw): Likewise.
14732 (vec_vgbbd): Likewise.
14733 (vec_vmrgew): Likewise.
14734 (vec_vmrgow): Likewise.
14735 (vec_vpopcnt): Likewise.
14736 (vec_vpopcntb): Likewise.
14737 (vec_vpopcntd): Likewise.
14738 (vec_vpopcnth): Likewise.
14739 (vec_vpopcntw): Likewise.
14740
37684c46
VM
147412013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14742
14743 PR rtl-optimization/57468
14744 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14745 spilled pseudos.
14746
d89ae27c
VM
147472013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14748
14749 PR rtl-optimization/57459
14750 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14751 type when setting live regs.
14752
3597e113
VM
147532013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14754
14755 * config/s390/s390.opt (mlra): New option.
14756 * config/s390/s390.c (s390_decompose_address): Check displacement
14757 for all registers for LRA.
14758 (s390_secondary_reload): Don't used secondary reloads for LRA.
14759 (s390_lra_p): New function.
14760 (TARGET_LRA_P): Define.
14761 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
14762 of attribute cpu_facility to zarch for the last alternative.
14763 (*cmpmem_short): Ditto.
14764
01037aeb
EB
147652013-06-06 Eric Botcazou <ebotcazou@adacore.com>
14766
14767 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
14768 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
14769 (arm_expand_prologue): Likewise.
14770
3371a64f
TJ
147712013-06-06 Teresa Johnson <tejohnson@google.com>
14772
14773 PR c++/53743
14774 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
14775 as this is now done by redirect_edge_and_branch_force.
14776 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
14777 barriers, and fix interaction with splitting.
14778 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
14779 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
14780 reflect changes made in the routine.
14781 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
14782 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
14783 since this is called in cfglayout mode, and replace partition fixup
14784 with assert as that is now done by force_nonfallthru_and_redirect.
14785 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
14786 already be marked with region crossing note.
14787 (insert_section_boundary_note): Make non-static, gate on flag
14788 has_bb_partition, rewrite to also check for multiple partitions.
14789 (rest_of_handle_reorder_blocks): Remove call to
14790 insert_section_boundary_note, now done later during free_cfg.
14791 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
14792 * bb-reorder.h (insert_section_boundary_note): Declare.
14793 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
14794 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
14795 invoke insert_section_boundary_note.
14796 (try_redirect_by_replacing_jump): Remove unnecessary
14797 check for region crossing note.
14798 (fixup_partition_crossing): New function.
14799 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
14800 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
14801 in non-cfglayout mode.
14802 (force_nonfallthru_and_redirect): Fixup partition boundaries,
14803 remove old code that tried to do this. Emit barrier correctly
14804 when we are in cfglayout mode.
14805 (last_bb_in_partition): New function.
14806 (rtl_split_edge): Correctly fixup partition boundaries.
14807 (commit_one_edge_insertion): Remove old code that tried to
14808 fixup region crossing edge since this is now handled in
14809 split_block, and set up insertion point correctly since
14810 block may now end in a jump.
14811 (verify_hot_cold_block_grouping): Guard against checking when not in
14812 linearized RTL mode.
14813 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
14814 notes.
14815 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
14816 rtl_verify_flow_info, so not called in cfglayout mode.
14817 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
14818 (fixup_reorder_chain): Remove old code that attempted to fixup region
14819 crossing note as this is now handled in force_nonfallthru_and_redirect.
14820 (duplicate_insn_chain): Don't duplicate switch section notes.
14821 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
14822 note.
14823 * basic-block.h (emit_barrier_after_bb): Declare.
14824
66071e10
KT
148252013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14826
14827 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
14828 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
14829 arm_usatsihi): Adjust alternatives for arm_restrict_it.
14830
0e26bf3d
KT
148312013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14832
14833 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
14834 where appropriate.
14835 * config/arm/ldmstm.md: Regenerate.
14836
12b4e7ef
KT
148372013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14838
14839 * config/arm/sync.md (atomic_loaddi_1):
14840 Disable predication for arm_restrict_it.
14841 (arm_load_exclusive<mode>): Likewise.
14842 (arm_load_exclusivesi): Likewise.
14843 (arm_load_exclusivedi): Likewise.
14844 (arm_load_acquire_exclusive<mode>): Likewise.
14845 (arm_load_acquire_exclusivesi): Likewise.
14846 (arm_load_acquire_exclusivedi): Likewise.
14847 (arm_store_exclusive<mode>): Likewise.
14848 (arm_store_exclusive<mode>): Likewise.
14849 (arm_store_release_exclusivedi): Likewise.
14850 (arm_store_release_exclusive<mode>): Likewise.
14851
15d16c8a
RB
148522013-06-06 Richard Biener <rguenther@suse.de>
14853
14854 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
14855 after LTO_null.
14856 (lto_tag_is_tree_code_p): Adjust.
14857 (lto_tag_is_gimple_code_p): Likewise.
14858 (lto_gimple_code_to_tag): Likewise.
14859 (lto_tag_to_gimple_code): Likewise.
14860 (lto_tree_code_to_tag): Likewise.
14861 (lto_tag_to_tree_code): Likewise.
14862 * data-streamer.h (streamer_write_hwi_in_range): Use
14863 uhwi streaming to stream the normalized range.
14864 (streamer_read_hwi_in_range): Likewise.
14865
17a7fc37
KT
148662013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14867
14868 * config/arm/arm.md (enabled_for_depr_it): New attribute.
14869 (predicable_short_it): Likewise.
14870 (predicated): Likewise.
14871 (enabled): Handle above.
14872 (define_cond_exec): Set predicated attribute to yes.
14873
b57ca59b
MS
148742013-06-05 Mike Stump <mikestump@comcast.net>
14875
14876 * gdbinit.in (__FUNCTION__): Add.
14877
c1e183a9
UB
148782013-06-05 Uros Bizjak <ubizjak@gmail.com>
14879
14880 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
14881 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
14882
0378bddb
JH
148832013-06-05 Jan Hubicka <jh@suse.cz>
14884
14885 * varasm.c (mark_decl_referenced): Revert the removal until targets
14886 are fixed.
14887
8f8a2057
DE
148882013-06-05 David Edelsohn <dje.gcc@gmail.com>
14889
14890 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
14891 instead of mark_decl_referenced.
14892
edb983b2
JH
148932013-06-05 Jan Hubicka <jh@suse.cz>
14894
14895 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
14896 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
14897 and symtab_used_from_object_file_p.
14898 (cgraph_make_node_local_1): Clear forced_by_abi.
14899 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
14900 * cgraph.h (symtab_node_base): Add forced_by_abi.
14901 (decide_is_variable_needed): Remove.
14902 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
14903 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
14904 (decide_is_symbol_needed): ... this one; handle symbols in general;
14905 always analyze virtuals; honnor forced_by_abi.
14906 (cgraph_finalize_function): Update.
14907 (varpool_finalize_decl): Update.
14908 (symbol_defined_and_needed): Remove.
14909 (analyze_functions): Update.
14910 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14911 output_refs, input_overwrite_node): Handle forced_by_abi.
14912 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
14913 (address_taken_from_non_vtable_p): ... this one.
14914 (comdat_can_be_unshared_p_1): New function.
14915 (cgraph_comdat_can_be_unshared_p): Rename to ...
14916 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
14917 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
14918 (function_and_variable_visibility): Clear forced_by_abi as needed.
14919 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
14920 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
14921 * symtab.c (dump_symtab_base): Dump forced_by_abi.
14922 * varpool.c (decide_is_variable_needed): Remove.
14923
9912dbe5
KT
149242013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14925
14926 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
14927 (arm_option_override): Override arm_restrict_it where appropriate.
14928 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
14929 * config/arm/arm.opt (mrestrict-it): New command-line option.
14930 * doc/invoke.texi: Document -mrestrict-it.
14931
34c136b6
DM
149322013-06-05 David Malcolm <dmalcolm@redhat.com>
14933
14934 * tsan.c (tsan_atomic_table): Make const.
14935
a367df53
RB
149362013-06-05 Richard Biener <rguenther@suse.de>
14937
14938 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
14939 index associated with the tree we are supposed to replace.
14940 * tree-streamer-out.c (pack_ts_base_value_fields): Output
14941 TREE_ASM_WRITTEN as zero for everything but SSA names.
14942
70d51a19
DM
149432013-06-05 David Malcolm <dmalcolm@redhat.com>
14944
14945 * tree-ssa-structalias.c (call_stmt_vars): Make static.
14946
b9bd2075
JH
149472013-06-04 Jan Hubicka <jh@suse.cz>
14948
14949 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
14950 (input_node, input_varpool_node): Handle correctly external same
14951 body aliases.
14952 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
14953 nodes at ltrans stage.
14954
aaae719d
JH
149552013-06-04 Jan Hubicka <jh@suse.cz>
14956
14957 * ipa-inline.c (update_caller_keys): Fix availability test.
14958 (update_callee_keys): Likewise.
14959 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
14960 to follow ELF standard.
14961
107eea2c
JU
149622013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
14963
14964 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
14965 (mips64r5900el-*-elf*): New configurations.
14966 * config/mips/mips-cpus.def (r5900): New processor.
14967 * config/mips/mips-tables.opt: Regenerate.
14968 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
14969 (mips_issue_rate): Handle PROCESSOR_R5900.
14970 (mips_reorg_process_insns): Force reorder mode for the R5900.
14971 * config/mips/mips.h (TARGET_MIPS5900): Define.
14972 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
14973 TARGET_MIPS5900.
14974 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
14975 TARGET_MIPS5900.
14976 * config/mips/mips.md (processor): Add r5900.
14977 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
14978
b7342d25
IB
149792013-06-04 Ian Bolton <ian.bolton@arm.com>
14980
14981 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
14982 into function to generate MOVI instruction.
c1e183a9 14983 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
14984 (aarch64_preferred_simd_mode): Turn into wrapper.
14985 (aarch64_output_scalar_simd_mov_immediate): New function.
14986 * config/aarch64/aarch64-protos.h: Add prototype for above.
14987
81c2dfb9
IB
149882013-06-04 Ian Bolton <ian.bolton@arm.com>
14989
14990 * config/aarch64/aarch64.c (simd_immediate_info): Remove
14991 element_char member.
14992 (sizetochar): Return signed char.
14993 (aarch64_simd_valid_immediate): Remove elchar and other
14994 unnecessary variables.
14995 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
14996 Calculate element_char as required.
14997 * config/aarch64/aarch64-protos.h: Update and move prototype
14998 for aarch64_output_simd_mov_immediate.
14999 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15000 Update arguments.
15001
48063b9d
IB
150022013-06-04 Ian Bolton <ian.bolton@arm.com>
15003
15004 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15005 information completed by aarch64_simd_valid_immediate.
15006 (aarch64_legitimate_constant_p): Update arguments.
15007 (aarch64_simd_valid_immediate): Work with struct rather than many
15008 pointers.
15009 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15010 (aarch64_simd_make_constant): Update arguments.
15011 (aarch64_output_simd_mov_immediate): Work with struct rather than
15012 many pointers. Output immediate directly rather than as operand.
15013 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15014 Update prototype.
15015 * config/aarch64/constraints.md (Dn): Update arguments.
15016
3ea63f60
IB
150172013-06-04 Ian Bolton <ian.bolton@arm.com>
15018
15019 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15020 longer static.
15021 (aarch64_simd_immediate_valid_for_move): Remove.
15022 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15023 (aarch64_simd_make_constant): Update call.
15024 (aarch64_output_simd_mov_immediate): Update call.
15025 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15026 Add prototype.
15027 * config/aarch64/constraints.md (Dn): Update call.
15028
d8edd899
IB
150292013-06-04 Ian Bolton <ian.bolton@arm.com>
15030
15031 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15032 return type to bool for prototype.
15033 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15034 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15035 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15036
44b20bb8
CM
150372013-06-04 Catherine Moore <clm@codesourcery.com>
15038
15039 * config/mips/mips.opt (meva): New.
c1e183a9 15040 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15041 (ASM_SPEC): Handle -meva.
15042 * doc/invoke.texi (meva): Document.
15043
52befbd8
AM
150442013-06-04 Alan Modra <amodra@gmail.com>
15045
15046 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15047 constant output.
15048
aadaf24e
KT
150492013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15050
15051 * rtl.def: Add extra fourth optional field to define_cond_exec.
15052 * gensupport.c (process_one_cond_exec): Process attributes from
15053 define_cond_exec.
15054 * doc/md.texi: Document fourth field in define_cond_exec.
15055
0cd9e9ee
EB
150562013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15057
15058 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15059 out the processing order as in store_bit_field_1.
15060
cb0f665d
JH
150612013-06-04 Jan Hubicka <jh@suse.cz>
15062
15063 PR middle-end/57500
15064 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15065 non-VAR_DECL node if it does not exist yet.
15066
53984b9b
RS
150672013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15068
15069 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15070 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15071 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15072 target_cpu_default setting.
15073
5d318fd4
TJ
150742013-06-03 Teresa Johnson <tejohnson@google.com>
15075
15076 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15077 default to -fopt-info=optimized instead of all.
15078 * doc/invoke.texi: Ditto.
15079 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15080 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15081 (execute_vect_slp): Emit BB vectorization success under
15082 MSG_OPTIMIZED_LOCATIONS.
15083 * tree-vect-slp.c (vect_slp_transform_bb): Change
15084 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15085 * tree-vect-loop.c (vect_transform_loop): Ditto.
15086
ec3af349
JM
150872013-06-03 Jason Merrill <jason@redhat.com>
15088
15089 PR c++/57415
15090 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15091 Use TARGET_EXPR for C++.
15092
1baf9159
JJ
150932013-06-03 Jakub Jelinek <jakub@redhat.com>
15094
15095 PR rtl-optimization/57268
0cd9e9ee 15096 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15097 if DEBUG_INSN_P (insn).
15098
15099 Reapply
15100 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15101
15102 PR rtl-optimization/57268
15103 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15104 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15105
0f1d3965
YR
151062013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15107
15108 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15109 (ix86_avoid_lea_for_addr): Likewise.
15110 (exact_dependency_1): Likewise.
15111 (ix86_adjust_cost): Likewise.
15112 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15113 removed.
15114 (do_reorder_for_imul): Fix typo, formatting and
15115 !reload_completed check removed.
15116 (ix86_sched_reorder): Fix typo and formatting.
15117 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15118 list.
15119
3bc30db4
SN
151202013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15121
15122 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15123
19cc6fac
EB
151242013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15125
15126 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15127 <STRING_CST>: Likewise.
15128 <VECTOR_CST>: Likewise.
15129
c68a6e08
JW
151302013-06-01 Janus Weil <janus@gcc.gnu.org>
15131 Mikael Morin <mikael@gcc.gnu.org>
15132
15133 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15134 * config.in: Regenerated.
15135 * configure: Regenerated.
15136
38e55e5c
JH
151372013-06-01 Jan Hubicka <jh@suse.cz>
15138
15139 PR middle-end/57366
15140 * cgraphunit.c (compile): When weakref is not supported,
15141 set up transparent aliases before final output pass.
15142 * varasm.c (assemble_alias): Do not try to do it here.
15143
eb51d2ff
JH
151442013-06-01 Jan Hubicka <jh@suse.cz>
15145
15146 PR middle-end/57467
15147 * passes.c (for_per_function): Skip unanalyzed functions.
15148
40a7fe1e
JH
151492013-06-01 Jan Hubicka <jh@suse.cz>
15150
15151 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15152 (lto_symtab_merge_symbols_1): ... this one.
15153 (lto_symtab_merge_cgraph_nodes): Rename to ...
15154 (lto_symtab_merge_symbols): ... this one; simplify.
15155 * cgraph.c (same_body_aliases_done): Rename to ...
15156 (cpp_implicit_aliases_done): ... this one.
15157 (cgraph_create_function_alias): Update.
15158 (cgraph_same_body_alias): Update.
c1e183a9 15159 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15160 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15161 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15162 (cgraph_node): Remove same_body_alias.
15163 (varpool_node): Remove alias_of and extra_name_alias.
15164 (same_body_aliases_done): Rename to ..
15165 (cpp_implicit_aliases_done): ... this one.
15166 (symtab_alias_ultimate_target): Add default parameter.
15167 (symtab_resolve_alias): New function.
15168 (fixup_same_cpp_alias_visibility): Declare.
15169 (cgraph_function_node): Add default parameter.
15170 (cgraph_node_asm_name): Likewise.
15171 (cgraph_function_or_thunk_node): Add default parameter; do
15172 not ICE when it is NULL.
15173 (varpool_variable_node): Likewise.
15174 * tree-emutls.c (create_emultls_var): Update.
15175 (ipa_lower_emutls): Update.
15176 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15177 (cgraph_reset_node): Reset alias info.
15178 (cgraph_finalize_function): Update.
15179 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15180 (analyze_function): Simplify.
15181 (cgraph_process_same_body_aliases): Simplify.
15182 (analyze_functions): Fixup same body aliases.
15183 (handle_alias_pairs): Simplify.
15184 (assemble_thunk): Update.
15185 (assemble_thunks_and_aliases): Update.
15186 (output_weakrefs): Rewrite.
15187 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15188 (lto_output_varpool_node): Likewise.
15189 (compute_ltrans_boundary): Remve assert.
15190 (get_alias_symbol): New functoin.
15191 (input_node): Rewrite alias handling.
15192 (input_varpool_node): Likewise.
15193 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15194 * ipa.c (process_references): Handle weakrefs correctly.
15195 (symtab_remove_unreachable_nodes): Likewise.
15196 * trans-mem.c (get_cg_data): Update.
15197 (ipa_tm_create_version_alias): Update.
15198 (ipa_tm_execute): Update.
15199 * symtab.c (dump_symtab_base): Dump aliases.
15200 (verify_symtab_base): Verify aliases.
15201 (symtab_node_availability): New function.
15202 (symtab_alias_ultimate_target): Simplify.
15203 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15204 handle all the fixup cases.
15205 (symtab_resolve_alias): New function.
15206 * passes.c (ipa_write_summaries): Handle weakrefs.
15207 * varpool.c (varpool_analyze_node): Simplify.
15208 (assemble_aliases): Update.
15209 (varpool_create_variable_alias): Simplify.
15210 (varpool_extra_name_alias): Simplify.
15211 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15212 (lto_symtab_merge_symbols): ... this one.
15213
21759881
DT
152142013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15215
15216 Revert
15217 PR rtl-optimization/57268
15218 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15219 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15220
daf4e940
TB
152212013-06-01 Tobias Burnus <burnus@net-b.de>
15222
15223 Partially reverted:
15224 2013-05-31 Tobias Burnus <burnus@net-b.de>
15225
15226 PR middle-end/57073
15227 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15228 further up.
15229
c359d8d0
DT
152302013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15231
15232 PR rtl-optimization/57268
15233 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15234 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15235
4172215d
EB
152362013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15237
15238 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15239 unordered comparison operators when -fno-trapping-math is in effect
15240 on the e500.
15241 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15242 and implement unordered comparison operators properly on the e500.
15243
a8c50132
EB
152442013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15245
15246 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15247 for constant scalar integers.
15248 (simplify_relational_operation_1): Likewise.
15249
44626634
SB
152502013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15251
15252 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15253 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15254 Fix comment.
15255
55805e54
YR
152562013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15257 Igor Zamyatin <igor.zamyatin@intel.com>
15258
15259 Silvermont (SLM) architecture performance tuning.
15260 * config/i386/i386.h (enum ix86_tune_indices): Add
15261 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15262 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15263
15264 * config/i386/i386.c (initial_ix86_tune_features)
15265 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15266 (ix86_lea_outperforms): Handle Silvermont tuning.
15267 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15268 call.
15269 (ix86_use_lea_for_mov): Likewise.
15270 (ix86_avoid_lea_for_addr): Likewise.
15271 (ix86_lea_for_add_ok): Likewise.
15272 (exact_dependency_1): New function.
15273 (exact_store_load_dependency): Likewise.
15274 (ix86_adjust_cost): Handle Silvermont tuning.
15275 (do_reoder_for_imul): Likewise.
15276 (swap_top_of_ready_list): New function.
15277 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15278
15279 * config/i386/i386.md (peepholes that split memory operand in fp
15280 converts): New.
15281
e19c9de2
MS
152822013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15283
15284 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15285 Remove un-necessary braces.
15286
38e6c9a6
MS
152872013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15288
15289 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15290 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15291
e3530904
TB
152922013-05-31 Tobias Burnus <burnus@net-b.de>
15293
15294 PR middle-end/57073
c1e183a9 15295 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15296
b6af05a9
KT
152972013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15298
15299 PR target/56315
15300 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15301 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15302 * config/arm/neon.md (iordi3_neon): Remove.
15303 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15304 * config/arm/predicates.md (imm_for_neon_logic_operand):
15305 Move to earlier in the file.
15306 (neon_logic_op2): Likewise.
15307 (arm_iordi_operand_neon): New predicate.
15308
f800c166
RB
153092013-05-31 Richard Biener <rguenther@suse.de>
15310
15311 PR tree-optimization/57478
15312 PR tree-optimization/57453
15313 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15314 are life as well.
15315
e571fa59
KP
153162013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15317
15318 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15319 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15320
0fa6e0ef
TB
153212013-05-30 Tobias Burnus <burnus@net-b.de>
15322 Thomas Koenig <tkoenig@gcc.gnu.org>
15323
15324 PR middle-end/57073
15325 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15326 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15327
4688ddf5
SB
153282013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15329
0fa6e0ef 15330 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15331
3b9ceb4b
VM
153322013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15333
15334 * target.def (register_usage_leveling_p): New hook.
15335 * targhooks.c (default_register_usage_leveling_p): New.
15336 * targhooks.h (default_register_usage_leveling_p): New prototype.
15337 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15338 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15339 * doc/tm.texi: Update.
15340 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15341
65f9e789
IB
153422013-05-30 Ian Bolton <ian.bolton@arm.com>
15343
15344 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15345 (*insv_reg<mode>): New define_insn.
15346
12211b99 153472013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15348
15349 PR rtl-optimization/57439
15350 * postreload.c (move2add_valid_value_p): Check that we have
15351 a zero subreg_regno_offset when accessing the register in
15352 the requested mode.
15353
0b871ccf
YR
153542013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15355 Igor Zamyatin <igor.zamyatin@intel.com>
15356
15357 Silvermont (SLM) architecture pipeline model, tuning and
15358 insn selection.
15359 * config.gcc: Add slm config options and target.
15360
15361 * config/i386/slm.md: New.
15362
15363 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15364
f43245d1 15365 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15366 PROCESSOR_SLM.
15367 (ix86_target_macros_internal): Likewise.
15368
f43245d1 15369 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15370 (m_SLM): New macro flag.
15371 (initial_ix86_tune_features): Set m_SLM.
15372 (x86_accumulate_outgoing_args): Likewise.
15373 (x86_arch_always_fancy_math_387): Likewise.
15374 (processor_target_table): Add slm cost.
15375 (cpu_names): Add slm cpu name.
15376 (x86_option_override_internal): Set SLM ISA.
15377 (ix86_issue_rate): New case PROCESSOR_SLM.
15378 (ia32_multipass_dfa_lookahead): Likewise.
15379 (fold_builtin_cpu): Add slm.
15380
15381 * config/i386/i386.h (TARGET_SLM): New target macro.
15382 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15383 (processor_type): Add PROCESSOR_SLM.
15384
15385 * config/i386/i386.md (cpu): Add new value "slm".
15386 (slm.md): Include slm.md.
15387
24d5b097
XG
153882013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15389 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15390
15391 * config/arm/arm-protos.h: Add and update function protos.
15392 * config/arm/arm.c (use_simple_return_p): New added.
15393 (thumb2_expand_return): Check simple_return flag.
15394 * config/arm/arm.md: Add simple_return and conditional simple_return.
15395 * config/arm/iterators.md: Add iterator for return and simple_return.
15396
c1cccc15
ZC
153972013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15398
15399 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15400 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15401 (arm_emit_vfp_multi_reg_pop): Likewise.
15402 (thumb2_emit_ldrd_pop): Likewise.
15403 (arm_expand_epilogue): Add misc REG_CFA notes.
15404 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15405
3a4f280b
LC
154062013-05-29 Lawrence Crowl <crowl@google.com>
15407
15408 * config/arm/t-arm: Update for below.
15409
15410 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15411 Change type to hash_table. Update dependent calls and types.
15412
15413 * config/i386/t-cygming: Update for below.
15414
15415 * config/i386/t-interix: Update for below.
15416
15417 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15418 Change type to hash_table. Update dependent calls and types.
15419 (i386_find_on_wrapper_list::wrappers): Likewise.
15420
15421 * config/ia64/t-ia64: Update for below.
15422
15423 * config/ia64/ia64.c (bundle_state_table):
15424 Change type to hash_table. Update dependent calls and types.
15425
15426 * config/mips/mips.c (mips_reorg_process_insns::htab):
15427 Change type to hash_table. Update dependent calls and types.
15428
15429 * config/sol2.c (solaris_comdat_htab):
15430 Change type to hash_table. Update dependent calls and types.
15431
15432 * config/t-sol2: Update for above.
15433
1388a0e3
TJ
154342013-05-29 Teresa Johnson <tejohnson@google.com>
15435
15436 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15437 functions are not yet marked as defined.
15438
a5965b52 154392013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15440 Pat Haugen <pthaugen@us.ibm.com>
15441 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15442
15443 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15444 instructions.
15445 (VEC_A): Likewise.
15446 (VEC_C): Likewise.
15447 (vrotl<mode>3): Likewise.
15448 (vashl<mode>3): Likewise.
15449 (vlshr<mode>3): Likewise.
15450 (vashr<mode>3): Likewise.
15451
15452 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15453 support for power8 V2DI builtins.
15454
15455 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15456 power8 V2DI builtins.
15457 (vupkhsw): Likewise.
15458 (vupklsw): Likewise.
15459 (vaddudm): Likewise.
15460 (vminsd): Likewise.
15461 (vmaxsd): Likewise.
15462 (vminud): Likewise.
15463 (vmaxud): Likewise.
15464 (vpkudum): Likewise.
15465 (vpksdss): Likewise.
15466 (vpkudus): Likewise.
15467 (vpksdus): Likewise.
15468 (vrld): Likewise.
15469 (vsld): Likewise.
15470 (vsrd): Likewise.
15471 (vsrad): Likewise.
15472 (vsubudm): Likewise.
15473 (vcmpequd): Likewise.
15474 (vcmpgtsd): Likewise.
15475 (vcmpgtud): Likewise.
15476 (vcmpequd_p): Likewise.
15477 (vcmpgtsd_p): Likewise.
15478 (vcmpgtud_p): Likewise.
15479 (vupkhsw): Likewise.
15480 (vupklsw): Likewise.
15481 (vaddudm): Likewise.
15482 (vmaxsd): Likewise.
15483 (vmaxud): Likewise.
15484 (vminsd): Likewise.
15485 (vminud): Likewise.
15486 (vpksdss): Likewise.
15487 (vpksdus): Likewise.
15488 (vpkudum): Likewise.
15489 (vpkudus): Likewise.
15490 (vrld): Likewise.
15491 (vsld): Likewise.
15492 (vsrad): Likewise.
15493 (vsrd): Likewise.
15494 (vsubudm): Likewise.
15495
15496 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15497 support for power8 V2DI instructions.
15498
15499 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15500 power8 V2DI instructions. Combine pack and unpack insns to use an
15501 iterator for each mode. Check whether a particular mode supports
15502 Altivec instructions instead of just checking TARGET_ALTIVEC.
15503 (UNSPEC_VPKUWUM): Likewise.
15504 (UNSPEC_VPKSHSS): Likewise.
15505 (UNSPEC_VPKSWSS): Likewise.
15506 (UNSPEC_VPKUHUS): Likewise.
15507 (UNSPEC_VPKSHUS): Likewise.
15508 (UNSPEC_VPKUWUS): Likewise.
15509 (UNSPEC_VPKSWUS): Likewise.
15510 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15511 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15512 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15513 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15514 (UNSPEC_VUPKHSB): Likewise.
15515 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15516 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15517 (UNSPEC_VUPKHSH): Likewise.
15518 (UNSPEC_VUPKLSB): Likewise.
15519 (UNSPEC_VUPKLSH): Likewise.
15520 (VI2): Likewise.
15521 (VI_char): Likewise.
15522 (VI_scalar): Likewise.
15523 (VI_unit): Likewise.
15524 (VP): Likewise.
15525 (VP_small): Likewise.
15526 (VP_small_lc): Likewise.
15527 (VU_char): Likewise.
15528 (add<mode>3): Likewise.
15529 (altivec_vaddcuw): Likewise.
15530 (altivec_vaddu<VI_char>s): Likewise.
15531 (altivec_vadds<VI_char>s): Likewise.
15532 (sub<mode>3): Likewise.
15533 (altivec_vsubcuw): Likewise.
15534 (altivec_vsubu<VI_char>s): Likewise.
15535 (altivec_vsubs<VI_char>s): Likewise.
15536 (altivec_vavgs<VI_char>): Likewise.
15537 (altivec_vcmpbfp): Likewise.
15538 (altivec_eq<mode>): Likewise.
15539 (altivec_gt<mode>): Likewise.
15540 (altivec_gtu<mode>): Likewise.
15541 (umax<mode>3): Likewise.
15542 (smax<mode>3): Likewise.
15543 (umin<mode>3): Likewise.
15544 (smin<mode>3): Likewise.
15545 (altivec_vpkuhum): Likewise.
15546 (altivec_vpkuwum): Likewise.
15547 (altivec_vpkshss): Likewise.
15548 (altivec_vpkswss): Likewise.
15549 (altivec_vpkuhus): Likewise.
15550 (altivec_vpkshus): Likewise.
15551 (altivec_vpkuwus): Likewise.
15552 (altivec_vpkswus): Likewise.
15553 (altivec_vpks<VI_char>ss): Likewise.
15554 (altivec_vpks<VI_char>us): Likewise.
15555 (altivec_vpku<VI_char>us): Likewise.
15556 (altivec_vpku<VI_char>um): Likewise.
15557 (altivec_vrl<VI_char>): Likewise.
15558 (altivec_vsl<VI_char>): Likewise.
15559 (altivec_vsr<VI_char>): Likewise.
15560 (altivec_vsra<VI_char>): Likewise.
15561 (altivec_vsldoi_<mode>): Likewise.
15562 (altivec_vupkhsb): Likewise.
15563 (altivec_vupkhs<VU_char>): Likewise.
15564 (altivec_vupkls<VU_char>): Likewise.
15565 (altivec_vupkhsh): Likewise.
15566 (altivec_vupklsb): Likewise.
15567 (altivec_vupklsh): Likewise.
15568 (altivec_vcmpequ<VI_char>_p): Likewise.
15569 (altivec_vcmpgts<VI_char>_p): Likewise.
15570 (altivec_vcmpgtu<VI_char>_p): Likewise.
15571 (abs<mode>2): Likewise.
15572 (vec_unpacks_hi_v16qi): Likewise.
15573 (vec_unpacks_hi_v8hi): Likewise.
15574 (vec_unpacks_lo_v16qi): Likewise.
15575 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15576 (vec_unpacks_lo_v8hi): Likewise.
15577 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15578 (vec_pack_trunc_v8h): Likewise.
15579 (vec_pack_trunc_v4si): Likewise.
15580 (vec_pack_trunc_<mode>): Likewise.
15581
15582 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15583 V2DI builtins.
15584 (vec_vmaxsd): Likewise.
15585 (vec_vmaxud): Likewise.
15586 (vec_vminsd): Likewise.
15587 (vec_vminud): Likewise.
15588 (vec_vpksdss): Likewise.
15589 (vec_vpksdus): Likewise.
15590 (vec_vpkudum): Likewise.
15591 (vec_vpkudus): Likewise.
15592 (vec_vrld): Likewise.
15593 (vec_vsld): Likewise.
15594 (vec_vsrad): Likewise.
15595 (vec_vsrd): Likewise.
15596 (vec_vsubudm): Likewise.
15597 (vec_vupkhsw): Likewise.
15598 (vec_vupklsw): Likewise.
15599
e70670cf
JH
156002013-05-29 Jan Hubicka <jh@suse.cz>
15601
15602 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15603 flags; reorder rest of fields in more consistent way.
15604 (varpool_node): Remove analyzed, finalized and alias.
15605 (cgraph_ndoe): Likewise.
15606 (symtab_alias_ultimate_target): New function.
15607 (cgraph_function_node): Move offline.
15608 (cgraph_reset_node): Declare.
15609 (cgraph_comdat_can_be_unshared_p): Remove.
15610 (varpool_remove_initializer): Declare.
15611 (varpool_first_defined_variable, varpool_next_defined_variable
15612 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15613 (cgraph_function_with_gimple_body_p): Update.
15614 (varpool_all_refs_explicit_p): Update.
15615 (symtab_alias_target): New function.
15616 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15617 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15618 (cgraph_function_or_thunk_node): Simplify using
15619 symtab_alias_ultimate_target.
e70670cf
JH
15620 (varpool_variable_node): Likewise.
15621 * cgraph.c (cgraph_create_function_alias): Update.
15622 (cgraph_add_thunk): Update.
15623 (cgraph_remove_node): Update.
15624 (dump_cgraph_node): Do not dump removed flags.
15625 (cgraph_function_body_availability): Update.
15626 (cgraph_propagate_frequency): Update.
15627 (verify_cgraph_node): Check sanity of local flag.
15628 (cgraph_function_node): Move here from cgraph.h; revamp for
15629 cgraph_function_or_thunk_node.
15630 * lto-symtab.c (lto_varpool_replace_node): Update.
15631 (lto_symtab_resolve_can_prevail_p): Update.
15632 (lto_symtab_merge_cgraph_nodes): Update.
15633 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15634 propagate_constants_accross_call, devirtualization_time_bonus,
15635 ipcp_propagate_stage): Update.
15636 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15637 * ipa-inline-transform.c (clone_inlined_nodes,
15638 preserve_function_body_p): Update.
e70670cf
JH
15639 * ipa-reference.c (propagate): Update.
15640 (write_node_summary_p): Update.
15641 * toplev.c (wrapup_global_declaration_2): Update.
15642 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15643 (analyze_function) ... this one.
15644 (cgraph_process_new_functions): Update.
15645 (cgraph_reset_node): Export.
15646 (cgraph_finalize_function): Update.
15647 (cgraph_add_new_function): Update.
15648 (process_function_and_variable_attributes): Update.
15649 (varpool_finalize_decl): Update.
15650 (symbol_finalized): Remove.
15651 (symbol_finalized_and_needed): Rename to ...
15652 (symbol_defined_and_needed): ... update.
15653 (cgraph_analyze_functions): Update.
15654 (handle_alias_pairs): Update.
15655 (mark_functions_to_output): Update.
15656 (assemble_thunk): Update.
15657 (output_in_order): Update.
15658 (output_weakrefs): Update.
15659 (finalize_compilation_unit): Update.
15660 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15661 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15662 input_node, input_varpool_node): Update.
15663 * dbxout.c (dbxout_expand_expr): Update.
15664 * cgraphclones.c (cgraph_clone_node): Update.
15665 (cgraph_copy_node_for_versioning): Update.
15666 (cgraph_materialize_clone): Update.
15667 (cgraph_materialize_all_clones): Update.
15668 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15669 propagate_pure_const, propagate_nothrow): Update.
15670 * lto-streamer-out.c (lto_output, write_symbol): Update.
15671 * ipa-utils.c (ipa_reverse_postorder): Update.
15672 * ipa-inline.c (can_inline_edge_p): Update.
15673 (update_caller_keys, ipa_inline): Update.
15674 * dwarf2out.c (reference_to_unused,
15675 premark_types_used_by_global_vars_helper): Update.
15676 * tree-eh.c (tree_could_trap_p): Update.
15677 * ipa-split.c (consider_split, execute_split_functions): Update.
15678 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15679 has_addr_references_p): Update; move ahead in file for better
15680 readability.
e70670cf
JH
15681 (process_references): Simplify.
15682 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15683 bodies are removed.
15684 (cgraph_comdat_can_be_unshared_p): Make static.
15685 (cgraph_externally_visible_p): Update.
15686 (varpool_externally_visible_p): Update.
15687 (function_and_variable_visibility): Update.
15688 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15689 ipa_tm_mark_force_output_node): Update.
15690 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15691 estimate_edge_devirt_benefit, inline_generate_summary,
15692 inline_write_summary): Update.
15693 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15694 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
15695 (ipa_print_node_params, ipa_prop_read_section,
15696 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
15697 * varasm.c (mark_decl_referenced): Update.
15698 (assemble_alias, dump_tm_clone_pairs): Update.
15699 * tree-inline.c (copy_bb): Update.
15700 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15701 Update.
15702 * symtab.c (dump_symtab_base): Print new flags.
15703 (verify_symtab_base): Verify new flags.
15704 (symtab_alias_ultimate_target): New function.
15705 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15706 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15707 Update.
c1e183a9
UB
15708 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15709 Update.
e70670cf
JH
15710 * i386.c (ix86_get_function_versions_dispatcher,
15711 ix86_generate_version_dispatcher_body): Update.
15712 (fold_builtin_cpu): Use varpool_add_new_variable.
15713 * varpool.c (varpool_remove_initializer): Break out from ...
15714 (varpool_remove_node): ... this one.
15715 (dump_varpool_node, varpool_node_for_asm,
15716 cgraph_variable_initializer_availability, varpool_analyze_node,
15717 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
15718 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15719 Update.
e70670cf 15720
182802ad
JH
157212013-05-29 Jan Hubicka <jh@suse.cz>
15722
15723 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15724
8190b609
ER
157252013-05-29 Easwaran Raman <eraman@google.com>
15726
15727 PR tree-optimization/57442
15728 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15729 when control exits the main loop.
15730
69f5aa9b
SKS
157312013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15732
15733 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15734 and RX600.
c1e183a9 15735 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
15736 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15737 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15738 option.
15739
4b847da9
BS
157402013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15741
15742 PR tree-optimization/57441
15743 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15744 Don't limit size of incr_vec to number of candidates.
15745
4fc43c39
SE
157462013-05-29 Steve Ellcey <sellcey@imgtec.com>
15747
15748 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15749 and mips16 directories.
c1e183a9 15750 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
15751 (MULTILIB_DIRNAMES): Ditto.
15752 (MULTILIB_EXCEPTIONS): Add new exceptions.
15753 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15754 (MULTILIB_DIRNAMES): Ditto.
15755 (MULTILIB_EXCEPTIONS): Add new exceptions.
15756
12211b99 157572012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
15758 Marcus Shawcroft <marcus.shawcroft@arm.com>
15759
15760 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15761 SYMBOL_TINY_ABSOLUTE.
15762 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
15763 SYMBOL_TINY_ABSOLUTE.
15764 (aarch64_expand_mov_immediate): Likewise.
15765 (aarch64_classify_symbol): Likewise.
15766 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
15767 Permit SYMBOL_TINY_ABSOLUTE.
15768 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
15769
12211b99 157702013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
15771 Marcus Shawcroft <marcus.shawcroft@arm.com>
15772
15773 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
15774 Refactor if/switch. Replace gcc_assert with if.
15775
c0186656
GG
157762013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15777
15778 * config/i386/i386.c (initial_ix86_tune_features): Enable
15779 FP Reassociation for AMD bdver1 and bdver2.
15780
d20188f3
MJ
157812013-05-29 Martin Jambor <mjambor@suse.cz>
15782
15783 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
15784 and IMAGPART_EXPR do not occur within other handled_components.
15785
292cba13
RB
157862013-05-29 Richard Biener <rguenther@suse.de>
15787
15788 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
15789 access on whether the use is in the BB we currently try to
15790 vectorize.
15791 (vect_bb_vectorization_profitable_p): Pass the BB we currently
15792 vectorize to vect_bb_slp_scalar_cost.
15793
6eddf228
RB
157942013-05-29 Richard Biener <rguenther@suse.de>
15795
15796 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
15797 computing scalar cost offsetted by stmts that are kept live
15798 by scalar uses.
15799 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
15800 for computation of scalar cost.
15801
7df36117
SE
158022013-05-28 Steve Ellcey <sellcey@mips.com>
15803
15804 * config/mips/mips-cpus.def (mips32r2): Change processor type.
15805
36536d79
BI
158062013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
15807
15808 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
15809 array notation built-in reduction functions.
15810 * doc/passes.texi (Passes): Added documentation about changes done
15811 for Cilk Plus.
15812 * doc/invoke.texi (C Dialect Options): Added documentation about
15813 the -fcilkplus flag.
15814 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
15815 (BUILTINS_DEF): Depend on cilkplus.def.
15816 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
15817 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
15818 * cilkplus.def: New file.
15819
12211b99 158202013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
15821
15822 PR rtl-optimization/57439
15823 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
15824
9daf6dbb
ER
158252013-05-28 Easwaran Raman <eraman@google.com>
15826
15827 PR tree-optimization/57337
15828 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
15829 (find_insert_point): Correctly identify the insertion point
15830 when two statements with the same UID is compared.
15831
fbd7e877
RB
158322013-05-28 Richard Biener <rguenther@suse.de>
15833
15834 PR tree-optimization/56787
15835 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
15836 from the list of data references.
15837 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
15838 clobbers.
15839 (vect_analyze_loop_operations): Likewise.
15840 (vect_transform_loop): Remove clobbers.
15841
bbba1117
MJ
158422013-05-28 Martin Jambor <mjambor@suse.cz>
15843
15844 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
15845 and REALPART_EXPRs have scalar type.
15846
bd388c2a
RB
158472013-05-28 Richard Biener <rguenther@suse.de>
15848
15849 PR tree-optimization/57411
15850 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
15851 virtual operands.
15852 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
15853 virtual operand propagation.
15854
2f56a311
EB
158552013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15856
15857 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
15858 destination register for bmasksi_vis.
15859 (vector_init_bshuffle): Likewise.
15860 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
15861
5c3eacbb
EB
158622013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15863
15864 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
15865 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
15866 mode if the instruction isn't available in the original mode.
15867 * config/sparc/sparc.opt (mfix-ut699): New option.
15868 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
15869 (divdf3): Turn into expander.
15870 (divdf3_nofix): New insn.
15871 (divdf3_fix): Likewise.
15872 (divsf3): Disable if -mfix-ut699.
15873 (sqrtdf2): Turn into expander.
15874 (sqrtdf2_nofix): New insn.
15875 (sqrtdf2_fix): Likewise.
15876 (sqrtsf2): Disable if -mfix-ut699.
15877
a1756c0a
RB
158782013-05-27 Richard Biener <rguenther@suse.de>
15879
15880 PR middle-end/57412
15881 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
15882 block for the new loop.
15883
5a892248
RB
158842013-05-27 Richard Biener <rguenther@suse.de>
15885
15886 PR tree-optimization/57343
15887 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
15888 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
15889 (number_of_iterations_cond): Do not build the folded tree.
15890
d1de852b
RB
158912013-05-27 Richard Biener <rguenther@suse.de>
15892
15893 Revert
15894 PR middle-end/57381
15895 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15896 OEP_CONSTANT_ADDRESS_OF retained.
15897
15898 PR tree-optimization/57417
15899 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
15900 for unchanged base.
15901 (set_ssa_val_to): Compare addresses using
15902 get_addr_base_and_unit_offset.
15903
12211b99 159042013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
15905
15906 PR rtl-optimization/56833
15907 * postreload.c (move2add_record_mode): New function.
15908 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
15909 (move2add_use_add2_insn): Use move2add_record_sym_value.
15910 (move2add_use_add3_insn): Likewise.
15911 (reload_cse_move2add): Use move2add_valid_value_p and
15912 move2add_record_mode. Invalidate call-clobbered and REG_INC
15913 affected regs by setting reg_mode to VOIDmode.
15914 (move2add_note_store): Don't pretend the inside of a SUBREG is
15915 the actual destination. Invalidate single/leading registers by
15916 setting reg_mode to VOIDmode.
15917 Use move2add_record_sym_value, move2add_valid_value_p and
15918 move2add_record_mode.
15919
b03be25f
RB
159202013-05-27 Richard Biener <rguenther@suse.de>
15921
15922 PR tree-optimization/57396
15923 * tree-affine.c (double_int_constant_multiple_p): Properly
15924 return false for val == 0 and div != 0.
15925
44e88db2
RS
159262013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15927
15928 * config/mips/mips.h: Use #elif in preprocessor conditions.
15929
3b859704
RS
159302013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15931
15932 PR target/53916
15933 * config/mips/constraints.md (kl): New constraint.
15934 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
15935 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
15936 constraint for operand 0. Split after CSE for MIPS16. Emit a move
15937 from LO for MIPS16.
15938 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
15939
c979d5f5
RS
159402013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15941
15942 PR target/55777
15943 * config/mips/mips.c (mips_can_inline_p): New function.
15944 (TARGET_CAN_INLINE_P): Define.
15945
8e90de43
SB
159462013-05-25 Steven Bosscher <steven@gcc.gnu.org>
15947
15948 * sched-int.h (ds_t, dw_t): Make unsigned int.
15949 Fix documentation that describes how all the ds_t bits are used.
15950 Reserve the last bit for delayed-branch scheduling.
15951 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
15952 (BITS_PER_DEP_WEAK): Fix definition and documentation.
15953 (gen_dep_weak_1): Remove prototype.
15954 * sched-deps.c (get_dep_weak_1): Make static.
15955 * target.def (speculate_insn, needs_block_p, gen_spec_check,
15956 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
15957 * doc/tm.texi: Regenerate.
15958 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
15959
cb5cb194
SB
159602013-05-24 Steven Bosscher <steven@gcc.gnu.org>
15961
15962 PR debug/56950
15963 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
15964
5bd93ff6
NS
159652013-05-24 Nathan Sidwell <nathan@codesourcery.com>
15966 Sandra Loosemore <sandra@codesourcery.com>
15967
15968 * config.gcc (powerpc-*): Allow native for with-cpu.
15969
2343af65
JL
159702013-05-24 Jeff Law <law@redhat.com>
15971
15972 PR tree-optimization/57124
15973 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
15974 conversion feeding a condition if the range has an overflow
15975 if -fstrict-overflow. Add warnings for when we do make the
15976 transformation.
15977
3ad695b9
DC
159782013-05-24 Dehao Chen <dehao@google.com>
15979
04960246 15980 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
15981 (locus_discrim_hasher): Likewise.
15982 (locus_discrim_hasher::hash): Likewise.
15983 (locus_discrim_hasher::equal): Likewise.
15984
82338059
MJ
159852013-05-24 Martin Jambor <mjambor@suse.cz>
15986
15987 PR tree-optimization/57294
15988 * cgraph.h (ipa_record_stmt_references): Declare.
15989 * cgraphbuild.c (ipa_record_stmt_references): New function.
15990 (build_cgraph_edges): Use ipa_record_stmt_references.
15991 (rebuild_cgraph_edges): Likewise.
15992 (cgraph_rebuild_references): Likewise.
15993 * ipa-prop.c (ipa_modify_call_arguments): Discard references
15994 associated with the old statement and build references from the
15995 newly built statements.
15996 * ipa-ref.c (ipa_remove_stmt_references): New function.
15997 * ipa-ref.h (ipa_remove_stmt_references): Declare.
15998
1ccd4874
VM
159992013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16000
55805e54 16001 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16002 mem-mem moves.
55805e54 16003 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16004 too.
55805e54 16005 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16006 secondary memory moves.
16007 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16008 reg set up in the current insn.
16009
25e25c73
DC
160102013-05-24 Dehao Chen <dehao@google.com>
16011
04960246 16012 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16013 hash function.
16014 (locus_descrim_hasher::equal): Likewise.
04960246 16015 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16016 (make_edges): Likewise.
16017 (next_discriminator_for_locus): Likewise.
16018 (same_line_p): Likewise.
16019 (assign_discriminators): Likewise.
16020 (make_cond_expr_edges): Likewise.
16021 (make_gimple_switch_edges): Likewise.
16022 (make_goto_expr_edges): Likewise.
16023 (make_gimple_asm_edges): Likewise.
16024
50d38551
IB
160252013-05-24 Ian Bolton <ian.bolton@arm.com>
16026
16027 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16028 X format specifier to only display bottom 16 bits.
16029 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16030 immediate to match for operand 2, since it will be masked.
16031
aea0101d
RB
160322013-05-24 Richard Biener <rguenther@suse.de>
16033
16034 PR tree-optimization/57287
16035 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16036 all SSA names that occur in abnormal PHIs.
16037
634e03d3
AI
160382013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16039
16040 PR tree-ssa/57385
16041 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16042 that index is not negative.
16043
b17c024f
EB
160442013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16045
16046 PR rtl-optimization/55177
16047 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16048 (simplify_byte_swapping_operation): New.
16049 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16050 (simplify_relational_operation_1): Deal with BSWAP.
16051
46aeac1b
RH
160522013-05-23 Richard Henderson <rth@redhat.com>
16053
16054 PR target/56742
16055 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16056 (ix86_reorg): Call it.
16057
70cc1536
UB
160582013-05-23 Uros Bizjak <ubizjak@gmail.com>
16059
16060 PR target/57379
16061 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16062 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16063 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16064
b3851501
CB
160652013-05-23 Christian Bruel <christian.bruel@st.com>
16066
16067 PR debug/57351
16068 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16069
12211b99 160702013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16071 Marcus Shawcroft <marcus.shawcroft@arm.com>
16072
16073 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16074 * config/aarch64/constraints.md (Usa): Remove.
16075 * doc/md.texi (AArch64 Usa): Remove.
16076
12211b99 160772013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16078 Marcus Shawcroft <marcus.shawcroft@arm.com>
16079
16080 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16081 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16082 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16083 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16084
12211b99 160852013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16086
16087 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16088 instruction (AdvSIMD).
16089 * config/aarch64/aarch64-builtins.c
16090 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16091 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16092
76c36cb1 160932013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16094
16095 PR middle-end/57347
16096 * tree.h (contains_bitfld_component_ref_p): Declare.
16097 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16098 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16099 caller.
7d2fb524
MJ
16100 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16101 not access a bit-field. Assert all final offsets are byte-aligned.
16102
ce521ae6
RB
161032013-05-23 Richard Biener <rguenther@suse.de>
16104
16105 PR tree-optimization/57380
16106 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16107 least one invariant or re-used load.
16108 * passes.c (init_optimization_passes): Move pass_phiprop before
16109 pass_forwprop.
16110
75c7257f
JG
161112013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16112
16113 * config/aarch64/aarch64-simd.md
16114 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16115
af6d44b5
RB
161162013-05-23 Richard Biener <rguenther@suse.de>
16117
16118 PR middle-end/57381
16119 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16120 OEP_CONSTANT_ADDRESS_OF retained.
16121
bd3647bf
JJ
161222013-05-23 Jakub Jelinek <jakub@redhat.com>
16123
16124 PR middle-end/57344
70cc1536
UB
16125 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16126 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16127
a55757ea
RB
161282013-05-23 Richard Biener <rguenther@suse.de>
16129
16130 PR rtl-optimization/57341
16131 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16132 instead of true_dependence.
16133
cfb00b41
DM
161342013-05-22 David Malcolm <dmalcolm@redhat.com>
16135
dd1c676f
DM
16136 * bb-reorder.c (branch_threshold): Make const.
16137 (exec_threshold): Ditto.
cfb00b41 16138
f62511da 161392013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16140 Pat Haugen <pthaugen@us.ibm.com>
16141 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16142
16143 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16144 documentation for the power8 crypto builtins.
16145
16146 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16147
16148 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16149 macros for defining power8 builtin functions.
16150 (BU_P8V_AV_2): Likewise.
16151 (BU_P8V_AV_P): Likewise.
16152 (BU_P8V_VSX_1): Likewise.
16153 (BU_P8V_OVERLOAD_1): Likewise.
16154 (BU_P8V_OVERLOAD_2): Likewise.
16155 (BU_CRYPTO_1): Likewise.
16156 (BU_CRYPTO_2): Likewise.
16157 (BU_CRYPTO_3): Likewise.
16158 (BU_CRYPTO_OVERLOAD_1): Likewise.
16159 (BU_CRYPTO_OVERLOAD_2): Likewise.
16160 (XSCVSPDP): Fix typo, point to the correct instruction.
16161 (VCIPHER): Add power8 crypto builtins.
16162 (VCIPHERLAST): Likewise.
16163 (VNCIPHER): Likewise.
16164 (VNCIPHERLAST): Likewise.
16165 (VPMSUMB): Likewise.
16166 (VPMSUMH): Likewise.
16167 (VPMSUMW): Likewise.
16168 (VPERMXOR_V2DI): Likewise.
16169 (VPERMXOR_V4SI: Likewise.
16170 (VPERMXOR_V8HI: Likewise.
16171 (VPERMXOR_V16QI: Likewise.
16172 (VSHASIGMAW): Likewise.
16173 (VSHASIGMAD): Likewise.
16174 (VPMSUM): Likewise.
16175 (VPERMXOR): Likewise.
16176 (VSHASIGMA): Likewise.
16177
16178 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16179 __CRYPTO__ if the crypto instructions are available.
16180 (altivec_overloaded_builtins): Add support for overloaded power8
16181 builtins.
16182
16183 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16184 support for power8 crypto builtins.
16185 (builtin_function_type): Likewise.
16186 (altivec_init_builtins): Add support for builtins that take vector
16187 long long (V2DI) arguments.
16188
16189 * config/rs6000/crypto.md: New file, define power8 crypto
16190 instructions.
16191
161922013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16193 Pat Haugen <pthaugen@us.ibm.com>
16194 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16195
16196 * doc/invoke.texi (Option Summary): Add power8 options.
16197 (RS/6000 and PowerPC Options): Likewise.
16198
16199 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16200 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16201 wm, wn, wr documentation.
16202
f43245d1 16203 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16204 registers if direct move instructions are enabled.
16205 (wn): New constraint for no registers.
16206 (wq): New constraint for quad word even GPR registers.
16207 (wr): New constraint if 64-bit instructions are enabled.
16208 (wv): New constraint if power8 vector instructions are enabled.
16209 (wQ): New constraint for quad word memory locations.
16210
f43245d1 16211 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16212 constraint for 0..15 for crypto instructions.
16213 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16214 as GPR and floating point registers.
16215 (int_reg_operand): New predicate to match only GPR registers.
16216 (base_reg_operand): New predicate to match base registers.
16217 (quad_int_reg_operand): New predicate to match even GPR registers
16218 for quad memory operations.
16219 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16220 operations in both GPR and VSX registers.
16221 (quad_memory_operand): New predicate for quad memory operations.
16222 (reg_or_indexed_operand): New predicate for direct move support.
16223
f43245d1 16224 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16225 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16226 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16227 (POWERPC_MASKS): Add power8 options.
16228 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16229 various options.
16230
f43245d1 16231 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16232 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16233
f43245d1 16234 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16235 (-mpower8-fusion): New power8 options.
16236 (-mpower8-fusion-sign): Likewise.
16237 (-mpower8-vector): Likewise.
16238 (-mcrypto): Likewise.
16239 (-mdirect-move): Likewise.
16240 (-mquad-memory): Likewise.
16241
f43245d1 16242 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16243 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16244 registers.
70cc1536 16245 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16246 (rs6000_debug_vector_unit): Add p8_vector.
16247 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16248 definitions. Also print fusion state.
16249 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16250 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16251 (rs6000_option_override_internal): Add support for power8.
16252 (rs6000_common_init_builtins): Add debugging for skipped builtins
16253 if -mdebug=builtin.
16254 (rs6000_adjust_cost): Add power8 support.
16255 (rs6000_issue_rate): Likewise.
16256 (insn_must_be_first_in_group): Likewise.
16257 (insn_must_be_last_in_group): Likewise.
16258 (force_new_group): Likewise.
16259 (rs6000_register_move_cost): Likewise.
16260 (rs6000_opt_masks): Likewise.
16261
16262 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16263 power8 capable assembler, default to power7 options.
16264 (TARGET_DIRECT_MOVE): Likewise.
16265 (TARGET_CRYPTO): Likewise.
16266 (TARGET_P8_VECTOR): Likewise.
16267 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16268 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16269 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16270 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16271 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16272 (TARGET_XSCVDPSPN): Likewise.
16273 (TARGET_XSCVSPDPN): Likewsie.
16274 (TARGET_SYNC_HI_QI): Likewise.
16275 (TARGET_SYNC_TI): Likewise.
16276 (MASK_CRYPTO): Likewise.
16277 (MASK_DIRECT_MOVE): Likewise.
16278 (MASK_P8_FUSION): Likewise.
16279 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16280 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16281 temporary used by some of the direct move instructions to get two FP
16282 temporary registers does not force creation of a stack frame.
f62511da
MM
16283 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16284 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16285 that any VSX registers are tieable, even if they are also an
16286 Altivec vector mode.
16287 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16288 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16289 (RS6000_BTM_CRYPTO): Likewise.
16290 (RS6000_BTM_COMMON): Likewise.
16291
16292 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16293 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16294 (enum rs6000_vector): Add power8 vector support.
16295
73a1a707
RR
162962013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16297
16298 PR target/19599
16299 PR target/57340
16300 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16301 (any_sibcall_could_use_r3): this and handle indirect calls.
16302 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16303
d28073d4
BS
163042013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16305
16306 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16307
bee0b10c
RB
163082013-05-22 Richard Biener <rguenther@suse.de>
16309
16310 PR middle-end/57349
16311 * profile.c (branch_prob): Do not split blocks that are
16312 abnormally receiving from ECF_RETURNS_TWICE functions.
16313
98409b51
RS
163142013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16315
16316 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16317 address mode. Move pointer mode initialization to the same place.
16318
c0602ab8
MZ
163192013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16320
16321 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16322 while it has any effect.
16323
4f7a634e
ER
163242013-05-21 Easwaran Raman <eraman@google.com>
16325
16326 PR tree-optimization/57322
9daf6dbb
ER
16327 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16328 UID of the statement added to the BB to be 1.
4f7a634e 16329
a4ce1258
JJ
163302013-05-21 Jakub Jelinek <jakub@redhat.com>
16331
16332 PR tree-optimization/57331
70cc1536
UB
16333 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16334 of conversion from pointer type to integral type with integer.
a4ce1258 16335
1b14621a
MJ
163362013-05-21 Martin Jambor <mjambor@suse.cz>
16337
16338 PR lto/57289
16339 * ipa-prop.c (ipa_read_node_info): Process param_used and
16340 controlled_uses in the same order as when writing.
16341
e60661f0
MG
163422013-05-21 Magnus Granberg <baldrick@free.fr>
16343
16344 PR plugins/56754
ee49aa34 16345 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16346
4a61be9a
RB
163472013-05-21 Richard Biener <rguenther@suse.de>
16348
16349 PR tree-optimization/57318
16350 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16351 estimate stmts with side-effects as likely eliminated.
16352
c52da5f7
RB
163532013-05-21 Richard Biener <rguenther@suse.de>
16354
16355 PR tree-optimization/57330
16356 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16357 preserve the call stmts fntype.
16358
7ec67e2a
RB
163592013-05-21 Richard Biener <rguenther@suse.de>
16360
16361 PR tree-optimization/57303
16362 * tree-ssa-sink.c (statement_sink_location): Improve killing
16363 stmt detection and properly handle self-assignments.
16364
b112d513
CB
163652013-05-21 Christian Bruel <christian.bruel@st.com>
16366
55805e54
YR
16367 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16368 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16369 registers. Set register size out of the PARALLEL loop.
16370
14c2ec26
OE
163712013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16372
16373 PR target/56547
16374 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16375 (*fmasf4, *fmasf4_media): New insns.
16376
da734fa1
RS
163772013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16378
16379 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16380 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16381 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16382 (mips_idiv_insns): Update the comments to say that the returned
16383 instruction counts are in units of BASE_INSN_LENGTH.
16384 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16385 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16386 using 2 rather than 4 as the length of indirect MIPS16 and
16387 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16388 length of a NOP. Don't divide MIPS16 lengths by 2.
16389 (mips16_split_long_branches): Assume a branch is long if the
16390 length is greater than 4 rather than 8.
16391 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16392 rather than multiplying them by 2. Multiply instruction counts
16393 by BASE_INSN_LENGTH rather than 4.
16394 (*jump_mips16, tls_get_tp_mips16_<mode>)
16395 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16396
13719e8b
RS
163972013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16398
16399 * config/mips/mips.md (extended_mips16): Remove branch case.
16400 (length): Remove duplicated extended_mips16 test.
16401
c3850d14
RS
164022013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16403
16404 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16405
8da2e059
RS
164062013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16407
16408 * recog.h (Recog_data): Rename to...
16409 (recog_data_d): ...this.
16410 (recog_data): Update accordingly.
16411 * recog.c (recog_data): Likewise.
16412 * reload.c (save_recog_data): Likewise.
16413 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16414 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16415
2df013f3
JB
164162013-05-17 Julian Brown <julian@codesourcery.com>
16417
16418 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16419 found in a REG_EQUAL note, invalidate it.
16420
371e77e3 164212013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16422
16423 * tree-ssa-reassoc.c (find_insert_point): New function.
16424 (insert_stmt_after): Likewise.
16425 (get_def_stmt): Likewise.
16426 (ensure_ops_are_available): Likewise.
16427 (not_dominated_by): Likewise.
16428 (rewrite_expr_tree): Do not move statements beyond what is
16429 necessary. Remove call to swap_ops_for_binary_stmt...
16430 (reassociate_bb): ... and move it here.
16431 (build_and_add_sum): Assign UIDs for new statements.
16432 (linearize_expr): Likewise.
16433 (do_reassoc): Renumber gimple statement UIDs.
16434
e01c7cca
JH
164352013-05-17 Jan Hubicka <jh@suse.cz>
16436
16437 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16438 weakrefs.
16439 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16440 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16441 weakrefs.
e01c7cca
JH
16442 (output_weakrefs): Update.
16443
c3272a92
PCC
164442013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16445 Martin Jambor <mjambor@suse.cz>
16446
16447 PR middle-end/57276
16448 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16449 value that corresponds to the given aggval is found in values vector.
16450
11c2aa39
UB
164512013-05-17 Uros Bizjak <ubizjak@gmail.com>
16452
16453 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16454 sse, sse2, sse3, ssse3 and sse4a flags to options.
16455
abecc8c6
DM
164562013-05-17 David Malcolm <dmalcolm@redhat.com>
16457
16458 * gengtype-state.c: (s_expr_writer): New class, to handle
16459 prettifying of output layout of s-expressions.
16460 (state_writer): New class, to write out gtype.state.
16461 (state_written_type_count): Move this variable into member data of
16462 state_writer.
16463 (s_expr_writer::s_expr_writer): New code: constructor for new class
16464 (state_writer::state_writer(): ditto
16465 (s_expr_writer::write_new_line): New function
16466 (s_expr_writer::write_any_indent): ditto
16467 (s_expr_writer::begin_s_expr): ditto
16468 (s_expr_writer::end_s_expr): ditto
16469 (write_state_fileloc): convert to method of state_writer...
16470 (state_writer:: write_state_fileloc): ...and use methods of
16471 s_expr_writer to write indentation into the gtype.state output file
16472 to visually represent the hierarchical structure of the list
16473 structures
16474 (write_state_fields): ditto, renaming to...
16475 (state_writer::write_state_fields)
16476 (write_state_a_string): ditto, renaming to...
16477 (state_writer::write_state_a_string)
16478 (write_state_string_option): ditto, renaming to...
16479 (state_writer::write_state_string_option)
16480 (write_state_type_option): ditto, renaming to...
16481 (state_writer::write_state_type_option)
16482 (write_state_nested_option): ditto, renaming to...
16483 (state_writer::write_state_nested_option)
16484 (write_state_option): ditto, renaming to...
16485 (state_writer::write_state_option)
16486 (write_state_options): ditto, renaming to...
16487 (state_writer::write_state_options)
16488 (write_state_lang_bitmap): ditto, renaming to...
16489 (state_writer::write_state_lang_bitmap)
16490 (write_state_version): ditto, renaming to...
16491 (state_writer::write_state_version)
16492 (write_state_scalar_type): ditto, renaming to...
16493 (state_writer::write_state_scalar_type)
16494 (write_state_string_type): ditto, renaming to...
16495 (state_writer::write_state_string_type)
16496 (write_state_undefined_type): ditto, renaming to...
16497 (state_writer::write_state_undefined_type)
16498 (write_state_struct_union_type): ditto, renaming to...
16499 (state_writer::write_state_struct_union_type)
16500 (write_state_struct_type): ditto, renaming to...
16501 (state_writer::write_state_struct_type)
16502 (write_state_user_struct_type): ditto, renaming to...
16503 (state_writer::write_state_user_struct_type)
16504 (write_state_lang_struct_type): ditto, renaming to...
16505 (state_writer::write_state_lang_struct_type)
16506 (write_state_param_struct_type): ditto, renaming to...
16507 (state_writer::write_state_param_struct_type)
16508 (write_state_pointer_type): ditto, renaming to...
16509 (state_writer::write_state_pointer_type)
16510 (write_state_array_type): ditto, renaming to...
16511 (state_writer::write_state_array_type)
16512 (write_state_gc_used): ditto, renaming to...
16513 (state_writer::write_state_gc_used)
16514 (write_state_common_type_content): ditto, renaming to...
16515 (state_writer::write_state_common_type_content)
16516 (write_state_type): ditto, renaming to...
16517 (state_writer::write_state_type)
16518 (write_state_pair_list): ditto, renaming to...
16519 (state_writer::write_state_pair_list)
16520 (write_state_pair): ditto, renaming to...
16521 (state_writer::write_state_pair)
16522 (write_state_typedefs): ditto, renaming to...
16523 (state_writer::write_state_typedefs)
16524 (write_state_structures): ditto, renaming to...
16525 (state_writer::write_state_structures)
16526 (write_state_param_structs): ditto, renaming to...
16527 (state_writer::write_state_param_structs)
16528 (write_state_variables): ditto, renaming to...
16529 (state_writer::write_state_variables)
16530 (write_state_srcdir): ditto, renaming to...
16531 (state_writer::write_state_srcdir)
16532 (write_state_files_list): ditto, renaming to...
16533 (state_writer::write_state_files_list)
16534 (write_state_languages): ditto, renaming to...
16535 (state_writer::write_state_languages)
16536 (write_state): create a state_writer instance and use it when
16537 writing out the state file
16538
d6545f29
MS
165392013-05-17 Mike Stump <mikestump@comcast.net>
16540
816a3f73 16541 PR rtl-optimization/57304
d6545f29
MS
16542 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16543 accessing DF_REF_REAL_LOC.
16544
38c821cf
JJ
165452013-05-17 Jakub Jelinek <jakub@redhat.com>
16546
16547 PR rtl-optimization/57281
16548 PR rtl-optimization/57300
16549 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16550 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16551 what the other splitter did if the registers are dead.
16552
2a293391
RB
165532013-05-17 Richard Biener <rguenther@suse.de>
16554
16555 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16556 MEM_REF offsets.
16557
17042d2b
JJ
165582013-05-17 Jakub Jelinek <jakub@redhat.com>
16559
16560 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16561 linking.
16562
5b115c1f
MP
165632013-05-17 Marek Polacek <polacek@redhat.com>
16564
11c2aa39
UB
16565 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16566 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16567
52d84413
JJ
165682013-05-17 Jakub Jelinek <jakub@redhat.com>
16569
68119618
JJ
16570 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16571 vect_external_def oprnd1 with loop_vinfo, try to emit
16572 optional cast, negation and and stmts on the loop preheader
16573 edge instead of into the pattern def seq.
16574
52d84413
JJ
16575 PR tree-optimization/57051
16576 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16577 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16578
17b962bd
NC
165792013-05-16 Nick Clifton <nickc@redhat.com>
16580
16581 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16582 (rl78_is_naked_func): New function.
56aefbf7
UB
16583 (rl78_expand_prologue): Skip prologue generation for naked functions.
16584 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16585 * doc/extend.texi (naked): Add RL78 to the list of processors
16586 that supports this attribute.
16587
b1a0f84e
JL
165882013-05-16 Jeff Law <law@redhat.com>
16589
16590 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16591
af0e415b
UB
165922013-05-16 Uros Bizjak <ubizjak@gmail.com>
16593
16594 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16595 cache parameters using detect_caches_amd also for CYRIX,
16596 NSC and TM2 signatures.
16597
19db293a
UB
165982013-05-16 Uros Bizjak <ubizjak@gmail.com>
16599 Dzianis Kahanovich <mahatma@eu.by>
16600
16601 PR target/45359
16602 PR target/46396
16603 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16604 VIA/Centaur processors and determine their cache parameters
16605 using detect_caches_amd.
16606
251a41b9
TJ
166072013-05-16 Teresa Johnson <tejohnson@google.com>
16608
16609 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16610 (rtl_verify_edges): New function.
16611 (rtl_verify_bb_insns): Ditto.
16612 (rtl_verify_bb_pointers): Ditto.
16613 (rtl_verify_bb_insn_chain): Ditto.
16614 (rtl_verify_fallthru): Ditto.
16615 (rtl_verify_bb_layout): Ditto.
16616 (rtl_verify_flow_info_1): Outline checks into new functions.
16617 (rtl_verify_flow_info): Ditto.
16618
f14540b6
SE
166192013-05-16 Steve Ellcey <sellcey@imgtec.com>
16620
16621 * cfghooks.c (copy_bbs): Add update_dominance argument.
16622 * cfghooks.h (copy_bbs): Update prototype.
16623 * tree-cfg.c (gimple_duplicate_sese_region):
16624 Add update_dominance argument.
16625 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16626 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16627 gimple_duplicate_sese_region call.
16628 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16629 Update copy_bbs call.
16630 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16631 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16632
7e9a3abb
JJ
166332013-05-16 Jakub Jelinek <jakub@redhat.com>
16634
16635 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16636 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16637 vect_recog_rotate_pattern.
16638 (vect_recog_rotate_pattern): New function.
16639
427b248d
JM
166402013-05-16 Jason Merrill <jason@redhat.com>
16641
16642 * Makefile.in (LLINKER): New variable.
16643 (mostlyclean): Remove link mutex.
16644 * configure.ac: Handle --enable-link-mutex.
16645 * lock-and-run.sh: New script.
16646
b871e3d2
RR
166472013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16648
16649 PR target/19599
16650 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16651 for NULL decl.
16652
ce858126
RO
166532013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16654
16655 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16656
798d3d04
GY
166572013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16658
16659 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16660 * config/arm/arm.c (next_consecutive_mem): New function.
16661 (gen_movmem_ldrd_strd): Likewise.
16662 * config/arm/arm.md (movmemqi): Update condition and code.
16663 (unaligned_loaddi, unaligned_storedi): New patterns.
16664
0baddc45
RO
166652013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16666
16667 * config.gcc: Obsolete *-*-solaris2.9*.
16668 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16669
aa9d5bcf
RB
166702013-05-16 Richard Biener <rguenther@suse.de>
16671
16672 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16673 earlier, after GRAPHITE transforms and IV canonicalization.
16674
5a0f4dd3
JJ
166752013-05-16 Jakub Jelinek <jakub@redhat.com>
16676
16677 * omp-low.c (extract_omp_for_data): For collapsed loops,
16678 if at least one of the loops is known at compile time to
16679 iterate zero times, set count to 0.
16680 (expand_omp_regimplify_p): New function.
16681 (expand_omp_for_generic): For collapsed loops, if at least
16682 one of the loops isn't known to iterate at least once,
16683 add runtime check with setting count to 0.
16684 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16685 For unsigned types if it isn't known at compile time that
16686 the loop will iterate at least once, add runtime check to bypass
16687 the whole loop if initial condition isn't true.
16688
e3753785
NS
166892013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16690
16691 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16692
43bb4dd1
MG
166932013-05-16 Marc Glisse <marc.glisse@inria.fr>
16694
16695 PR middle-end/57286
16696 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16697 transformations to avoid an infinite loop.
16698
3571dde6
MP
166992013-05-16 Marek Polacek <polacek@redhat.com>
16700
16701 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16702
b8b3f0ca
LE
167032013-05-15 Leif Ekblad <leif@rdos.net>
16704
16705 * config/i386/i386.c (ix86_decompose_address): Use
16706 DEFAULT_TLS_SEG_REG to access TLS segment register.
16707 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16708 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16709 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16710
e299a383
RS
167112013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16712
16713 PR target/57260
16714 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16715 sibling calls to functions that would normally be lazily bound,
16716 unless $gp is call-clobbered.
16717
e7208ea3
UB
167182013-05-15 Uros Bizjak <ubizjak@gmail.com>
16719
19db293a 16720 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 16721 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
16722 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16723 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
16724 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16725 of TARGET_3DNOW.
16726 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16727
e7413f3d
AS
167282013-05-15 Andreas Schwab <schwab@suse.de>
16729
16730 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16731 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16732 third operand.
16733
ad4db775
TJ
167342013-05-15 Teresa Johnson <tejohnson@google.com>
16735
16736 * loop-unroll.c (report_unroll_peel): Check decision before
16737 emitting unroll/peel message.
16738
af205f67
TJ
167392013-05-15 Teresa Johnson <tejohnson@google.com>
16740
16741 * function.h (has_bb_partition): New rtl_data flag.
16742 (bb_reorder_complete): Ditto.
16743 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16744 instead of flag_reorder_blocks_and_partition.
16745 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16746 with some enhancements.
16747 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16748 * bb-reorder.c (connect_traces): Check for has_bb_partition
16749 instead of flag_reorder_blocks_and_partition.
16750 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16751 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16752 verify_hot_cold_block_grouping.
16753 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16754
9adcfa3c
RR
167552013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16756
16757 PR target/19599
16758 * config/arm/predicates.md (call_insn_operand): New predicate.
16759 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16760 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
16761 if insn is not a tail call.
16762 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
16763 registers.
16764 * config/arm/arm.h (enum reg_class): New caller save register class.
16765 (REG_CLASS_NAMES): Likewise.
16766 (REG_CLASS_CONTENTS): Likewise.
16767 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
16768 without decls.
16769
ccb3ad87
RB
167702013-05-15 Richard Biener <rguenther@suse.de>
16771
16772 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
16773 of MSG_OPTIMIZED_LOCATIONS.
16774 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
16775 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
16776 message.
16777 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
16778 of MSG_OPTIMIZED_LOCATIONS.
16779 (execute_vect_slp): Likewise.
16780 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
16781 (vect_create_cond_for_alias_checks): Likewise.
16782 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
16783 (vect_recog_widen_mult_pattern): Likewise.
16784 (vect_recog_widen_sum_pattern): Likewise.
16785 (vect_recog_over_widening_pattern): Likewise.
16786 (vect_recog_widen_shift_pattern): Likewise.
16787 (vect_recog_vector_vector_shift_pattern): Likewise.
16788 (vect_recog_divmod_pattern): Likewise.
16789 (vect_recog_mixed_size_cond_pattern): Likewise.
16790 (vect_recog_bool_pattern): Likewise.
16791 (vect_pattern_recog_1): Likewise.
16792
48b1474e
MJ
167932013-05-15 Martin Jambor <mjambor@suse.cz>
16794
16795 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
16796 non-functions to builtin_unreachable.
16797 * ipa-inline-transform.c (inline_call): Do not assert estimates were
16798 correct when new direct edges were discovered.
16799
9de04252
MJ
168002013-05-15 Martin Jambor <mjambor@suse.cz>
16801
16802 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
16803 header, print symbol order instead of node uid, print more information
16804 about indirect edge targets.
16805 (ipa_make_edge_direct_to_target): Print symbol order instead of node
16806 uids.
16807 (ipa_make_edge_direct_to_target): Likewise.
16808 (remove_described_reference): Likewise.
16809 (propagate_controlled_uses): Likewise.
16810 (ipa_print_node_params): Also print symbol order.
16811 (ipcp_transform_function): Print symbol order instead of node uids.
16812 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
16813 (cgraph_get_create_real_symbol_node): Likewise.
16814 * ipa-cp.c (print_lattice): Likewise.
16815 (print_all_lattices): Likewise.
16816 (determine_versionability): Likewise.
16817 (initialize_node_lattices): Likewise.
16818 (estimate_local_effects): Likewise.
16819 (update_profiling_info): Likewise.
16820 (create_specialized_node): Likewise.
16821 (perhaps_add_new_callers): Likewise.
16822 (decide_about_value): Likewise.
16823 (decide_whether_version_node): Likewise.
16824 (identify_dead_nodes): Likewise.
16825 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
16826 (dump_inline_summary): Likewise.
16827 (estimate_node_size_and_time): Likewise.
16828 (inline_analyze_function): Likewise.
16829 * ipa-inline.c (report_inline_failed_reason): Likewise.
16830 (want_early_inline_function_p): Likewise.
16831 (edge_badness): Likewise.
16832 (update_edge_key): Likewise.
16833 (inline_small_functions): Likewise. Add dumping of order to two other
16834 dumps.
16835 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
16836 instead of node uids.
16837 (propagate_pure_const): Likewise.
16838 (propagate_pure_const): Likewise.
16839 * ipa-utils.c (dump_cgraph_node_set): Likewise.
16840 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
16841 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
16842 of node uids.
16843 * tree-pretty-print.c (dump_function_header): Likewise.
16844 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
16845 Print symbol order instead of node uids.
16846
1dd03b91
AK
168472013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16848
16849 * config/s390/s390.c (s390_register_move_cost): Don't impose the
16850 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
16851
fdf6a7b9
RB
168522013-05-15 Richard Biener <rguenther@suse.de>
16853
16854 PR tree-optimization/57275
16855 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
16856 return value for fail to do runtime alias checks for gather loads.
16857
2d6e4603
JH
168582013-05-15 Jan Hubicka <jh@suse.cz>
16859
16860 PR lto/57038
16861 PR lto/47375
e7208ea3
UB
16862 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
16863 weakrefs are not external.
16864 (lto_symtab_merge_decls): Fix thinko when dealing with
16865 non-lto_symtab decls.
2d6e4603
JH
16866 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
16867 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
16868 * varpool.c (dump_varpool_node): Dump more flags.
16869
83f44b39
GG
168702013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16871
16872 * config/i386/i386.c (processor_alias_table): Add instruction
16873 FSGSBASE for AMD bdver3 architecture.
16874
2e55d062
JJ
168752013-05-14 Jakub Jelinek <jakub@redhat.com>
16876
16877 * tree.c (warn_deprecated_use): Print file:line using locus color.
16878 * diagnostic.c (diagnostic_report_current_module): Print file:line
16879 and file:line:column using locus color.
16880
0bfdb81e
MS
168812013-05-14 Mike Stump <mikestump@comcast.net>
16882
16883 * gdbinit.in: Add __null.
16884
a508ef22
MS
168852013-05-14 Mike Stump <mikestump@comcast.net>
16886
16887 * recog.h: Rename struct recog_data to Recog_data.
16888 * recog.c: Likewise.
16889 * reload.c (can_reload_into): Likewise.
16890 * config/picochip/picochip.c: Likewise.
16891
e7180acb
MS
168922013-05-14 Mike Stump <mikestump@comcast.net>
16893
16894 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
16895
61216c26
SB
168962013-05-14 Steven Bosscher <steven@gcc.gnu.org>
16897
fd6beed4
SB
16898 * resource.h (struct resources): Remove unch_memory member.
16899 (CLEAR_RESOURCE): Don't clear unch_memory.
16900 * resource.c (mark_referenced_resources): Don't set it.
16901 (mark_set_resources): Likewise.
16902 (mark_target_live_regs): Don't clear it.
16903 (init_resource_info): Likewise.
16904 * reorg.c (resource_conflicts_p): Don't compare it.
16905 (redundant_insn): Don't set it.
16906
61216c26
SB
16907 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
16908 Remove prototypes.
16909 * emit-rtl.c (next_label): Remove unused function.
16910 (skip_consecutive_labels, link_cc0_insns): Move to ...
16911 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
16912 only place where these functions are used, and make them static.
16913
418d1b87
MG
169142013-05-14 Marc Glisse <marc.glisse@inria.fr>
16915
16916 * fold-const.c (fold_negate_expr): Handle vectors.
16917 (fold_truth_not_expr): Make it static.
16918 (fold_invert_truthvalue): New static function.
16919 (invert_truthvalue_loc): Handle vectors. Do not call
16920 fold_truth_not_expr directly.
16921 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
16922 <TRUTH_NOT_EXPR>: Do not cast to boolean.
16923 (fold_comparison): Handle vector constants.
16924 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
16925 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
16926 * tree.h (fold_truth_not_expr): Remove declaration.
16927
fc21784d
JG
169282013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
16929
16930 * config/aarch64/aarch64-simd.md
16931 (aarch64_vcond_internal<mode>): Rename to...
16932 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
16933 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
16934 float modes. Clarify all iterator modes.
16935 (vcond<mode><mode>): Use new name for vcond expanders.
16936 (vcond<v_cmp_result><mode>): Likewise.
16937 (vcondu<mode><mode>: Likewise.
16938 * config/aarch64/iterators.md (VDQF_COND): New.
16939
d4c52634
MG
169402013-05-14 Marc Glisse <marc.glisse@inria.fr>
16941
16942 PR bootstrap/57266
16943 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
16944 variable for the shift amount. Check that we shift by non-negative
16945 amounts.
16946
2b261262
CLT
169472013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
16948
16949 PR target/42017
16950 * config/arm/arm.h (EPILOGUE_USES): Only return true
16951 for LR_REGNUM after epilogue_completed.
16952
12211b99 169532013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
16954
16955 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 16956 is error_mark_node.
6e022d7b 16957
56cf7859
RO
169582013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16959
16960 PR target/57261
16961 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
16962 and Solaris 11+/x86 with gld.
16963 * configure: Regenerate.
16964
75776c6d
JJ
169652013-05-14 Jakub Jelinek <jakub@redhat.com>
16966
16967 * expmed.c (expand_shift_1): Canonicalize rotates by
16968 constant bitsize / 2 to bitsize - 1.
7f998021 16969 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
16970 case ROTATERT>: Likewise.
16971
16972 Revert:
16973 2013-05-10 Jakub Jelinek <jakub@redhat.com>
16974
16975 * config/i386/i386.md (rotateinv): New code attr.
16976 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16977 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16978 roll $31, %eax, etc.
16979
df35498a
RB
169802013-05-14 Richard Biener <rguenther@suse.de>
16981
16982 PR middle-end/57235
16983 * tree-eh.c (sink_clobbers): Give up for successors with
16984 multiple predecessors and no virtual uses.
16985
cc6e7ece
EB
169862013-05-14 Eric Botcazou <ebotcazou@adacore.com>
16987
16988 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
16989 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
16990
f778dd4d
JJ
169912013-05-14 Jakub Jelinek <jakub@redhat.com>
16992
16993 PR middle-end/57251
16994 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
16995 the case when both op0 and op1 have VOIDmode.
16996
bad4df9b
KP
169972013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16998
16999 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17000 in multiply-accumulate mode.
17001
56f3e9ac
GW
170022013-05-13 Guozhi Wei <carrot@google.com>
17003
17004 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17005
a3d7ab92
KT
170062013-05-13 Kai Tietz <ktietz@redhat.com>
17007
17008 PR target/56975
17009 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17010 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17011 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17012 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17013 (ix86_expand_prologue): Likewise.
17014 (ix86_expand_split_stack_prologue): Likewise.
17015 (legitimate_pic_address_disp_p): Likewise.
17016 (legitimize_pic_address): Likewise.
17017 (legitimize_tls_address): Likewise.
17018 (legitimize_pe_coff_symbol): Likewise.
17019 (output_pic_addr_const): Likewise.
17020 (construct_plt_address): Likewise.
17021 (ix86_expand_call): Likewise.
17022 (x86_output_mi_thunk): Likewise.
17023 (x86_function_profiler): Likewise.
17024
c59b7e28
SN
170252013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17026
17027 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17028 similar switch cases.
17029 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17030 (aarch64_simd_mov_to_<mode>low): Delete.
17031 (aarch64_simd_mov_to_<mode>high): Delete.
17032 (move_lo_quad_<mode>): Add w<-r alternative.
17033 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17034 (aarch64_simd_mov_from_*): Update type attribute.
17035 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17036 statement.
17037
5f28524a
JH
170382013-05-13 Jan Hubicka <jh@suse.cz>
17039
17040 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17041 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17042 ix86_expand_epilogue, emit_i387_cw_initialization,
17043 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17044 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17045
ae6fa899
JJ
170462013-05-13 Jakub Jelinek <jakub@redhat.com>
17047
17048 PR tree-optimization/45216
17049 PR tree-optimization/57157
17050 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17051 the (-Y) & (B - 1) variant if OP is |.
17052 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17053 return shifted. Use (-op1) & (prec - 1) as other_amount
17054 instead of prec - op1.
17055
4502fe8d
MJ
170562013-05-13 Martin Jambor <mjambor@suse.cz>
17057
17058 PR middle-end/42371
17059 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17060 (ipa_constant_data): New type.
17061 (ipa_jump_func): Use ipa_constant_data to hold information about
17062 constant jump functions.
17063 (ipa_get_jf_constant): Adjust to jump function type changes.
17064 (ipa_get_jf_constant_rdesc): New function.
17065 (ipa_param_descriptor): New field controlled_uses.
17066 (ipa_get_controlled_uses): New function.
17067 (ipa_set_controlled_uses): Likewise.
17068 * ipa-ref.h (ipa_find_reference): Declare.
17069 * ipa-prop.c (ipa_cst_ref_desc): New type.
17070 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17071 changes.
17072 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17073 New parameter cs. Adjust all callers.
17074 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17075 (remove_described_reference): New function.
17076 (jfunc_rdesc_usable): Likewise.
17077 (try_make_edge_direct_simple_call): Decrement controlled use count,
17078 attempt to remove reference if it hits zero.
17079 (combine_controlled_uses_counters): New function.
17080 (propagate_controlled_uses): Likewise.
17081 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17082 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17083 (ipa_print_node_params): Print described use counter.
17084 (ipa_write_jump_function): Adjust to jump function type changes.
17085 (ipa_read_jump_function): New parameter CS, pass it to
17086 ipa_set_jf_constant. Adjust caller.
17087 (ipa_write_node_info): Stream controlled use count
17088 (ipa_read_node_info): Likewise.
17089 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17090 asserting.
17091 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17092 count. Remove cloning-added reference if it reaches zero.
17093 * ipa-ref.c (ipa_find_reference): New function.
17094
0864bfc2
GG
170952013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17096
e7208ea3 17097 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17098 alignment values for AMD BD and BT architectures.
17099
640bfeb2
MG
171002013-05-13 Marc Glisse <marc.glisse@inria.fr>
17101
17102 * tree-vect-generic.c (uniform_vector_p): Move ...
17103 * tree.c (uniform_vector_p): ... here.
17104 * tree.h (uniform_vector_p): Declare it.
17105 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17106 into a scalar.
17107
3a60f32b
JJ
171082013-05-13 Jakub Jelinek <jakub@redhat.com>
17109
198fe1bf
JJ
17110 PR tree-optimization/57230
17111 * tree-ssa-strlen.c (handle_char_store): Record length for
17112 array store from STRING_CST.
17113
3a60f32b
JJ
17114 PR tree-optimization/57230
17115 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17116 check.
17117
566be57c
JR
171182013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17119
17120 * config/epiphany/epiphany.c (epiphany_init): Check size of
17121 NUM_MODES_FOR_MODE_SWITCHING.
17122 (epiphany_expand_prologue):
17123 Remove CONFIG_REGNUM initial value handling code.
17124 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17125 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17126 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17127 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17128 Don't return 1 for FP_MODE_NONE.
17129 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17130 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17131 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17132 * config/epiphany/epiphany.md (save_config): New pattern.
17133
0f2c2331
UB
171342013-05-12 Uros Bizjak <ubizjak@gmail.com>
17135
17136 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17137
5b3f93c7
UB
171382013-05-10 Uros Bizjak <ubizjak@gmail.com>
17139
17140 * config/i386/i386.md (memory): Handle sseishft1.
17141 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17142 (*vec_extractv2di_1): Ditto.
17143
1f873f0e
VM
171442013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17145
17146 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17147 saved registers.
17148
341427fa 171492013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17150
17151 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17152 Add mthumb/march=armv7-a multilib.
17153 Add mthumb/march=armv7-r multilib.
17154 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17155
9e69bdde
RC
171562013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17157
17158 * config/v850/t-rtems: Add more multilibs.
17159
9ff09a22
RB
171602013-05-10 Richard Biener <rguenther@suse.de>
17161
17162 PR tree-optimization/57214
17163 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17164 not propagate from SSA names that occur in abnormal PHI nodes.
17165
a5e0cd1d
MG
171662013-05-10 Marc Glisse <marc.glisse@inria.fr>
17167
17168 * stor-layout.c (element_precision): New function.
17169 * machmode.h (element_precision): Declare it.
17170 * tree.c (build_minus_one_cst): New function.
17171 (element_precision): Likewise.
17172 * tree.h (build_minus_one_cst): Declare new function.
17173 (element_precision): Likewise.
17174 * fold-const.c (operand_equal_p): Use element_precision.
17175 (fold_binary_loc): Handle vector types.
17176 * convert.c (convert_to_integer): Use element_precision.
17177 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17178 separately.
17179
cb2558bc
RS
171802013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17181
17182 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17183 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17184 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17185 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17186 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17187 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17188 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17189 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17190 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17191 (Uuw8): New constraints.
17192 (Usb4): Move into alphabetical order.
17193 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17194 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17195 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17196 previously unnamed patterns.
17197 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17198 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17199 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17200 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17201 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17202 of specific lengths.
17203
cb3b8d33
JJ
172042013-05-10 Jakub Jelinek <jakub@redhat.com>
17205
6f93c008
JJ
17206 * config/i386/i386.md (rotateinv): New code attr.
17207 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17208 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17209 roll $31, %eax, etc.
17210
cb3b8d33
JJ
17211 PR tree-optimization/45216
17212 PR tree-optimization/57157
17213 * tree-ssa-forwprop.c (simplify_rotate): New function.
17214 (ssa_forward_propagate_and_combine): Call it.
17215
afb119be
RB
172162013-05-10 Richard Biener <rguenther@suse.de>
17217
17218 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17219 disable peeling when we version for aliasing.
17220 (vector_alignment_reachable_p): Honor explicit user alignment.
17221 (vect_supportable_dr_alignment): Likewise.
17222 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17223 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17224 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17225 then peeling to arrange for the cost-model check to come first.
17226
01ae4861
AM
172272013-05-10 Alan Modra <amodra@gmail.com>
17228
17229 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17230 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17231 * configure: Regenerate.
17232
ebc9a431
AM
172332013-05-10 Alan Modra <amodra@gmail.com>
17234
17235 PR target/55033
17236 * varasm.c (default_elf_select_section): Move !DECL_P check..
17237 (get_named_section): ..to here before calling get_section_name.
17238 Adjust assertion.
17239 (default_section_type_flags): Add DECL_P check.
17240 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17241 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17242
d4bca93c
JR
172432013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17244
17245 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17246 When using gen_stack_adjust_str with a register offset, add a
17247 REG_FRAME_RELATED_EXPR note.
17248
60ca9a65
UB
172492013-05-09 Uros Bizjak <ubizjak@gmail.com>
17250
17251 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17252 (*vec_extractv4si_zext_mem): Ditto.
17253 (*vec_extractv2di): Add 0->x and x->x alternatives.
17254 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17255 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17256
a3409c02
JM
172572013-05-09 Jason Merrill <jason@redhat.com>
17258
0138d6b2
JM
17259 N3639 C++1y VLA support
17260 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17261 DECL_VALUE_EXPR.
17262
a3409c02
JM
17263 * tree.c (build_constructor_va): New.
17264 * tree.h: Declare it.
17265
66e6b990
MJ
172662013-05-09 Martin Jambor <mjambor@suse.cz>
17267
17268 PR lto/57084
17269 * gimple-fold.c (canonicalize_constructor_val): Call
17270 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17271
64cfa6c0
JH
172722013-05-09 Jan Hubicka <jh@suse.cz>
17273 Richard Biener <rguenther@suse.de>
17274
17275 PR lto/54095
17276 * symtab.c (symtab_make_decl_local): Do not add private names.
17277
c3167b00
JH
172782013-05-09 Jan Hubicka <jh@suse.cz>
17279
17280 PR lto/54095
17281 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17282 (unlink_from_assembler_name_hash): Likewise.
17283 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17284 symtab_unregister_node, symtab_initialize_asm_name_hash,
17285 change_decl_assembler_name): Update.
17286
12dc6974
SN
172872013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17288
17289 * config/aarch64/aarch64.md: New movtf split.
17290 (*movtf_aarch64): Update.
17291 (aarch64_movdi_tilow): Handle TF modes and rename to
17292 aarch64_movdi_<mode>low.
17293 (aarch64_movdi_tihigh): Handle TF modes and rename to
17294 aarch64_movdi_<mode>high
17295 (aarch64_movtihigh_di): Handle TF modes and rename to
17296 aarch64_mov<mode>high_di
17297 (aarch64_movtilow_di): Handle TF modes and rename to
17298 aarch64_mov<mode>low_di
17299 (aarch64_movtilow_tilow): Remove spurious whitespace.
17300 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17301 splits.
17302 (aarch64_print_operand): Update.
17303
227eb343
AM
173042013-05-09 Alan Modra <amodra@gmail.com>
17305
17306 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17307 powerpc64le.
17308 * configure: Regenerate.
17309
0b013847
UB
173102013-05-08 Uros Bizjak <ubizjak@gmail.com>
17311
17312 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17313 splitter preparation statements.
17314 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17315 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17316 adjust_address_nv.
17317
1dc3d6e9
BS
173182013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17319
17320 * gimple-ssa-strength-reduction.c (count_candidates): Change
17321 return value to int.
17322 (analyze_candidates_and_replace): Change type of length to int.
17323
e61e7d28
UB
173242013-05-08 Uros Bizjak <ubizjak@gmail.com>
17325
17326 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17327 (*vec_extract<mode>): Use VI12_128 mode iterator.
17328 (*vec_extract<mode>_mem): Ditto.
17329 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17330 attribute.
17331
4fbfcf44
DN
173322013-05-08 Diego Novillo <dnovillo@google.com>
17333
17334 PR bootstrap/54659
17335
17336 Revert:
4fbfcf44
DN
17337 2012-08-17 Diego Novillo <dnovillo@google.com>
17338
e61e7d28
UB
17339 PR bootstrap/54281
17340 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17341 * config.in: Regenerate.
17342 * configure: Regenerate.
17343 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17344
702d8703
JH
173452013-05-08 Jan Hubicka <jh@suse.cz>
17346
17347 PR lto/54095
17348 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17349 * cgraph.h (symtab_node_base): Add unique_name.
17350 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17351 input_overwrite_node, input_varpool_node): Stream unique_name.
17352 * cgraphclones.c (cgraph_create_virtual_clone,
17353 cgraph_function_versioning): Set unique_name.
17354 * ipa.c (function_and_variable_visibility): Set unique_name.
17355
8b28cf47
BS
173562013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17357
17358 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17359 (alloc_cand_and_find_basis): Restrict conditional candidate
17360 processing to CAND_MULTs.
17361
e86074fd
JH
173622013-05-08 Jan Hubicka <jh@suse.cz>
17363
17364 PR lto/54095
17365 lto-symtab.c (lto_symtab_symbol_p): New function.
17366 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17367 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17368 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17369 Skip static symbols.
17370
44398cbe
PC
173712013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17372
17373 PR tree-optimization/57200
17374 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17375 Only call inform if the preceding warning_at returns true.
17376
f6bc1c4a
HS
173772013-05-07 Han Shen <shenhan@google.com>
17378
17379 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17380 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17381 * common.opt (fstack-protector-strong): New option.
17382 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17383 * doc/invoke.texi (Optimization Options): Document
17384 "-fstack-protector-strong".
17385 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17386
4ffecb1f
SB
173872013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17388
17389 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17390
5a107a0f
VM
173912013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17392
17393 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17394 it is not lhs of the insn.
17395 (setup_reg_equiv): Remove insn having equiv memory which it is not
17396 lhs of the insn.
17397 * lra-constraints.c (process_address): Try to improve generation
17398 code for address base + disp.
17399 (lra_constraints): Make correct the code for checking insn setting
17400 up backward equivalence. Remove insn only if it is in the init
17401 insn list.
17402 * lra-eliminations.c (update_reg_eliminate): Change return value.
17403 (lra_eliminate): Use the result.
17404
3f5783ea
UB
174052013-05-07 Uros Bizjak <ubizjak@gmail.com>
17406
17407 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17408 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17409 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17410 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17411 register target operands.
17412 (*vec_extractv8hi_sse2): New pattern.
17413 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17414 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17415 (*vec_extract<mode>_mem): New insn and split pattern.
17416
8a5800b8
CL
174172013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17418
17419 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17420 (TARGET_ASAN_SHADOW_OFFSET): Define.
17421 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17422 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17423
7bf55a70
BS
174242013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17425
17426 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17427 (incr_vec_index): Return -1 if increment not found.
17428 (create_add_on_incoming_edge): Assert if increment not found.
17429 (record_increment): Limit number of increments recorded.
17430 (all_phi_incrs_profitable): Return false if an increment not found.
17431 (replace_profitable_candidates): Don't process increments that were
17432 not recorded.
17433 (analyze_candidates_and_replace): Limit size of incr_vec.
17434
3f8825c0
RB
174352013-05-07 Richard Biener <rguenther@suse.de>
17436
17437 * calls.c (special_function_p): setjmp-like functions are leaf.
17438 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17439 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17440
fd4842cd
SN
174412013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17442
17443 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17444 (aarch64_simd_mov<mode>): New expander.
17445 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17446 (aarch64_simd_mov_to_<mode>high): Likewise.
17447 (aarch64_simd_mov_from_<mode>low): Likewise.
17448 (aarch64_simd_mov_from_<mode>high): Likewise.
17449 (aarch64_dup_lane<mode>): Update.
17450 (aarch64_dup_lanedi): New instruction pattern.
17451 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17452 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17453
a7a7d10e
BS
174542013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17455
17456 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17457 (replace_mult_candidate): Remove unnecessary argument; remove
17458 unnecessary parameter from call to introduce_cast_before_cand.
17459 (replace_unconditional_candidate): Remove unnecessary parameter
17460 from call to replace_mult_candidate.
17461 (replace_conditional_candidate): Likewise.
17462 (insert_initializers): Use make_temp_ssa_name.
17463 (introduce_cast_before_cand): Remove unnecessary argument; use
17464 make_temp_ssa_name.
17465 (replace_one_candidate): Remove unnecessary argument; remove
17466 unnecessary parameter from calls to introduce_cast_before_cand.
17467 (replace_profitable_candidates): Remove unnecessary parameters
17468 from calls to replace_one_candidate.
17469
29105868
BS
174702013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17471
17472 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17473 phi def as possibly hiding a basis for a CAND_ADD whose operands
17474 have been commuted in the analysis.
17475 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17476
4095f9fa
N
174772013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17478
17479 * config/aarch64/aarch64.md
17480 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17481 shift value between 0-4.
17482
39e843e8
RB
174832013-05-07 Richard Biener <rguenther@suse.de>
17484
17485 * double-int.h (rshift): New overload.
17486 * double-int.c (rshift): New function.
17487 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17488 (create_reference_ops_from_ref): Remove.
17489 (vn_reference_insert): Use shared ops for constructing the
17490 reference and copy it.
17491
0a1a83cb
RB
174922013-05-07 Richard Biener <rguenther@suse.de>
17493
17494 PR middle-end/57190
17495 * tree-eh.c (sink_clobbers): Properly propagate
17496 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17497
43303d6f
JJ
174982013-05-07 Jakub Jelinek <jakub@redhat.com>
17499
ba7e83f8
JJ
17500 PR tree-optimization/57149
17501 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17502 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17503 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17504 uninit_undefined_value_p instead of ssa_undefined_value_p.
17505
43303d6f
JJ
17506 PR debug/57184
17507 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17508 for modifier == EXPAND_INITIALIZER.
17509
14523c25
AB
175102013-05-07 Anton Blanchard <anton@samba.org>
17511
17512 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17513 for powerpc64 little endian.
17514 * configure: Regenerate.
17515
cb7c8be9
GS
175162013-05-06 Graham Stott <grahams@btinternet.com>
17517
17518 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17519 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17520 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17521 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17522
175232013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17524
17525 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17526 codes which allow non-lvalues.
17527
9a0ee7b0
MG
175282013-05-06 Marc Glisse <marc.glisse@inria.fr>
17529
17530 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17531 components are all 1s.
17532 (integer_minus_onep): New function.
17533 * tree.h (integer_minus_onep): Declare it.
17534 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17535 integer_minus_onep instead of integer_all_onesp.
17536
f2c17ea9
OE
175372013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17538
17539 PR target/52933
17540 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17541 variations of these patterns.
17542
f75e6a51
UB
175432013-05-06 Uros Bizjak <ubizjak@gmail.com>
17544
17545 * config/i386/i386.md (isa): Add x64_sse4 member.
17546 (enabled): Handle x64_sse4.
17547 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17548 instruction for 64bit SSE4_1 targets. Update insn attributes.
17549 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17550 instruction for SSE4_1 targets. Update insn attributes.
17551 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17552 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17553 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17554 const_1 selector.
17555 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17556 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17557 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17558
a986d468
OE
175592013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17560
17561 PR target/57108
17562 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17563
382522cb
MK
175642013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17565
17566 * final.c (do_assembler_dialects): Don't handle curly braces and
17567 vertical bar escaped by % as dialect delimiters.
17568 (output_asm_insn): Print curly braces and vertical bar if escaped
17569 by % and ASSEMBLER_DIALECT defined.
17570 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17571 * doc/tm.texi: Regenerated.
17572
fb0d5c60
SB
175732013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17574
fb0d5c60
SB
17575 * config/mips/mips.c: Include tree-pass.h.
17576 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17577 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17578 (pass_mips_machine_reorg2): New machine specific pass.
17579 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17580 (mips_option_override): Register the new pass.
17581 * rtl.h (cleanup_barriers): Remove prototype.
17582 (dbr_schedule): Likewise.
17583 * jump.c (cleanup_barriers): Make static.
17584 * reorg.c (dbr_schedule): Likewise.
17585
aa06a978
RB
175862013-05-06 Richard Biener <rguenther@suse.de>
17587
17588 PR tree-optimization/57185
17589 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17590 SSA names properly.
17591
0b953bec
UB
175922013-05-06 Uros Bizjak <ubizjak@gmail.com>
17593
17594 PR target/57106
17595 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17596 between "first_arg" and "insn", not "last" and "insn".
17597
28708525
WS
175982013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17599
17600 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17601 (find_candidates_in_block): Re-enable slsr_process_phi.
17602 (create_phi_basis): Fix double counting of candidate adjustment.
17603
0107dca2
RB
176042013-05-06 Richard Biener <rguenther@suse.de>
17605
17606 PR middle-end/57147
17607 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17608 the edge is also fallthru, preserve it and just clear the
17609 abnormal flag.
17610 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17611 also complex, preserve that and just clear the fallthru flag.
17612 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17613 update virtual operands.
17614
470d4d13
AM
176152013-05-06 Alan Modra <amodra@gmail.com>
17616
17617 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17618 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17619 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17620 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17621 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17622 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17623
8f1dbf8d
AM
176242013-05-06 Alan Modra <amodra@gmail.com>
17625
17626 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17627 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17628 (DEFAULT_ASM_ENDIAN): Define.
17629 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17630 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17631 Update -K PIC clause from sysv4.h.
17632 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17633 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17634
54890767
AM
176352013-05-06 Alan Modra <amodra@gmail.com>
17636
17637 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17638 twice for little-endian.
17639 (ashrdi3_no_power, ashrdi3): Support little-endian.
17640
2353515d
OE
176412013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17642
17643 PR target/55303
17644 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17645 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17646 related expanders.
17647 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17648 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17649 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17650 New predicates.
17651
33e67557
SB
176522013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17653 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17654
17655 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17656 * config/pa/pa.opt: Make mbig-switch a no-op.
17657 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17658 (CASE_VECTOR_MODE): Always return SImode.
17659 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17660 for the !TARGET_BIG_SWITCH case.
17661 * config/pa/pa-linux.h: Likewise.
17662 * config/pa/pa-openbsd.h: Likewise.
17663 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17664 * config/pa/pa.md (short_jump): Remove define_insn.
17665 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17666 (casesi0): Remove define_insn.
17667 (type): Remove btable_branch.
17668 (pa_combine_type): Likewise.
17669 (in_nullified_branch_delay): Likewise.
17670 (in_call_delay): Likewise.
17671 (define_delay): Likewise.
17672 (define_insn_reservation "Z3"): Likewise.
17673 (define_insn_reservation "Z4"): Likewise.
17674 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17675 (pa_adjust_insn_length): Remove adjustment for btable branches.
17676 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17677 and mno-big-switch
17678
3095685e
UB
176792013-05-05 Uros Bizjak <ubizjak@gmail.com>
17680
17681 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17682 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17683 Add m->r,x alternatives.
17684 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17685 splitters using SWI48x mode iterator.
17686 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17687 TARGET_64BIT. Add m->x alternative.
17688 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17689 Add o->x alternative. Enable for TARGET_SSE.
17690 (sse_storeq): Remove expander.
17691 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17692 with memory input operand.
17693 (*vec_extractv2di_1 splitter): New.
17694 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17695 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17696
4b36ae28
SB
176972013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17698
17699 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17700 (INT_LOWPART): Delete.
17701 (extract_MB): Adjust.
17702 (extract_ME): Adjust.
17703 (print_operand): Adjust.
17704
da226db2
SB
177052013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17706
17707 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17708 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17709 (reg_or_logical_cint_operand, easy_fp_constant,
17710 logical_const_operand): Delete "CONST_DOUBLE" case.
17711 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17712 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 17713 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
17714 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17715 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17716 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17717 test.
17718 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17719 CONST_DOUBLE DImode/VOIDmode case.
17720 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17721 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17722 CONST_DOUBLE VOIDmode case.
17723 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17724 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17725 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17726 Delete CONST_DOUBLE case.
17727 (splitters for mov FMOVE64 const_double): Delete
17728 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17729 "HOST_BITS_PER_WIDE_INT >= 64" test.
17730 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17731 case.
17732 (mov DI const_double): Delete.
17733
40de22d6
JJ
177342013-05-04 Jakub Jelinek <jakub@redhat.com>
17735
17736 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17737 on op shows all bits zero in mode of a lowpart subreg, return zero.
17738
5ec6aff2
MM
177392013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17740
17741 PR target/57150
17742 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17743 to save TFmode registers and DImode to save TImode registers for
17744 caller save operations.
17745 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17746 mark being partially clobbered since they only use the first
17747 double word.
17748
17749 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17750 and TDmode only use the upper 64-bits of each VSX register.
17751
2cefad90
BS
177522013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17753
17754 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17755 (find_candidates_in_block): Disable slsr_process_phi.
17756
d6d7eee1
GW
177572013-05-03 Guozhi Wei <carrot@google.com>
17758
17759 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
17760 constructor to ...
17761 (build_init_ctor): ... here.
d6d7eee1 17762
9b92d12b
BS
177632013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17764
17765 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
17766 (slsr_cand_d): Redefine def_phi.
17767 (stride_status, phi_adjust_status, count_phis_status): New enums.
17768 (find_phi_def): New.
17769 (find_basis_for_base_expr): New.
17770 (find_basis_for_candidate): Handle hidden bases.
17771 (alloc_cand_and_find_basis): Handle phi candidates.
17772 (slsr_process_phi): New.
17773 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
17774 (create_mul_imm_cand): Likewise.
17775 (create_add_ssa_cand): Exclude phi base candidates.
17776 (create_add_imm_cand): Likewise.
17777 (slsr_process_cast): Likewise.
17778 (slsr_process_copy): Likewise.
17779 (find_candidates_in_block): Handle phi candidates.
17780 (dump_candidate): Likewise.
17781 (unconditional_cands): Delete.
17782 (unconditional_cands_with_known_stride_p): Delete.
17783 (phi_dependent_cand_p): New.
17784 (cand_increment): Handle phi-dependent candidates.
17785 (replace_dependent): Delete.
17786 (replace_mult_candidate): New.
17787 (replace_unconditional_candidate): New.
17788 (incr_vec_index): Move to avoid forward reference.
17789 (create_add_on_incoming_edge): New.
17790 (create_phi_basis): New.
17791 (replace_dependents): Delete.
17792 (replace_conditional_candidate): New.
17793 (phi_add_costs): New.
17794 (replace_uncond_cands_and_profitable_phis): New.
17795 (record_increment): Handle phi adjustments.
17796 (record_phi_increments): New.
17797 (record_increments): Handle phi adjustments.
17798 (phi_incr_cost): New.
17799 (lowest_cost_path): Handle phis.
17800 (total_savings): Likewise.
17801 (analyze_increments): Likewise.
17802 (ncd_with_phi): New.
17803 (ncd_of_cand_and_phis): New.
17804 (nearest_common_dominator_for_cands): Handle phi increments.
17805 (all_phi_incrs_profitable): New.
17806 (replace_profitable_candidates): Handle phi-dependent candidates.
17807 (analyze_candidates_and_replace): Likewise.
17808
68f073d4
TJ
178092013-05-03 Teresa Johnson <tejohnson@google.com>
17810
17811 PR bootstrap/57154
17812 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
17813 do not exceed REG_BR_PROB_BASE.
17814
a4ee7cb9
JL
178152013-05-03 Jeff Law <law@redhat.com>
17816
ade67f70 17817 PR tree-optimization/57144
a4ee7cb9
JL
17818 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
17819 operand of the condition will bit into the new type when eliminating
17820 a cast feeding a condition.
17821
47954c4e
JJ
178222013-05-03 Jakub Jelinek <jakub@redhat.com>
17823
17824 PR rtl-optimization/57130
3095685e
UB
17825 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
17826 of COMPARE as in_code to the recursive call if needed.
47954c4e 17827
3c21604f
UB
178282013-05-03 Uros Bizjak <ubizjak@gmail.com>
17829
17830 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
17831 (enabled): Handle new members.
17832 * config/i386/sse.md (*vec_concatv2si): Merge from
17833 *vec_concatv2si_sse2 and vec_concatv2si_sse.
17834 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
17835
12211b99 178362013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
17837
17838 PR tree-optimization/57027
17839 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
17840 for fnms opportunity, check we got the prerequisite kind
17841 of tree / gimple before using accessor functions.
17842
07bfc9ec
RB
178432013-05-03 Richard Biener <rguenther@suse.de>
17844
17845 * double-int.h (lshift): New overload without precision
17846 and arith argument.
17847 (operator *=, operator +=, operator -=): Move ...
17848 * double-int.c (operator *=, operator +=, operator -=): ... here
17849 and implement more efficiently.
17850 (mul_double_with_sign): Remove.
17851 (lshift_double): Adjust to take unsinged shift argument, push
17852 dispatching code to callers.
17853 (mul_double_wide_with_sign): Add early out for callers that
17854 are not interested in high parts or overflow.
17855 (lshift): New function.
17856 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
17857 dispatch code here.
17858 (lrotate, rrotate): Use logical shifts.
17859 * expr.c (get_inner_reference): Use lshift.
17860 * fixed-value.c (do_fixed_divide): Likewise.
17861 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17862 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17863 (indirect_refs_may_alias_p): Likewise.
17864 (stmt_kills_ref_p_1): Likewise.
17865
7769bb64
VP
178662013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17867
17868 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
17869
1d0c8e5c
VP
178702013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17871
17872 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
17873 scalar form of FABD instruction.
17874
f15feaf9
VM
178752013-05-02 Vladimir Makarov <vmakarov@redhat.com>
17876
17877 * lra-constraints.c (process_alt_operands): Add checking alt
17878 number to choose the best alternative.
17879
d90e76d4
RB
178802013-05-02 Richard Biener <rguenther@suse.de>
17881
17882 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
17883 bitmap and its handling.
17884 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
17885
9f8e7a96
RB
178862013-05-02 Richard Biener <rguenther@suse.de>
17887
17888 PR middle-end/57140
17889 * tree-inline.c (copy_loops): Properly handle removed loops.
17890 (copy_cfg_body): Mark destination loops for fixup if source
17891 loops needed fixup.
17892
f3a81b39
GY
178932013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
17894
17895 PR target/56732
17896 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
17897 generating simple_return for naked functions.
17898
7b920a9a
MJ
178992013-05-02 Martin Jambor <mjambor@suse.cz>
17900
17901 PR middle-end/56988
17902 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
17903 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
17904 flags match.
17905 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
17906 ipa_agg_replacement_value structures.
17907 (known_aggs_to_agg_replacement_list): Likewise.
17908 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
17909 (read_agg_replacement_chain): Likewise.
17910 (ipcp_transform_function): Also check that by_ref flags match.
17911
2c41c19d
RB
179122013-05-02 Richard Biener <rguenther@suse.de>
17913
17914 * graphds.h (struct graph): Add obstack member.
17915 * graphds.c (new_graph): Initialize obstack and allocate
17916 vertices from it.
17917 (add_edge): Allocate edge from the obstack.
3c21604f 17918 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 17919
8b47039c
TJ
179202013-05-02 Teresa Johnson <tejohnson@google.com>
17921
17922 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
17923 divides.
17924 * cfg.c (update_bb_profile_for_threading): Ditto.
17925 * tree-inline.c (copy_bb): Ditto.
17926 (copy_edges_for_bb): Ditto.
17927 (initialize_cfun): Ditto.
17928 (copy_cfg_body): Ditto.
17929 (expand_call_inline): Ditto.
17930 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
17931 (estimate_node_size_and_time): Ditto.
17932 (inline_merge_summary): Ditto.
17933 * cgraphclones.c (cgraph_clone_edge): Ditto.
17934 (cgraph_clone_node): Ditto.
17935 * sched-rgn.c (compute_dom_prob_ps): Ditto.
17936 (compute_trg_info): Ditto.
17937
da65928c
IB
179382013-05-02 Ian Bolton <ian.bolton@arm.com>
17939
17940 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
17941 S reg when fp attribute set.
17942 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
17943
add3c965
IB
179442013-05-02 Ian Bolton <ian.bolton@arm.com>
17945
17946 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
17947 New pattern.
17948 (*and_one_cmplsi3_compare0_uxtw): Likewise.
17949 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
17950 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17951
fdd43ac4
RB
179522013-05-02 Richard Biener <rguenther@suse.de>
17953
17954 * tree-scalar-evolution.c (scev_info_hasher): Remove.
17955 (struct instantiate_cache_entry): New type.
17956 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
17957 (struct instantiate_cache_type): New type.
17958 (set_instantiated_value, get_instantiated_value): Remove.
17959 (get_instantiated_value_entry): New function.
17960 (instantiate_scev_name): Use the new cache and adjust.
17961 (instantiate_scev_poly): Adjust.
17962 (instantiate_scev_binary): Likewise.
17963 (instantiate_array_ref): Likewise.
17964 (instantiate_scev_convert): Likewise.
17965 (instantiate_scev_not): Likewise.
17966 (instantiate_scev_3): Likewise.
17967 (instantiate_scev_2): Likewise.
17968 (instantiate_scev_r): Likewise.
17969 (instantiate_scev): Likewise.
17970 (resolve_mixers): Likewise.
17971
36ff9dfb
VM
179722013-05-01 Vladimir Makarov <vmakarov@redhat.com>
17973
17974 PR target/57091
17975 * lra-constraints.c (best_small_class_operands_num): Remove.
17976 (process_alt_operands): Remove small_class_operands_num. Take
17977 small classes operands into losers and only if the operand is not
17978 matched. Modify debugging output.
17979 (curr_insn_transform): Remove best_small_class_operands_num.
17980 Print insn name.
17981
36054fab
JG
179822013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17983
17984 * config/aarch64/aarch64-builtins.c
17985 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
17986 * config/aarch64/aarch64-simd-builtins.def
17987 (reduc_splus_): Add new modes.
17988 (reduc_uplus_): New.
17989 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
17990 (reduc_uplus_v4sf): Likewise.
17991 (reduc_splus_v4sf): Likewise.
17992 (aarch64_addv<mode>): Likewise.
17993 (reduc_uplus_<mode>): Likewise.
17994 (reduc_splus_<mode>): Likewise.
17995 (aarch64_addvv2di): Likewise.
17996 (reduc_uplus_v2di): Likewise.
17997 (reduc_splus_v2di): Likewise.
17998 (aarch64_addvv2si): Likewise.
17999 (reduc_uplus_v2si): Likewise.
18000 (reduc_splus_v2si): Likewise.
18001 (reduc_<sur>plus_<mode>): New.
18002 (reduc_<sur>plus_v2di): Likewise.
18003 (reduc_<sur>plus_v2si): Likewise.
18004 (reduc_<sur>plus_v4sf): Likewise.
18005 (aarch64_addpv4sf): Likewise.
18006 * config/aarch64/arm_neon.h
18007 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18008 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18009 add UNSPEC_SADDV, UNSPEC_UADDV.
18010 (SUADDV): New.
18011 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18012
6dce23a8
JG
180132013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18014
18015 * config/aarch64/arm_neon.h
18016 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18017
1598945b
JG
180182013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18019
18020 * config/aarch64/aarch64-builtins
18021 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18022
998eaf97
JG
180232013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18024
18025 * config/aarch64/aarch64-simd-builtins.def
18026 (reduc_smax_): New.
18027 (reduc_smin_): Likewise.
18028 (reduc_umax_): Likewise.
18029 (reduc_umin_): Likewise.
18030 (reduc_smax_nan_): Likewise.
18031 (reduc_smin_nan_): Likewise.
18032 (fmax): Remove.
18033 (fmin): Likewise.
18034 (smax): Update for V2SF, V4SF and V2DF modes.
18035 (smin): Likewise.
18036 (smax_nan): New.
18037 (smin_nan): Likewise.
18038 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18039 (<su><maxmin><mode>3): ...This, refactor.
18040 (s<maxmin><mode>3): New.
18041 (<maxmin_uns><mode>3): Likewise.
18042 (reduc_<maxmin_uns>_<mode>): Refactor.
18043 (reduc_<maxmin_uns>_v4sf): Likewise.
18044 (reduc_<maxmin_uns>_v2si): Likewise.
18045 (aarch64_<fmaxmin><mode>: Remove.
18046 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18047 new builtin names.
18048 (vmin<q>_f<32,64>): Likewise.
18049 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18050 (FMAXMIN): New.
18051 (su): Add mappings for smax, smin, umax, umin.
18052 (maxmin): New.
18053 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18054 (FMAXMIN): Rename as...
18055 (FMAXMIN_UNS): ...This.
18056 (maxminv): Remove.
18057 (fmaxminv): Likewise.
18058 (fmaxmin): Likewise.
18059 (maxmin_uns): New.
18060 (maxmin_uns_op): Likewise.
18061
bd11644e
JG
180622013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18063
18064 * config/aarch64/arm_neon.h
18065 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18066 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18067 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18068
75dd5ace
JG
180692013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18070
18071 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18072 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18073
7c19979f
JG
180742013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18075
18076 * config/aarch64/aarch64-simd.md
18077 (vcond<mode>_internal): Handle special cases for constant masks.
18078 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18079 (vcondu<mode><mode>): Likewise.
18080 (vcond<v_cmp_result><mode>): New.
18081
bb60efd9
JG
180822013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18083
18084 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18085 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18086 * config/aarch64/aarch64-simd-builtins.def
18087 (cmeq): Update to BUILTIN_VALLDI.
18088 (cmgt): Likewise.
18089 (cmge): Likewise.
18090 (cmle): Likewise.
18091 (cmlt): Likewise.
18092 * config/aarch64/arm_neon.h
18093 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18094 to builtins or C as appropriate.
18095
889b9412
JG
180962013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18097
18098 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18099 (cmgeu): ...This.
18100 (cmhi): Rename to...
18101 (cmgtu): ...This.
18102 * config/aarch64/aarch64-simd.md
18103 (simd_mode): Add SF.
18104 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18105 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18106 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18107 (cstore<mode>_neg): ...This.
18108 * config/aarch64/iterators.md
18109 (VALLF): new.
18110 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18111 (COMPARISONS): New.
18112 (UCOMPARISONS): Likewise.
18113 (optab): Add missing comparisons.
18114 (n_optab): New.
18115 (cmp_1): Likewise.
18116 (cmp_2): Likewise.
18117 (CMP): Likewise.
18118 (cmp): Remove.
18119 (VCMP_S): Likewise.
18120 (VCMP_U): Likewise.
18121 (V_cmp_result): Add DF, SF modes.
18122 (v_cmp_result): Likewise.
18123 (v): Likewise.
18124 (vmtype): Likewise.
18125 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18126
0a7dbb76
GY
181272013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18128
18129 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18130 define_insn to define_insn_and_split.
18131 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18132 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18133 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18134 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18135 (thumb2_negscc): Likewise.
18136
fb614ca6
GY
181372013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18138
18139 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18140
9e64a0bf
GY
181412013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18142
18143 * config/arm/thumb2.md: Remove trailing whitespaces.
18144
d6b28156
RS
181452013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18146
18147 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18148 Use gen_int_mode rather than GEN_INT.
18149
f91674c3
L
181502013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18151
b0dec607 18152 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18153 debug_gimple_stmt.
18154
3551257c
RB
181552013-04-30 Richard Biener <rguenther@suse.de>
18156
18157 PR middle-end/57122
3c21604f 18158 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18159
4c1aff1c
RB
181602013-04-30 Richard Biener <rguenther@suse.de>
18161
18162 PR middle-end/57107
18163 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18164
54b8379a
AB
181652013-04-30 Andrey Belevantsev <abel@ispras.ru>
18166
18167 PR rtl-optimization/56957
18168 PR rtl-optimization/57105
54b8379a
AB
18169 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18170 variable. Use just INSN_UID for determining whether an insn
18171 should be only disconnected from the insn stream.
18172 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18173
abc27962
JJ
181742013-04-30 Jakub Jelinek <jakub@redhat.com>
18175
18176 PR tree-optimization/57104
18177 * tsan.c (instrument_expr): Don't instrument accesses to
18178 DECL_HARD_REGISTER VAR_DECLs.
18179
0fc822d0
RB
181802013-04-30 Richard Biener <rguenther@suse.de>
18181
18182 * function.h (loops_for_fn): New inline function.
18183 (set_loops_for_fn): Likewise.
18184 * cfgloop.h (place_new_loop): Add struct function parameter.
18185 (get_loop): Likewise.
18186 (get_loops): Likewise.
18187 (number_of_loops): Likewise.
18188 (fel_next): Adjust.
18189 (fel_init): Likewise.
18190 * cfg.c (get_loop_copy): Adjust.
18191 * cfgloop.c (flow_loops_dump): Likewise.
18192 (record_loop_exits): Likewise.
18193 (verify_loop_structure): Likewise.
18194 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18195 (estimate_reg_pressure_cost): Likewise.
18196 (mark_loop_exit_edges): Likewise.
18197 * cfgloopmanip.c (place_new_loop): Likewise.
18198 (add_loop): Likewise.
18199 (duplicate_loop): Likewise.
18200 * graph.c (draw_cfg_nodes): Likewise.
18201 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18202 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18203 (extract_affine_chrec): Likewise.
18204 (build_scop_iteration_domain): Likewise.
18205 * graphite.c (graphite_initialize): Likewise.
18206 * ira-build.c (create_loop_tree_nodes): Likewise.
18207 (more_one_region_p): Likewise.
18208 (rebuild_regno_allocno_maps): Likewise.
18209 (mark_loops_for_removal): Likewise.
18210 (mark_all_loops_for_removal): Likewise.
18211 (remove_unnecessary_regions): Likewise.
18212 (ira_build): Likewise.
18213 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18214 * loop-init.c (fix_loop_structure): Likewise.
18215 (gate_rtl_move_loop_invariants): Likewise.
18216 (gate_rtl_unswitch): Likewise.
18217 (gate_rtl_unroll_and_peel_loops): Likewise.
18218 (rtl_doloop): Likewise.
18219 * lto-streamer-in.c (input_cfg): Likewise.
18220 * lto-streamer-out.c (output_cfg): Likewise.
18221 * modulo-sched.c (sms_schedule): Likewise.
18222 * predict.c (tree_estimate_probability): Likewise.
18223 (tree_estimate_probability_driver): Likewise.
18224 (estimate_loops): Likewise.
18225 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18226 (move_sese_region_to_fn): Likewise.
18227 (debug_loop_num): Likewise.
18228 * tree-chrec.c (chrec_evaluate): Likewise.
18229 (hide_evolution_in_other_loops_than_loop): Likewise.
18230 (chrec_component_in_loop_num): Likewise.
18231 (reset_evolution_in_loop): Likewise.
18232 (evolution_function_is_invariant_rec_p): Likewise.
18233 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18234 * tree-inline.c (copy_loops): Likewise.
18235 (copy_cfg_body): Likewise.
18236 (tree_function_versioning): Likewise.
18237 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18238 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18239 Likewise.
18240 (add_to_evolution_1): Likewise.
18241 (scev_const_prop): Likewise.
18242 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18243 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18244 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18245 (tree_ssa_lim_initialize): Likewise.
18246 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18247 (verify_loop_closed_ssa): Likewise.
18248 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18249 (tree_ssa_loop_im): Likewise.
18250 (tree_ssa_loop_unswitch): Likewise.
18251 (tree_vectorize): Likewise.
18252 (check_data_deps): Likewise.
18253 (tree_ssa_loop_ivcanon): Likewise.
18254 (tree_ssa_loop_bounds): Likewise.
18255 (tree_complete_unroll): Likewise.
18256 (tree_complete_unroll_inner): Likewise.
18257 (tree_parallelize_loops): Likewise.
18258 (tree_ssa_loop_prefetch): Likewise.
18259 (tree_ssa_loop_ivopts): Likewise.
18260 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18261 * tree-vectorizer.c (vectorize_loops): Likewise.
18262
37953bd3
MF
182632013-04-29 Mike Frysinger <vapier@gentoo.org>
18264
18265 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18266 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18267 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18268 with EABI_LINK_SPEC.
18269
f9ed28db
UB
182702013-04-29 Uros Bizjak <ubizjak@gmail.com>
18271
18272 PR target/44578
18273 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18274 alternative.
18275
deca73f5
VM
182762013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18277
18278 PR target/57097
37953bd3 18279 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18280 using memory for pseudos. Print cost dump for alternatives.
18281 Modify cost values for conflicts with early clobbers.
18282 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18283
fdca7d03
UB
182842013-04-29 Uros Bizjak <ubizjak@gmail.com>
18285
18286 PR target/57098
18287 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18288
0b064172
IB
182892013-04-29 Ian Bolton <ian.bolton@arm.com>
18290
18291 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18292 from/to S register.
18293 (movdi_aarch64): Support LDR/STR from/to D register.
18294
473cec55
IB
182952013-04-29 Ian Bolton <ian.bolton@arm.com>
18296
18297 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18298 or higher by default.
18299
a6f30e66
RB
183002013-04-29 Richard Biener <rguenther@suse.de>
18301
18302 PR middle-end/57075
18303 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18304 even if not adding abnormal edges for calls that can make
18305 abnormal gotos.
18306
0c2b2040
RB
183072013-04-29 Richard Biener <rguenther@suse.de>
18308
18309 PR middle-end/57103
18310 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18311 TREE_BLOCK.
18312 (move_stmt_r): Remove redundant checking.
18313
f41f80f9
TJ
183142013-04-29 Teresa Johnson <tejohnson@google.com>
18315
18316 PR bootstrap/57077
18317 * basic-block.h (apply_scale): New function.
18318 (apply_probability): Use apply_scale.
18319 * gimple-streamer-in.c (input_bb): Ditto.
18320 * lto-streamer-in.c (input_cfg): Ditto.
18321 * lto-cgraph.c (merge_profile_summaries): Ditto.
18322 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18323 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18324 (copy_edges_for_bb): Ditto.
18325 (copy_cfg_body): Ditto.
18326
315bbd2e
TV
183272013-04-29 Tom de Vries <tom@codesourcery.com>
18328
18329 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18330 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18331 (tail_merge_optimize): Handle current_loops == NULL.
18332
ebbd90d8
JL
183332013-04-26 Jeff Law <law@redhat.com>
18334
18335 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18336 (simplify_cond_using_ranges): Generalize code to simplify
18337 COND_EXPRs where one argument is a constant and the other
18338 is an SSA_NAME created by an integral type conversion.
18339
8b9b57eb
KT
183402013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18341
18342 * config/arm/arm.md (store_minmaxsi): Use only when
18343 optimize_insn_for_size_p.
18344
9498e5dc
CB
183452013-04-29 Christian Bruel <christian.bruel@st.com>
18346
18347 PR target/57108
18348 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18349
6093bc06
RB
183502013-04-29 Richard Biener <rguenther@suse.de>
18351
18352 PR middle-end/57089
fdca7d03
UB
18353 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18354 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18355 (expand_omp_for_generic): Properly add loops.
18356 (expand_omp_for_static_nochunk): Likewise.
18357 (expand_omp_for_static_chunk): Likewise.
18358 (expand_omp_for): For the degenerate case fixup loops.
18359 (expand_omp_sections): Fix default bb placement in loops.
18360 (expand_omp_atomic_pipeline): Properly add loops.
18361
84aacbfd
KT
183622013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18363
18364 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18365
8dee4479
TV
183662013-04-29 Tom de Vries <tom@codesourcery.com>
18367
18368 * tree-ssa-tail-merge.c: Update header comment.
18369
47934dc4
JG
183702013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18371
18372 * config/aarch64/arm_neon.h
18373 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18374 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18375 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18376 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18377 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18378 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18379 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18380 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18381
384be29f
JG
183822013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18383
18384 * config/aarch64/aarch64-simd.md
18385 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18386 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18387 fix_trunc, fixuns_trunc.
18388 (ftrunc<VDQF:mode>2): New.
18389 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18390 (fix_trunc_optab): New.
18391
0386b123
JG
183922013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18393
18394 * config/aarch64/aarch64-builtins.c
18395 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18396 iceilf, lround, iroundf.
18397
00fcb892
UB
183982013-04-29 Uros Bizjak <ubizjak@gmail.com>
18399
18400 PR target/54349
18401 * config/i386/i386.h (enum ix86_tune_indices)
18402 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18403 New, split from X86_TUNE_INTER_UNIT_MOVES.
18404 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18405 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18406 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18407 (TARGET_INTER_UNIT_MOVES): Remove.
18408 * config/i386/i386.c (initial_ix86_tune_features): Update.
18409 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18410 (ix86_expand_convert_uns_didf_sse): Use
18411 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18412 (ix86_expand_vector_init_one_nonzero): Ditto.
18413 (ix86_expand_vector_init_interleave): Ditto.
18414 (inline_secondary_memory_needed): Return true for moves from SSE class
18415 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18416 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18417 * config/i386/constraints.md (Yi, Ym): Depend on
18418 TARGET_INTER_UNIT_MOVES_TO_VEC.
18419 (Yj, Yn): New constraints.
18420 * config/i386/i386.md (*movdi_internal): Change constraints of
18421 operand 1 from Yi to Yj and from Ym to Yn.
18422 (*movsi_internal): Ditto.
18423 (*movdf_internal): Ditto.
18424 (*movsf_internal): Ditto.
18425 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18426 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18427 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18428 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18429 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18430 * config/i386/sse.md (movdi_to_sse): Ditto.
18431 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18432 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18433 TARGET_INTER_UNIT_MOVES.
18434 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18435 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18436 instead of TARGET_INTER_UNIT_MOVES.
18437 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18438 operand 1 from Yi to Yj and from Ym to Yn.
18439
4c871069
JG
184402013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18441
18442 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18443 (float_truncate_hi_): Likewise.
18444 (float_extend_lo_): Likewise.
18445 (float_truncate_lo_): Likewise.
18446 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18447 (aarch64_float_extend_lo_v2df): Likewise.
18448 (vec_unpacks_hi_v4sf): Likewise.
18449 (aarch64_float_truncate_lo_v2sf): Likewise.
18450 (aarch64_float_truncate_hi_v4sf): Likewise.
18451 (vec_pack_trunc_v2df): Likewise.
18452 (vec_pack_trunc_df): Likewise.
18453
1709ff9b
JG
184542013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18455
18456 * config/aarch64/aarch64-builtins.c
18457 (aarch64_fold_builtin): Fold float conversions.
18458 * config/aarch64/aarch64-simd-builtins.def
18459 (floatv2si, floatv4si, floatv2di): New.
18460 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18461 * config/aarch64/aarch64-simd.md
18462 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18463 * config/aarch64/iterators.md (FLOATUORS): New.
18464 (optab): Add float, floatuns.
18465 (su_optab): Likewise.
18466
ce966824
JG
184672013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18468
18469 * config/aarch64/aarch64-builtins.c
18470 (aarch64_builtin_vectorized_function): Use new names for
18471 fcvt builtins.
18472 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18473 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18474 (fcvtzu): Split as...
18475 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18476 (fcvtas): Split as...
18477 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18478 (fcvtau): Split as...
18479 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18480 (fcvtps): Split as...
18481 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18482 (fcvtpu): Split as...
18483 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18484 (fcvtms): Split as...
18485 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18486 (fcvtmu): Split as...
18487 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18488 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18489 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18490 (lfrintnusf, lfrintnudf): Likewise.
18491 * config/aarch64/aarch64-simd.md
18492 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18493 define_insn.
18494 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18495 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18496 (fcvt_pattern): Likewise.
18497
b9de24fe
JG
184982013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18499
18500 * config/aarch64/aarch64-simd.md
18501 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18502 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18503
77a205be
JG
185042013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18505
18506 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18507 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18508 (vrnd<a,m,n,p>_f32): Implement using builtins.
18509 (vrnd<i,x><q>_f<32, 64>): New.
18510
0659ce6f
JG
185112013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18512
18513 * config/aarch64/aarch64-builtins.c
18514 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18515 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18516 (frintz): Rename to...
18517 (btrunc): ...this.
18518 (frintp): Rename to...
18519 (ceil): ...this.
18520 (frintm): Rename to...
18521 (floor): ...this.
18522 (frinti): Rename to...
18523 (nearbyint): ...this.
18524 (frintx): Rename to...
18525 (rint): ...this.
18526 (frinta): Rename to...
18527 (round): ...this.
18528 * config/aarch64/aarch64-simd.md
18529 (aarch64_frint<frint_suffix><mode>): Delete.
18530 (<frint_pattern><mode>2): Convert to insn.
18531 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18532 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18533 (frint_pattern): Likewise.
18534 (frint_suffix): Likewise.
18535
ea78906a
RB
185362013-04-29 Richard Biener <rguenther@suse.de>
18537
18538 PR tree-optimization/57081
18539 * loop-init.c: Include tree-flow.h.
18540 (loop_optimizer_finalize): Free number of iteration estimates.
18541 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18542
baee1763
JJ
185432013-04-29 Jakub Jelinek <jakub@redhat.com>
18544
94dc5332
JJ
18545 PR tree-optimization/57083
18546 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18547 non-singleton shift count range, zero extend low_bound for uns case.
18548
baee1763
JJ
18549 * config/i386/predicates.md (general_vector_operand): New predicate.
18550 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18551 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18552 if they aren't nonimmediate operands. If their original values
18553 satisfy const_vector_equal_evenodd_p, don't shift them.
18554 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18555 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18556 if not nonimmediate_operand.
18557 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18558 instead of register_operand.
18559 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18560
a9073727 185612013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18562
18563 * stor-layout.c (finalize_size_functions): Allocate a structure and
18564 reset cfun before dumping the functions.
18565
ba8011e6
JJ
185662013-04-27 Jakub Jelinek <jakub@redhat.com>
18567
d6fde69e
JJ
18568 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18569
ba8011e6
JJ
18570 PR target/56866
18571 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18572 use xop_pmacsdqh if uns_p.
18573 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18574 the immediate rotate count.
18575
2c62cbaa
VM
185762013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18577
18578 * rtl.h (struct rtx_def): Add comment for field jump.
18579 (LRA_SUBREG_P): New macro.
18580 * recog.c (register_operand): Check LRA_SUBREG_P.
18581 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18582 stack frame.
18583 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18584 (lra_final_code_change): Skip subreg change for operators.
18585 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18586 if there are no operand changes.
18587 * lra-constraints.c (curr_insn_set): New.
18588 (match_reload): Set LRA_SUBREG_P.
18589 (emit_spill_move): Ditto.
18590 (check_and_process_move): Use curr_insn_set. Process only single
18591 set insns. Don't initialize sec_mem_p and change_p.
18592 (simplify_operand_subreg): Use LRA_SUBREG_P.
18593 (reg_in_class_p): New function.
18594 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18595 of #ifdef. Add code to remove cycling.
18596 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18597 non-null disp. Reload inner instead of disp when base and index
18598 are null. Try to put lo_sum into register.
18599 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18600 (check_and_process_move): Move code for move cost check to
18601 simple_move_p. Remove equiv_substitution.
18602 (simple_move_p): New function.
18603 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18604 curr_insn_set. Call check_and_process_move only for single set
18605 insns. Use the new function. Move call of check_and_process_move
18606 after operand equiv substitution and address process.
18607
e7d764f3
JJ
186082013-04-26 Jakub Jelinek <jakub@redhat.com>
18609
18610 PR go/57045
18611 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18612 with nonlocal goto receivers or returns twice calls, ignore
18613 unininitialized values from abnormal edges to nl goto receiver
18614 or returns twice call.
18615
41e10689
JJ
186162013-04-26 Jakub Jelinek <jakub@redhat.com>
18617
18618 PR tree-optimization/57051
18619 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18620 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18621 bitsize.
18622
d7ed20db
RB
186232013-04-26 Richard Biener <rguenther@suse.de>
18624
18625 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18626 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18627 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18628 (fixup_loop_arrays_after_move): New function.
18629 (move_sese_region_to_fn): Properly outline the loop tree parts
18630 of the SESE region.
18631
df93505e
UB
186322013-04-26 Uros Bizjak <ubizjak@gmail.com>
18633
18634 * config/i386/i386.md (type, unit): Fix long lines.
18635
dd366ec3
RB
186362013-04-26 Richard Biener <rguenther@suse.de>
18637
18638 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18639 (lto-streamer-out.o): Likewise.
18640 * cfgloop.c (init_loops_structure): Export, add struct function
18641 argument and adjust.
18642 (flow_loops_find): Adjust.
18643 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18644 (init_loops_structure): Declare.
18645 * lto-streamer-in.c: Include cfgloop.h.
18646 (input_cfg): Input the loop tree.
18647 * lto-streamer-out.c: Include cfgloop.h.
18648 (output_cfg): Output the loop tree.
18649 (output_struct_function_base): Do not drop PROP_loops.
18650
a9e0d843
RB
186512013-03-26 Richard Biener <rguenther@suse.de>
18652
18653 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18654 (pass_build_cfg): Provide PROP_loops.
18655 (move_sese_region_to_fn): Remove loops that are outlined into fn
18656 for now.
18657 * tree-inline.c: Include cfgloop.h.
18658 (initialize_cfun): Do not drop PROP_loops.
18659 (copy_loops): New function.
18660 (copy_cfg_body): Copy loop structure.
18661 (tree_function_versioning): Initialize destination loop tree.
18662 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18663 (pass_parallelize_loops): Do IL verification.
18664 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18665 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18666 the CFG make sure we fixup loops as well.
18667 * tree-ssa-tail-merge.c: Include cfgloop.h.
18668 (replace_block_by): When merging loop latches mark loops for fixup.
18669 * lto-streamer-out.c (output_struct_function_base): Drop
18670 PROP_loops for now.
18671 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18672 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18673 * ipa-split.c: Include cfgloop.h.
18674 (split_function): Add the new return block to the loop tree root.
18675 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18676 whether we have removed the forwarder block.
18677 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18678 * cfgloop.h (place_new_loop): Declare.
18679 * cfgloopmanip.c (place_new_loop): Export.
18680 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18681 (tree-switch-conversion.o): Likewise.
18682 (tree-complex.o): Likewise.
18683 (tree-inline.o): Likewise.
18684 (tree-ssa-tailmerge.o): Likewise.
18685 (ipa-split.o): Likewise.
18686 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18687 (tree-ssa-copy.o): Likewise.
18688 * tree-switch-conversion.c: Include cfgloop.h
18689 (process_switch): If we emit a bit-test cascade, schedule loops
18690 for fixup.
18691 * tree-complex.c: Include cfgloop.h.
18692 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18693 * asan.c: Include cfgloop.h.
18694 (create_cond_insert_point): Properly add new basic-blocks to
18695 loops, schedule loop fixup.
18696 * cfgloop.c (verify_loop_structure): Check that looks are not
18697 marked for fixup.
18698 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18699 to loops.
18700 (expand_omp_for_generic): Likewise.
18701 (expand_omp_sections): Likewise.
18702 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18703 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18704 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18705 is initialized, not when loops are present.
18706 * tree-parloops.c (parallelize_loops): Remove checking here.
18707 * passes.c (init_optimization_passes): Schedule a copy-propagation
18708 pass before complete unrolling of inner loops.
18709
e78e8a0b
JJ
187102013-04-26 Jakub Jelinek <jakub@redhat.com>
18711
a2e836b2
JJ
18712 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18713 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18714 (colorize_init): Add argument to _WIN32 version.
18715 * toplev.c: Include diagnostic-color.h.
18716 (process_options): Default to -fdiagnostics-color=auto if
18717 GCC_COLORS env var is in the environment.
18718 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
18719 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18720 env var is in the environment, the default is auto rather than never.
a2e836b2 18721
e78e8a0b
JJ
18722 * diagnostic.h (file_name_as_prefix): Add context argument.
18723 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18724 the string as locus.
18725 * langhooks.c (lhd_print_error_function): Adjust caller.
18726
013e5ef9
LC
187272013-04-25 Lawrence Crowl <crowl@google.com>
18728
18729 * var-tracking.c (shared_hash_def::htab):
18730 Change type to hash_table. Update dependent calls and types.
18731
4a8fb1a1
LC
187322013-04-25 Lawrence Crowl <crowl@google.com>
18733
18734 * Makefile.in: Update as needed below.
18735
18736 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18737 Move declaration to after the type's method definitons.
18738
18739 * attribs.c (htab_t scoped_attributes::attribute_hash):
18740 Change type to hash_table. Update dependent calls and types.
18741
18742 * bitmap.c (htab_t bitmap_desc_hash):
18743 Change type to hash_table. Update dependent calls and types.
18744
18745 * cselib.c (htab_t cselib_hash_table):
18746 Change type to hash_table. Update dependent calls and types.
18747
18748 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18749 (hash_string_slot_node): Move implementation into lto-streamer.h
18750 struct string_slot_hasher.
18751 (eq_string_slot_node): Likewise.
18752
18753 * data-streamer-out.c: Update output_block::string_hash_table
18754 dependent calls and types.
18755
18756 * dwarf2cfi.c (htab_t trace_index):
18757 Change type to hash_table. Update dependent calls and types.
18758
18759 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18760 Change type to hash_table. Update dependent calls and types.
18761 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
18762 (htab_t optimize_external_refs::map): Likewise.
18763 (htab_t output_comp_unit::extern_map): Likewise.
18764 (htab_t output_comdat_type_unit::extern_map): Likewise.
18765 (htab_t output_macinfo::macinfo_htab): Likewise.
18766 (htab_t optimize_location_lists::htab): Likewise.
18767 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
18768
18769 * except.c (htab_t ehspec_hash_type):
18770 Change type to hash_table. Update dependent calls and types.
18771 (assign_filter_values::ttypes): Likewise.
18772 (assign_filter_values::ehspec): Likewise.
18773 (sjlj_assign_call_site_values::ar_hash): Likewise.
18774 (convert_to_eh_region_ranges::ar_hash): Likewise.
18775
18776 * gcse.c (htab_t pre_ldst_table):
18777 Change type to hash_table. Update dependent calls and types.
18778
18779 * ggc-common.c (htab_t saving_htab):
18780 Change type to hash_table. Update dependent calls and types.
18781 (htab_t loc_hash): Likewise.
18782 (htab_t ptr_hash): Likewise.
18783 (call_count): Rename ggc_call_count.
18784 (call_alloc): Rename ggc_call_alloc.
18785 (loc_descriptor): Rename make_loc_descriptor.
18786 (add_statistics): Rename ggc_add_statistics.
18787
18788 * ggc-common.c (saving_htab):
18789 Change type to hash_table. Update dependent calls and types.
18790
18791 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
18792 (push_gimplify_context): Likewise.
18793 (pop_gimplify_context): Likewise.
18794 (struct gimple_temp_hash_elt): Added.
18795 (struct gimplify_hasher): Likewise.
18796 (struct gimplify_ctx.temp_htab):
18797 Change type to hash_table. Update dependent calls and types.
18798
18799 * gimple-fold.c: Include gimplify-ctx.h.
18800
18801 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
18802 Change type to hash_table. Update dependent calls and types.
18803 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
18804 avoid potential global name collision.
18805
18806 * gimplify.c: Include gimplify-ctx.h.
18807 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
18808 (htab_t gimplify_ctx::temp_htab):
18809 Update dependent calls and types for new type hash_table.
18810 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
18811 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
18812
18813 * gimplify-ctx.h: New.
18814 (struct gimple_temp_hash_elt): Move from gimplify.c.
18815 (class gimplify_hasher): New.
18816 (struct gimplify_ctx): Move from gimple.h.
18817 (htab_t gimplify_ctx::temp_htab):
18818 Change type to hash_table. Update dependent calls and types.
18819
18820 * graphite-clast-to-gimple.c: Include graphite-htab.h.
18821 (htab_t ivs_params::newivs_index):
18822 Change type to hash_table. Update dependent calls and types.
18823 (htab_t ivs_params::params_index): Likewise.
18824 (htab_t print_generated_program::params_index): Likewise.
18825 (htab_t gloog::newivs_index): Likewise.
18826 (htab_t gloog::params_index): Likewise.
18827
18828 * graphite.c: Include graphite-htab.h.
18829 4htab_t graphite_transform_loops::bb_pbb_mapping):
18830 Change type to hash_table. Update dependent calls and types.
18831
18832 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
18833 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
18834 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
18835
18836 * graphite-dependences.c: Include graphite-htab.h.
18837 (loop_is_parallel_p): Change hash table type of parameter.
18838
18839 * graphite-htab.h: New.
18840 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
18841 (extern find_pbb_via_hash): Move from graphite-poly.h.
18842 (extern loop_is_parallel_p): Move from graphite-poly.h.
18843 (extern get_loop_body_pbbs): Move from graphite-poly.h.
18844
18845 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
18846 (extern loop_is_parallel_p): Move to graphite-htab.h.
18847 (extern get_loop_body_pbbs): Move to graphite-htab.h.
18848
18849 * haifa-sched.c (htab_t delay_htab):
18850 Change type to hash_table. Update dependent calls and types.
18851 (htab_t delay_htab_i2): Likewise.
18852
18853 * ira-color.c (htab_t allocno_hard_regs_htab):
18854 Change type to hash_table. Update dependent calls and types.
18855
18856 * ira-costs.c (htab_t cost_classes_htab):
18857 Change type to hash_table. Update dependent calls and types.
18858
18859 * loop-invariant.c (htab_t merge_identical_invariants::eq):
18860 Change type to hash_table. Update dependent calls and types.
18861
18862 * loop-iv.c (htab_t bivs):
18863 Change type to hash_table. Update dependent calls and types.
18864
18865 * loop-unroll.c (htab_t opt_info::insns_to_split):
18866 Change type to hash_table. Update dependent calls and types.
18867 (htab_t opt_info::insns_with_var_to_expand): Likewise.
18868
18869 * lto-streamer.h (struct string_slot): Move from data-streamer.h
18870 (struct string_slot_hasher): New.
18871 (htab_t output_block::string_hash_table):
18872 Change type to hash_table. Update dependent calls and types.
18873
18874 * lto-streamer-in.c (freeing_string_slot_hasher): New.
18875 (htab_t file_name_hash_table):
18876 Change type to hash_table. Update dependent calls and types.
18877
18878 * lto-streamer-out.c: Update output_block::string_hash_table dependent
18879 calls and types.
18880
18881 * lto-streamer.c (htab_t tree_htab):
18882 Change type to hash_table. Update dependent calls and types.
18883
18884 * omp-low.c: Include gimplify-ctx.h.
18885
18886 * passes.c (htab_t name_to_pass_map):
18887 Change type to hash_table. Update dependent calls and types.
18888 (pass_traverse): Rename to passes_pass_traverse.
18889
18890 * plugin.c (htab_t event_tab):
18891 Change type to hash_table. Update dependent calls and types.
18892
18893 * postreload-gcse.c (htab_t expr_table):
18894 Change type to hash_table. Update dependent calls and types.
18895 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
18896
18897 * sese.c (debug_rename_map_1): Make extern.
18898 (htab_t copy_bb_and_scalar_dependences::rename_map):
18899 Change type to hash_table. Update dependent calls and types.
18900
18901 * sese.h (extern debug_rename_map): Move to .c file.
18902
18903 * store-motion.c (htab_t store_motion_mems_table):
18904 Change type to hash_table. Update dependent calls and types.
18905
18906 * trans-mem.c (htab_t tm_new_mem_hash):
18907 Change type to hash_table. Update dependent calls and types.
18908
18909 * tree-browser.c (htab_t TB_up_ht):
18910 Change type to hash_table. Update dependent calls and types.
18911
18912 * tree-cfg.c (htab_t discriminator_per_locus):
18913 Change type to hash_table. Update dependent calls and types.
18914
18915 * tree-complex.c: Include tree-hasher.h
18916 (htab_t complex_variable_components):
18917 Change type to hash_table. Update dependent calls and types.
18918
18919 * tree-eh.c (htab_t finally_tree):
18920 Change type to hash_table. Update dependent calls and types.
18921
18922 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
18923 struct int_tree_hasher.
18924 (extern int_tree_map_eq): Likewise.
18925 (uid_decl_map_hash): Removed.
18926 (extern decl_tree_map_eq): Likewise.
18927
18928 * tree-hasher.h: New.
18929 (struct int_tree_hasher): New.
18930 (typedef int_tree_htab_type): New.
18931
18932 * tree-inline.c: Include gimplify-ctx.h.
18933
18934 * tree-mudflap.c: Include gimplify-ctx.h.
18935
18936 * tree-parloops.c: Include tree-hasher.h.
18937 (htab_t eliminate_local_variables_stmt::decl_address):
18938 Change type to hash_table. Update dependent calls and types.
18939 (htab_t separate_decls_in_region::decl_copies): Likewise.
18940
18941 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
18942 Change type to hash_table. Update dependent calls and types.
18943
18944 * tree-sra.c (candidates):
18945 Change type to hash_table. Update dependent calls and types.
18946
18947 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
18948 in tree-flow.h.
18949 (int_tree_map_hash): Likewise.
18950
18951 * tree-ssa-dom.c (htab_t avail_exprs):
18952 Change type to hash_table. Update dependent calls and types.
18953
18954 * tree-ssa-live.c (var_map_base_init::tree_to_index):
18955 Change type to hash_table. Update dependent calls and types.
18956
18957 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
18958 Change type to hash_table. Update dependent calls and types.
18959
18960 * tree-ssa-phiopt.c (seen_ssa_names):
18961 Change type to hash_table. Update dependent calls and types.
18962
18963 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
18964 Change type to hash_table. Update dependent calls and types.
18965
18966 * tree-ssa-uncprop.c (equiv):
18967 Change type to hash_table. Update dependent calls and types.
18968
c5a44004
JJ
189692013-04-25 Jakub Jelinek <jakub@redhat.com>
18970
18971 PR rtl-optimization/57003
18972 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
18973 call note_stores with kill_clobbered_value callback again after
18974 killing regs_invalidated_by_call.
18975
09962a4a
JG
189762013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18977
18978 * config/aarch64/aarch64-simd.md
18979 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
18980 (aarch64_simd_bsl<mode>): Likewise.
18981 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
18982
ea28bb0b
MP
189832013-04-25 Marek Polacek <polacek@redhat.com>
18984
18985 PR tree-optimization/57066
3c21604f 18986 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 18987
96659611
JG
189882013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
18989
18990 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
18991
9697e620
JG
189922013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18993
18994 * config/aarch64/aarch64-builtins.c
18995 (aarch64_fold_builtin): New.
18996 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
18997 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
18998 * config/aarch64/aarch64-simd-builtins.def (abs): New.
18999 * config/aarch64/arm_neon.h
19000 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19001
0ac198d3
JG
190022013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19003 Tejas Belagod <tejas.belagod@arm.com>
19004
19005 * config/aarch64/aarch64-builtins.c
19006 (aarch64_gimple_fold_builtin): New.
19007 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19008 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19009 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19010 (addvv4sf): Update.
19011 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19012
58cff58c
N
190132013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19014
df93505e 19015 * config/aarch64/aarch64.md
58cff58c
N
19016 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19017
7e0228bf
N
190182013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19019
19020 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19021 (*ngcsi_uxtw): New pattern.
19022
5819f96f 190232013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19024 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19025
19026 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19027 (TB_DREG): Add T_V4HF.
19028 (v4hf_UP): New macro.
19029 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19030 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19031 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19032 built-ins.
df93505e 19033 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19034 (arm_vector_mode_supported_p): Handle V4HF.
19035 (arm_mangle_map): Handle V4HFmode.
19036 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19037 * config/arm/arm_neon_builtins.def: Add entries for
19038 vcvtv4hfv4sf, vcvtv4sfv4hf.
19039 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19040 (neon_vcvtv4hfv4sf): Likewise.
19041 * config/arm/neon-gen.ml: Handle half-precision floating point
19042 features.
19043 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19044 * config/arm/arm_neon.h: Regenerate.
19045 * config/arm/neon.ml (type elts): Add F16.
19046 (type vectype): Add T_float16x4, T_floatHF.
19047 (type vecmode): Add V4HF.
19048 (type features): Add Requires_FP_bit feature.
19049 (elt_width): Handle F16.
19050 (elt_class): Likewise.
19051 (elt_of_class_width): Likewise.
19052 (mode_of_elt): Refactor.
19053 (type_for_elt): Handle F16, fix error messages.
19054 (vectype_size): Handle T_float16x4.
19055 (vcvt_sh): New function.
19056 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19057 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19058 (string_of_mode): Handle V4HF.
19059 * doc/arm-neon-intrinsics.texi: Regenerate.
19060
1ef395e4
JG
190612013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19062
19063 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19064 format specifier in 'X' case.
19065
41c34e94
AM
190662013-04-25 Alan Modra <amodra@gmail.com>
19067
19068 PR target/57052
19069 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19070 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19071 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19072 Repeat for many other rotate/shift and mask patterns using subregs.
19073 Name lshiftrt insns.
19074 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19075 on WORDS_BIG_ENDIAN.
19076
b9a7eb5d
AM
190772013-04-25 Alan Modra <amodra@gmail.com>
19078
19079 * config.gcc: Support little-endian powerpc-linux targets.
19080 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19081 (LINK_OS_LINUX_SPEC): Define.
19082 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19083 Preserve MASK_LITTLE_ENDIAN.
19084 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19085 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19086 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19087 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19088 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19089 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19090 Correct fp word order for little-endian. Don't shift toc entries
19091 smaller than a word for little-endian.
19092 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19093 (bswapdi2 splits): Correct low-part subreg for little-endian.
19094 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19095 low/high where such is correct only for be.
19096 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19097 little-endian for -mcall-aixdesc.
19098
87f73374
AM
190992013-04-25 Alan Modra <amodra@gmail.com>
19100
19101 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19102 replace_equiv_address_nv.
19103
cabf91cd
AM
191042013-04-25 Alan Modra <amodra@gmail.com>
19105
19106 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19107
0ae24cc8
VM
191082013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19109
19110 Revert:
19111 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19112 * rtl.h (struct rtx_def): ...
cabf91cd 19113
77bce07c
VM
191142013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19115
19116 PR rtl-optimizations/57046
19117 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19118 for multi-reg splits.
19119
0db63e7f
L
191202013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19121
19122 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19123
3362b6b6
SA
191242013-04-24 Sterling Augustine <saugustine@google.com>
19125
19126 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19127 (comp_dir_string, debug_str_dwo_section): New.
19128 (DEBUG_STR_DWO_SECTION): Rename to ...
19129 (DEBUG_DWO_STR_SECTION): ... this.
19130 (DEBUG_NORM_STR_SECTION): Delete.
19131 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19132 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19133 (find_AT_string): Move most logic to ...
19134 (find_AT_string_in_table): ... here. New.
19135 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19136 add_skeleton_AT_string. Delete logic.
19137 (output_skeleton_debug_sections): Remove call to
19138 add_top_level_skeleton_die_attrs.
19139 (add_comp_dir_attribute): Move logic to comp_dir_string.
19140 (dwarf2out_init): Initialize debug_str_dwo_section.
19141 (output_indirect_string): Call find_string_form.
19142 (output_indirect_strings): Rewrite.
19143 (prune_unused_types): Empty skeleton_debug_str_hash.
19144 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19145 (dwarf2out_finish): Call output_indirect_strings.
19146
e93e18e9
PC
191472013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19148
19149 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19150
f6ce35ac
VM
191512013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19152
cabf91cd 19153 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19154 (LRA_SUBREG_P): New macro.
19155 * recog.c (register_operand): Check LRA_SUBREG_P.
19156 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19157 stack frame.
19158 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19159 (lra_final_code_change): Skip subreg change for operators.
19160 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19161 if there are no operand changes.
19162 * lra-constraints.c (curr_insn_set): New.
19163 (match_reload): Set LRA_SUBREG_P.
19164 (emit_spill_move): Ditto.
19165 (check_and_process_move): Use curr_insn_set. Process only single
19166 set insns. Don't initialize sec_mem_p and change_p.
19167 (simplify_operand_subreg): Use LRA_SUBREG_P.
19168 (reg_in_class_p): New function.
19169 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19170 of #ifdef. Add code to remove cycling.
19171 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19172 non-null disp. Reload inner instead of disp when base and index
19173 are null. Try to put lo_sum into register.
19174 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19175 (check_and_process_move): Move code for move cost check to
f6ce35ac 19176 simple_move_p. Remove equiv_substitution.
cabf91cd 19177 (simple_move_p): New function.
f6ce35ac
VM
19178 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19179 curr_insn_set. Call check_and_process_move only for single set
19180 insns. Use the new function. Move call of check_and_process_move
19181 after operand equiv substitution and address process.
19182
38047d90
JG
191832013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19184
19185 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19186 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19187 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19188
13f39b2e
PC
191892013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19190
19191 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19192
97c116dc
MP
191932013-04-24 Marek Polacek <polacek@redhat.com>
19194
19195 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19196 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19197 (select_loops_exit_conditions): Likewise.
19198 (number_of_iterations_for_all_loops): Likewise.
19199 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19200 (scev_analysis): Likewise.
19201
83082391 192022013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19203 Chao-ying Fu <fu@mips.com>
83082391 19204
cabf91cd
AM
19205 * config/mips/micromips.md (jraddiusp): New pattern.
19206 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19207 instruction if possible.
83082391 19208
19e34aa2
AM
192092013-04-24 Alan Modra <amodra@gmail.com>
19210
19211 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19212
fdb6603c
JB
192132013-04-24 Julian Brown <julian@codesourcery.com>
19214 Chung-Lin Tang <cltang@codesourcery.com>
19215
19216 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19217 dependency behavior in enumeration type DIE generation. Add TODO note
19218 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19219
bf190e8d
LC
192202013-04-23 Lawrence Crowl <crowl@google.com>
19221
19222 * Makefile.in: Update as needed below.
19223
19224 * hash-table.h (class hash_table):
19225 Correct many methods with parameter types compare_type to the correct
19226 value_type. (Correct code was unlikely to notice the change.)
19227 (hash_table::elements_with_deleted) New.
19228 (class hashtable::iterator): New.
19229 (hashtable::begin()): New.
19230 (hashtable::end()): New.
19231 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19232
19233 * statistics.c (statistics_hashes):
19234 Change type to hash_table. Update dependent calls and types.
19235
19236 * tree-into-ssa.c (var_infos):
19237 Change type to hash_table. Update dependent calls and types.
19238
19239 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19240 Change type to hash_table. Update dependent calls and types.
19241
19242 * tree-ssa-loop-im.c (struct mem_ref.refs):
19243 Change type to hash_table. Update dependent calls and types.
19244
19245 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19246 Change type to hash_table. Update dependent calls and types.
19247
19248 * tree-ssa-sccvn.c (vn_tables_s::nary):
19249 Change type to hash_table. Update dependent calls and types.
19250 (vn_tables_s::phis): Likewise.
19251 (vn_tables_s::references): Likewise.
19252
19253 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19254 (vn_reference_eq): Update parameter and return types.
19255
19256 * tree-ssa-structalias.c (pointer_equiv_class_table):
19257 Change type to hash_table. Update dependent calls and types.
19258 (location_equiv_class_table): Likewise.
19259
19260 * tree-vect-data-refs.c: Consequential changes for making
19261 peeling a hash_table.
19262
19263 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19264 (destroy_loop_vec_info): Dependent hash_table update.
19265
19266 * tree-vectorizer.h (peeling_htab):
19267 Change type to hash_table. Update dependent calls and types.
19268
d70a81dd
SC
192692013-04-23 Shiva Chen <shiva0217@gmail.com>
19270
cabf91cd
AM
19271 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19272 to check the register content is equal or not.
19273 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19274 to assign register content record.
19275 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19276 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19277 * lra-int.h (struct lra_reg): Add offset member.
19278 (lra_reg_val_equal_p): New static inline function.
19279 (lra_update_reg_val_offset): New static inline function.
19280 (lra_assign_reg_val): New static inline function.
19281 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19282 to assign register content record.
19283 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19284
b894a1f3
CM
192852013-04-23 Catherine Moore <clm@codesourcery.com>
19286
19287 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19288 operands. Record compression.
19289
ecd14de9
XDL
192902013-04-23 Xinliang David Li <davidxl@google.com>
19291
19292 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19293
92e776e9
RB
192942013-04-23 Richard Biener <rguenther@suse.de>
19295
19296 PR middle-end/57036
19297 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19298 parameter, only add abnormal goto edges from the copied body
19299 if the call could perform abnormal gotos.
19300 (copy_cfg_body): Adjust.
19301
a15ee567
SN
193022013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19303
19304 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19305
08c52234
AS
193062013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19307
19308 * coretypes.h (gimple_stmt_iterator): Add struct to make
19309 compatible with C.
19310
999c1171
RB
193112013-04-23 Richard Biener <rguenther@suse.de>
19312
19313 PR tree-optimization/57026
19314 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19315 from SSA names occuring in abnormal PHI nodes.
19316
53669259
AK
193172013-04-22 Andi Kleen <ak@linux.intel.com>
19318
19319 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19320
1a0ad150
AK
193212013-04-22 Andi Kleen <ak@linux.intel.com>
19322
19323 * lto/lto.c (print_lto_report_1): Declare early.
19324 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19325
057f8f20
AK
193262013-04-22 Andi Kleen <ak@linux.intel.com>
19327
19328 * common.opt (-flto-report-wpa): Add.
19329 * doc/invoke.texi (-flto-report-wpa): Add.
19330 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19331 (lto_main): dito.
19332
473b1e05
XDL
193332013-04-22 Xinliang David Li <davidxl@google.com>
19334
19335 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19336 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19337 * Makefile.in: New dependency
19338
cabf91cd 19339 David Daney <ddaney.cavm@gmail.com>
b1485a33 19340
cabf91cd
AM
19341 * configure.ac (gcc_cv_as_micromips_support): Use the
19342 --fatal-warnings option.
19343 * configure: Regenerate.
b1485a33 19344
829d0168
MP
193452013-04-22 Marek Polacek <polacek@redhat.com>
19346
19347 PR sanitizer/56990
19348 * tsan.c (instrument_expr): Don't instrument expression
19349 in case its size is zero.
19350
6d9b7208
UB
193512013-04-22 Uros Bizjak <ubizjak@gmail.com>
19352
19353 PR target/57032
19354 Revert:
19355 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19356
19357 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19358
ea679d55
JG
193592013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19360
19361 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19362 (gimple_stmt_iterator): New typedef.
19363 * gimple.h (gimple_stmt_iterator): Rename to...
19364 (gimple_stmt_iterator_d): ... This.
19365 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19366 trees be valid for GIMPLE and GENERIC.
19367 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19368 * gimple-fold.c (gimple_fold_call): Call target hook
19369 gimple_fold_builtin.
19370 * hooks.c (hook_bool_gsiptr_false): New.
19371 * hooks.h (hook_bool_gsiptr_false): New.
19372 * target.def (fold_stmt): New.
19373 * doc/tm.texi: Regenerate.
19374
88a581da
VM
193752013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19376
19377 PR target/57018
19378 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19379 a set sp if no stack realignment.
19380
92be22dc
NC
193812013-04-22 Nick Clifton <nickc@redhat.com>
19382
19383 * config.gcc (tilegx-linux): Extend extra_objs rather than
19384 overwriting it.
19385 (tilepro-linux): Likewise.
19386
0ddec79f
JG
193872013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19388
19389 * config/aarch64/aarch64-builtins.c
19390 (CF): Remove.
19391 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19392 (VAR<1-12>): Add MAP parameter.
19393 (BUILTIN_*): Likewise.
19394 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19395 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19396 (aarch64_ushl_n<mode>): Likewise.
19397 (aarch64_sshr_n<mode>): Likewise.
19398 (aarch64_ushr_n<mode>): Likewise.
19399 (aarch64_<maxmin><mode>): Likewise.
19400 (aarch64_sqrt<mode>): Likewise.
19401 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19402 (vshr<q>_n_*): Likewise.
19403
0050faf8
JG
194042013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19405
19406 * config/aarch64/aarch64-builtins.c
19407 (aarch64_simd_builtin_type_mode): Handle SF types.
19408 (sf_UP): Define.
19409 (BUILTIN_GPF): Define.
19410 (aarch64_init_simd_builtins): Handle SF types.
19411 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19412 (frecps): Likewise.
19413 (frecpx): Likewise.
19414 * config/aarch64/aarch64-simd.md
19415 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19416 (aarch64_frecpe<mode>): New.
19417 (aarch64_frecps<mode>): Likewise.
19418 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19419 (v8type): Add frecp<esx>.
19420 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19421 (aarch64_frecps<mode>): Likewise.
19422 * config/aarch64/iterators.md (FRECP): New.
19423 (frecp_suffix): Likewise.
19424 * config/aarch64/arm_neon.h
19425 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19426
0fad3dbc 194272013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19428
19429 PR target/56995
19430 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19431 (REG_CLASS_NAMES): Idem.
19432 (REG_CLASS_CONTENTS): Idem.
19433 (REGCLASS_HAS_FP_REG): Idem.
19434 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19435 (sh_conditional_register_usage): Idem.
19436
3e8a33f9
JL
194372013-04-21 Jeff Law <law@redhat.com>
19438
19439 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19440 (ssa_forward_propagate_and_combine): Use it.
19441
f38e1b0a
VM
194422013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19443
19444 * lra.c: Update the flow chart diagram.
19445
682303da
VM
194462013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19447
19448 PR rtl-optimization/56847
19449 * lra-constraints.c (process_alt_operands): Discourage alternative
19450 with non-matche doffsettable memory constraint fro memory with
19451 known offset.
19452
f6b64c35
RB
194532013-04-19 Richard Biener <rguenther@suse.de>
19454
19455 PR tree-optimization/56982
19456 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19457 function.
19458 * gimplify.c (gimplify_call_expr): Notice special calls.
19459 (gimplify_modify_expr): Likewise.
19460 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19461 abnormal control flow receivers.
19462 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19463 in the same way as cfun->has_nonlocal_labels.
19464 (gimple_purge_dead_abnormal_call_edges): Likewise.
19465 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19466 receivers start a basic-block.
19467
01d8bf07
RB
194682013-04-19 Richard Biener <rguenther@suse.de>
19469
19470 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19471 member ...
19472 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19473 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19474 (SLP_TREE_LOAD_PERMUTATION): Add.
19475 (vect_transform_slp_perm_load): Adjust prototype.
19476 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19477 (vect_free_slp_instance): Likewise.
19478 (vect_create_new_slp_node): Likewise.
19479 (vect_supported_slp_permutation_p): Remove.
19480 (vect_slp_rearrange_stmts): Adjust.
19481 (vect_supported_load_permutation_p): Likewise. Inline
19482 vect_supported_slp_permutation_p here.
19483 (vect_analyze_slp_instance): Compute load permutations per
19484 slp node instead of per instance.
19485 (vect_get_slp_defs): Adjust.
19486 (vect_transform_slp_perm_load): Likewise.
19487 (vect_schedule_slp_instance): Remove redundant code.
19488 (vect_schedule_slp): Remove hack for PR56270, add it ...
19489 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19490 CSE loads for SLP. Adjust.
19491
ede22fc3
GY
194922013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19493
19494 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19495 spelling in two comments.
19496
67bc84fb
GY
194972013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19498
19499 PR target/56797
19500 * config/arm/arm.c (load_multiple_sequence): Require SP
19501 as base register for loads if SP is in the register list.
19502
e248d83f
MJ
195032013-04-19 Martin Jambor <mjambor@suse.cz>
19504
19505 PR tree-optimization/56718
19506 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19507 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19508 and made public. Adjusted all callers.
19509 (ipa_intraprocedural_devirtualization): New function.
19510 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19511 (ipa_intraprocedural_devirtualization): Likewise.
19512 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19513
4891e8f8
RB
195142013-04-19 Richard Biener <rguenther@suse.de>
19515
19516 PR tree-optimization/57000
19517 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19518
dad89f7c
TG
195192013-04-19 Terry Guo <terry.guo@arm.com>
19520
19521 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19522 Replace with ...
19523 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19524 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19525 (cortex_m4_fmacs): Use new reservations.
19526 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19527
72ea0d47
VM
195282013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19529
f1e6512c 19530 PR rtl-optimization/56999
72ea0d47
VM
19531 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19532 related code.
19533 (lra_coalesce): Remove split_origin_bitmap and related code.
19534 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19535 ranges if necessary.
19536
780a5b71
UB
195372013-04-18 Uros Bizjak <ubizjak@gmail.com>
19538
19539 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19540 New array.
19541 (ix86_expand_call): Remove clobbered_registers array and use
19542 x86_64_ms_sysv_extra_clobbered_registers instead.
19543 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19544 Declare here.
19545 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19546 predicate.
19547 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19548 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19549 (*call_value_rex64_ms_sysv): Ditto.
19550
6f5a366a
CC
195512013-04-18 Cary Coutant <ccoutant@google.com>
19552
19553 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19554 parent instead of die_mark.
19555
475b8f37
DN
195562013-04-18 Diego Novillo <dnovillo@google.com>
19557
19558 * gimple.c (create_gimple_tmp): New.
19559 (get_expr_type): New.
19560 (build_assign): New.
19561 (build_type_cast): New.
19562 * gimple.h (enum ssa_mode): Define.
19563 (gimple_seq_set_location): New.
19564 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19565 to use build_assign and build_type_cast.
475b8f37 19566
08940f33
RB
195672013-04-18 Richard Biener <rguenther@suse.de>
19568
19569 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19570 handle negative step. Remove redundant checks.
19571 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19572 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19573 for negative step and grouped loads fail to vectorize.
19574
0e0f87d4
SB
195752013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19576
19577 * emit-rtl.c (reset_insn_used_flags): New function.
19578 (reset_all_used_flags): Use it.
19579 (verify_insn_sharing): New function.
19580 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19581
4c445590
JJ
195822013-04-18 Jakub Jelinek <jakub@redhat.com>
19583
19584 PR tree-optimization/56984
19585 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19586 and (x >> M) >= N don't register any assertion if N << M is the
19587 minimum value.
19588
6873ecab
SB
195892013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19590
19591 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19592 do not delete_insn insns that have not yet been emitted, only
19593 unlink them with remove_insn.
19594 * df-scan.c (df_insn_delete): Revert r197492.
19595
3ccb989e
SB
195962013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19597
19598 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19599 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19600
196012013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19602
19603 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19604 define_insn_and_split.
19605 (and_scc,ior_scc,negscc): Likewise.
19606 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19607
3ccb989e 196082013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19609
19610 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19611 can benefit from using a sequence of LDRD instructions in epilogue
19612 instead of a single LDM instruction.
19613
6d10a203
MLI
196142013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19615
19616 PR 45688
19617 * doc/extend.texi: Fix typo.
19618
6983e6b5
RB
196192013-04-17 Richard Biener <rguenther@suse.de>
19620
19621 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19622 (vect_build_slp_tree): ... here.
19623 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19624 match. Remove special-casing of mismatched complex loads.
19625 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19626 re-try the match with swapped commutative operands.
19627 (vect_supported_load_permutation_p): Remove special-casing of
19628 mismatched complex loads.
19629 (vect_analyze_slp_instance): Adjust.
19630
ef23e6a2
RB
196312013-04-17 Richard Biener <rguenther@suse.de>
19632
19633 PR rtl-optimization/56921
19634 * cfgloop.h (struct loop): Add simple_loop_desc member.
19635 (struct niter_desc): Mark with GTY(()).
19636 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19637 * loop-iv.c (get_simple_loop_desc): Likewise.
19638 (free_simple_loop_desc): Likewise.
19639
19640 Revert
19641 2013-04-16 Richard Biener <rguenther@suse.de>
19642
19643 PR rtl-optimization/56921
19644 * loop-init.c (pass_rtl_move_loop_invariants): Add
19645 TODO_do_not_ggc_collect to todo_flags_finish.
19646 (pass_rtl_unswitch): Same.
19647 (pass_rtl_unroll_and_peel_loops): Same.
19648 (pass_rtl_doloop): Same.
19649
fc6f94f5
EB
196502013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19651
19652 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19653 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19654 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19655 references.
19656 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19657 * tree-streamer.c (record_common_node): Adjust reference in comment.
19658
10a88311
TG
196592013-04-17 Terry Guo <terry.guo@arm.com>
19660
19661 * config/arm/cortex-m4.md: Add a new bypass.
19662
6d9b7208 196632013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19664
19665 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19666 New pattern.
19667 (*subs_<optab><mode>_multp2): New pattern.
19668 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19669 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19670
6d9b7208 196712013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19672
19673 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19674 (*subs_mul_imm_<mode>): New pattern.
19675
18a6701e
DE
196762013-04-16 David Edelsohn <dje.gcc@gmail.com>
19677
19678 PR target/56948
19679 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19680 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19681 (vsx_movti_32bit): Change j->wa to O->wa.
19682
07c37b2f
RB
196832013-04-16 Richard Biener <rguenther@suse.de>
19684
19685 PR rtl-optimization/56921
19686 * loop-init.c (pass_rtl_move_loop_invariants): Add
19687 TODO_do_not_ggc_collect to todo_flags_finish.
19688 (pass_rtl_unswitch): Same.
19689 (pass_rtl_unroll_and_peel_loops): Same.
19690 (pass_rtl_doloop): Same.
19691
0e0f87d4 196922013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
19693
19694 * config/arm/arm.c (emit_multi_reg_push): New declaration
19695 for an existing function.
19696 (arm_emit_strd_push): New function.
19697 (arm_expand_prologue): Used here.
19698 (arm_emit_ldrd_pop): New function.
19699 (arm_expand_epilogue): Used here.
19700 (arm_get_frame_offsets): Update condition.
19701 (arm_emit_multi_reg_pop): Add a special case for load of a single
19702 register with writeback.
19703
5e8e2af4
UB
197042013-04-16 Uros Bizjak <ubizjak@gmail.com>
19705
19706 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19707 description.
19708
9fd9ccf7
RB
197092013-04-16 Richard Biener <rguenther@suse.de>
19710
19711 PR tree-optimization/56756
19712 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19713 (first_mem_ref_loc): New.
19714 (execute_sm): Place the load temporarily before a previous
19715 access instead of in the latch edge to ensure its SSA dependencies
19716 are defined at points dominating the load.
19717
96fba521
SB
197182013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19719
4c8af858
SB
19720 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19721 correct fix by moving header and footer insn to the footer of
19722 the merged basic block. Clear BB_END of the merged-away block.
19723
96fba521
SB
19724 PR middle-end/43631
19725 * emit-rtl.c (make_note_raw): New function.
19726 (link_insn_into_chain): New static inline function.
19727 (add_insn): Use it.
19728 (add_insn_before, add_insn_after): Factor insn chain linking code...
19729 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19730 using link_insn_into_chain.
19731 (note_outside_basic_block_p): New helper function for emit_note_after
19732 and emit_note_before.
19733 (emit_note_after): Use nobb variant of add_insn_after if the note
19734 should not be contained in a basic block.
19735 (emit_note_before): Use nobb variant of add_insn_before if the note
19736 should not be contained in a basic block.
19737 (emit_note_copy): Use make_note_raw.
19738 (emit_note): Likewise.
19739 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19740 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19741 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19742 the moved barrier the tail of the basic block it follows.
19743 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19744
7b8265ba
JJ
197452013-04-15 Jakub Jelinek <jakub@redhat.com>
19746
19747 PR tree-optimization/56962
19748 * gimple-ssa-strength-reduction.c (record_increment): Only set
19749 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19750 either rhs1 or rhs2 is equal to c->base_expr.
19751
5185d248
RB
197522013-04-15 Richard Biener <rguenther@suse.de>
19753
19754 PR tree-optimization/56933
19755 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19756 member.
19757 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19758 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19759 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19760 dependence check ...
19761 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
19762 ... here.
19763 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
19764 GROUP_READ_WRITE_DEPENDENCE.
19765
a24243a0
AK
197662013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19767
19768 * emit-rtl.c (reset_all_used_flags): New function.
19769 (verify_rtl_sharing): Call reset_all_used_flags before and after
19770 performing the checks.
19771
1c50eada
KT
197722013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19773
19774 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
19775 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
19776 * config/arm/constraints.md (De): New constraint.
19777 * config/arm/neon.md (anddi3_neon): Delete.
19778 (neon_vand<mode>): Expand to standard anddi3 pattern.
19779 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
19780 Move earlier in the file.
19781 (neon_inv_logic_op2): Likewise.
19782 (arm_anddi_operand_neon): New predicate.
19783
e927b6ad
RO
197842013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19785
19786 * configure.ac (gcc_cv_ld_as_needed): Set
19787 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
19788 Use -z ignore, -z record on *-*-solaris2*.
19789 (HAVE_LD_AS_NEEDED): Update comment.
19790 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
19791 * configure: Regenerate.
19792 * config.in: Regenerate.
19793 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
19794 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
19795 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
19796 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
19797 equivalents. Fix markup.
19798 * doc/tm.texi: Regenerate.
19799
e0ea8797
AH
198002013-04-15 Andrew Hsieh <andrewhsieh.google.com>
19801
19802 * config/i386/i386.opt: New option mstack-protector-guard=.
19803 * config/i386/i386-opts.h: Add enum stack_protector_guard.
19804 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
19805 TARGET_SSP_TLS_GUARD.
19806 * config/i386/i386.c (ix86_option_override_internal): Set
19807 ix86_stack_protector_guard.
19808 * config/i386/i386.md (stack_protect_set): Enable for
19809 TARGET_SSP_TLS_GUARD only.
19810 (stack_protect_set_<mode>): Ditto.
19811 (stack_protect_test): Ditto.
19812 (stack_protect_test_<mode>): Ditto.
19813 * doc/invoke.texi (i386 Option): Document.
19814
811b72f9
EB
198152013-04-15 Eric Botcazou <ebotcazou@adacore.com>
19816
19817 PR target/56890
19818 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
19819 (S_MODES): Set H_MODE bit.
19820 (SF_MODES): Set only S_MODE and SF_MODE bits.
19821 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
19822 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
19823 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
19824 <MODE_FLOAT>: Likewise.
19825
5529fdd6
JY
198262013-04-15 Joey Ye <joey.ye@arm.com>
19827
19828 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
19829
517b1da2
JY
198302013-04-15 Joey Ye <joey.ye@arm.com>
19831
19832 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
19833 for real far jump.
19834 (thumb_far_jump_used_p): Count instruction size and set
19835 far_jump_used.
19836
01007ae0
EB
198372013-04-14 Eric Botcazou <ebotcazou@adacore.com>
19838
19839 * reorg.c (fill_simple_delay_slots): Reindent block of code.
19840 * resource.c (mark_target_live_regs): Reformat conditional block.
19841
c46f6580
SB
198422013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19843
19844 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
19845 notes, they are emitted only just before final.
19846 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
19847
1f397f45
SB
198482013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19849
19850 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
19851 * cfgrtl.c (delete_insn): Call it here instead.
19852 * lra-spills.c (lra_final_code_change): Use delete_insn.
19853 * haifa-sched.c (sched_remove_insn): Likewise.
19854 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
19855 returning to the nop pool.
19856 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
19857 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
19858
58a51369
SB
198592013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19860
19861 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
19862 * doc/tm.texi: Regenerated.
19863
33159866
UB
198642013-04-12 Uros Bizjak <ubizjak@gmail.com>
19865
19866 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
19867 QImode checks.
19868
226e378f
SB
198692013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19870
19871 * df-core.c (df_find_def): Compare register numbers.
19872 (df_find_use): Likewise.
19873
fafb9b18
VM
198742013-04-12 Vladimir Makarov <vmakarov@redhat.com>
19875
19876 PR target/56903
19877 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
19878 lra_in_progress for return.
19879
9a946fd6
GY
198802013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19881
19882 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
19883 define_insn into define_insn_and_split and emit movsicc patterns.
19884
41b83758
GY
198852013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19886
19887 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
19888
d3afd9aa
RB
198892013-04-12 Richard Biener <rguenther@suse.de>
19890
19891 * tree-pass.h (TODO_do_not_ggc_collect): New.
19892 * passes.c (execute_one_ipa_transform_pass): Honor
19893 TODO_do_not_ggc_collect.
19894 (execute_one_pass): Likewise.
19895
19896 Revert
19897 2013-04-10 Richard Biener <rguenther@suse.de>
19898
19899 * passes.c (init_optimization_passes): Remove reload pass.
19900 * ira.c (do_reload): Merge into ...
19901 (ira): ... this.
19902 (rest_of_handle_reload): Remove.
19903 (pass_reload): Likewise.
19904 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19905 of reload for vzeroupper pass placement.
19906
06f9b387
JJ
199072013-04-12 Jakub Jelinek <jakub@redhat.com>
19908
19909 PR tree-optimization/56918
19910 PR tree-optimization/56920
19911 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
19912 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
19913 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
19914 use wide_mul_with_sign method.
19915
953094d2
RB
199162013-04-12 Richard Biener <rguenther@suse.de>
19917
19918 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
19919 not be considered a gimple constant.
19920
bb506982
MG
199212013-04-12 Marc Glisse <marc.glisse@inria.fr>
19922
19923 * fold-const.c (const_binop): Handle vector shifts by a scalar.
19924 (fold_binary_loc): Call const_binop also for mixed vector-scalar
19925 operations.
19926
4b84d650
JJ
199272013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
19928 Jakub Jelinek <jakub@redhat.com>
19929
19930 * opts.c: Include diagnostic-color.h.
19931 (common_handle_option): Handle OPT_fdiagnostics_color_.
19932 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
19933 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
19934 (diagnostic-color.o): New.
19935 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
19936 (diagnostic_color_rule): New enum.
19937 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
19938 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
19939 the location string.
19940 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
19941 either NULL, or color kind.
19942 * diagnostic-color.c: New file.
19943 * diagnostic-color.h: New file.
19944 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
19945 arguments.
19946 * doc/invoke.texi (-fdiagnostics-color): Document.
19947 * pretty-print.h (pp_show_color): Define.
19948 (struct pretty_print_info): Add show_color field.
19949 * diagnostic.c: Include diagnostic-color.h.
19950 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
19951 macros. Colorize error:, warning: etc. strings and also the location
19952 string.
19953 (diagnostic_show_locus): Colorize the caret line.
19954 * pretty-print.c: Include diagnostic-color.h.
19955 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
19956 inside of %< %> quotes or quoted through q format modifier.
19957
067a1e71
AK
199582013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19959
33159866 19960 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 19961
33159866 199622013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
19963
19964 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
19965 code in CC_NZ mode.
19966 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
19967 pattern.
19968
7b55f98f
MP
199692013-04-11 Marek Polacek <polacek@redhat.com>
19970
19971 PR tree-optimization/48184
33159866 19972 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 19973
966b587e
EB
199742013-04-11 Eric Botcazou <ebotcazou@adacore.com>
19975
19976 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
19977 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
19978 (skip_simple_arithmetic): Tidy up.
19979 * tree.h (skip_simple_constant_arithmetic): Declare.
19980
33159866 199812013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
19982
19983 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
19984
1d42c1ec
RB
199852013-04-11 Richard Biener <rguenther@suse.de>
19986
19987 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19988 generate vector constants.
19989
4ba5ea11
RB
199902013-04-11 Richard Biener <rguenther@suse.de>
19991
19992 PR tree-optimization/56878
19993 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
19994 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
19995 New function.
19996 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19997 Prefer to align the DR with the most invariant base address.
19998
f0defe58
SKS
199992013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20000
20001 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20002 comment.
20003
d07458be
JG
200042013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20005
20006 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20007 floating-point vector comparisons against 0.
20008
146b8692
JJ
200092013-04-11 Jakub Jelinek <jakub@redhat.com>
20010
20011 PR tree-optimization/56899
20012 * fold-const.c (extract_muldiv_1): Apply distributive law
20013 only if TYPE_OVERFLOW_WRAPS (ctype).
20014
b8578ff7
BC
200152013-04-11 Bin Cheng <bin.cheng@arm.com>
20016
20017 PR target/56124
20018 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20019 loading has side effect.
20020
0ea8a6f9
SB
200212013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20022
20023 * config/sparc/sparc.c: Include tree-pass.h.
20024 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20025 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20026 head of file. Change return type. Split off gate function.
20027 (sparc_gate_work_around_errata): New function.
20028 (pass_work_around_errata): New pass definition.
20029 (insert_pass_work_around_errata) New pass insert definition to
20030 insert pass_work_around_errata just after delayed-branch scheduling.
20031 (sparc_option_override): Insert the pass.
20032 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20033
42e37616
DM
200342013-04-10 David S. Miller <davem@davemloft.net>
20035
89deeb3b
DM
20036 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20037 or -mcpu=hypersparc.
20038
42e37616
DM
20039 * target.def (cstore_mode): New hook.
20040 * target.h: Include insn-codes.h
20041 * targhooks.c: Likewise.
20042 (default_cstore_mode): New function.
20043 * targhooks.h: Declare it.
20044 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20045 * doc/tm.texi: Rebuild.
20046 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20047 target hook, rather than inspecting the insn_data.
20048 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20049 (TARGET_CSTORE_MODE): Redefine.
20050 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20051 result patterns.
20052 * config/sparc/predicates.md (cstore_result_operand): New special
20053 predicate.
20054 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20055 Use it for operand 0.
20056 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20057 (*snesi_special): Likewise.
20058 (*snesi_zero): Likewise.
20059 (*seqsi_zero): Likewise.
20060 (*sltu_insn): Likewise.
20061 (*sgeu_insn): Likewise.
20062 (*seqdi_special): Make operand 0 and comparison operation be of
20063 DImode.
20064 (*snedi_special): Likewise.
20065 (*snedi_special_vis3): Likewise.
20066 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20067 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20068 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20069 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20070 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20071 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20072 (*sltu_extend_sp64): Likewise.
20073 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20074 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20075 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20076 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20077 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20078
95ca411e
YZ
200792013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20080
20081 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20082 (aarch64_start_file): Use the new function.
20083
6782438d 200842013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20085 Jason Merrill <jason@redhat.com>
6782438d
SKS
20086
20087 * common.opt: Add -gdwarf.
20088 * opts.c (common_handle_option): Handle it.
20089 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20090
bb313b93
RB
200912013-04-10 Richard Biener <rguenther@suse.de>
20092
20093 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20094 (execute_one_ipa_transform_pass): But unconditionally here.
20095 (execute_one_pass): And here.
20096 (init_optimization_passes): Remove reload pass.
20097 * tree-pass.h (TODO_ggc_collect): Remove.
20098 (pass_reload): Likewise.
20099 * ira.c (do_reload): Merge into ...
20100 (ira): ... this.
20101 (rest_of_handle_reload): Remove.
20102 (pass_reload): Likewise.
20103 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20104 of reload for vzeroupper pass placement.
20105 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20106 and todo_flags_finish of all passes.
20107
793d9a16
RB
201082013-04-10 Richard Biener <rguenther@suse.de>
20109
20110 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20111 first_const_oprnd field, rename first_def_type to first_op_type.
20112 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20113 (vect_get_and_check_slp_defs): Always use the type of the
20114 operand. Allow mixed vect_external_def, vect_constant_def types.
20115 (vect_get_constant_vectors): Handle mixed vect_external_def,
20116 vect_constant_def types.
20117
12211b99 201182013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20119
20120 PR tree-optimization/55524
20121 * tree-ssa-math-opts.c
20122 (convert_mult_to_fma): Don't use an fms construct
20123 when we don't have an fms operation, but fnma, and it looks
20124 likely that we'll be able to use the latter.
20125
12211b99 201262013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20127
20128 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20129 function.
20130 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20131 inline fail caused by overwritable functions.
20132
34ab4a5b
CJW
201332013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20134
20135 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20136 unnecessary bits in the constant power of two case.
20137
abf9bfbc
RB
201382013-04-10 Richard Biener <rguenther@suse.de>
20139
20140 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20141 broken code swapping operands.
20142 (vect_build_slp_tree): Do not compute load permutations here.
20143 (vect_analyze_slp_instance): Compute load permutations here,
20144 after building the SLP tree.
20145
f408477e
CB
201462013-04-09 Christian Bruel <christian.bruel@st.com>
20147
20148 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20149 of next/prev_real_insn.
20150
5ac42672
JH
201512013-04-09 Jan Hubicka <jh@suse.cz>
20152
abf9bfbc
RB
20153 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20154 Drop aliased parameter.
5ac42672
JH
20155 (function_and_variable_visibility): Do not handle alias pairs.
20156 * cgraph.c (varpool_externally_visible_p): Update prototype.
20157 * varpool.c (varpool_add_new_variable): Update.
20158
5017f1d2
KT
201592013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20160
20161 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20162
48eecbee
SB
201632013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20164
a949cf1c
SB
20165 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20166
48eecbee
SB
20167 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20168
75ef8e3d
MP
201692013-04-09 Marek Polacek <polacek@redhat.com>
20170
20171 PR tree-optimization/48762
33159866 20172 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20173
23847df4
RB
201742013-04-09 Richard Biener <rguenther@suse.de>
20175
20176 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20177 dealing with cost.
20178 (vect_build_slp_tree): Likewise.
20179 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20180 calculating the cost of a SLP instance.
20181 (vect_analyze_slp_instance): Use it from here, after building
20182 the SLP tree.
20183
ea3a0fde
JJ
201842013-04-09 Jakub Jelinek <jakub@redhat.com>
20185
20186 PR middle-end/56883
20187 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20188 expand_omp_for_static_chunk): Use simple_p = true in
20189 force_gimple_operand_gsi calls when assigning to addressable decls.
20190
a32dfe9d
JL
201912013-04-09 Jeff Law <law@redhat.com>
20192
20193 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20194 when the boolean was created by converting a wider object which
20195 had a boolean range.
20196
d755c7ef
RB
201972013-04-09 Richard Biener <rguenther@suse.de>
20198
20199 * tree-vectorizer.h (slp_void_p): Remove.
20200 (slp_tree): Typedef before _slp_tree declaration.
20201 (struct _slp_tree): Use a vector of slp_tree as children.
20202 (vect_get_place_in_interleaving_chain): Remove.
20203 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20204 Move ...
20205 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20206 and make static.
20207 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20208 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20209 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20210 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20211 Use slp_node instead of slp_void_p and adjust.
20212
3d741091
RB
202132013-04-09 Richard Biener <rguenther@suse.de>
20214
20215 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20216 work that is not necessary.
20217
39307ba7
JJ
202182013-04-09 Jakub Jelinek <jakub@redhat.com>
20219
20220 PR tree-optimization/56854
20221 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20222 forward into clobber stmts if it would change MEM_REF lhs into
20223 non-MEM_REF.
20224
343881fd
MK
202252013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20226
20227 * tree.c (type_hash_lookup, type_hash_add): Make static.
20228 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20229
3922658a
RB
202302013-04-09 Richard Biener <rguenther@suse.de>
20231
20232 * tree.h (unsave_expr_now): Remove.
20233 * tree-inline.c (mark_local_for_remap_r): Remove.
20234 (unsave_expr_1): Likewise.
20235 (unsave_r): Likewise.
20236 (unsave_expr_now): Likewise.
20237 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20238 (propagate_tree_value): Likewise.
20239
9fb6b620
SB
202402013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20241
20242 * doc/rtl.texi (sequence): Rewrite documentation to match the
20243 current use of SEQUENCE rtl objects.
20244 * rtl.def (SEQUENCE): Likewise.
20245
20246 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20247 Update documentation.
20248 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20249 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20250
20251 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20252
8ddb5a29
TJ
202532013-04-08 Teresa Johnson <tejohnson@google.com>
20254
20255 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20256 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20257 methods.
8ddb5a29
TJ
20258 (estimate_edge_size_and_time): Add comment to suggest using rounding
20259 methods.
20260 (estimate_node_size_and_time): Ditto.
20261 (remap_edge_change_prob): Use helper rounding divide methods.
20262 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20263 (gimple_mod_pow2_value_transform): Ditto.
20264 (gimple_mod_subtract_transform): Ditto.
20265 (gimple_ic_transform): Ditto.
20266 (gimple_stringops_transform): Ditto.
20267 * stmt.c (conditional_probability): Ditto.
20268 (emit_case_dispatch_table): Ditto.
20269 * lto-cgraph.c (merge_profile_summaries): Ditto.
20270 * tree-optimize.c (execute_fixup_cfg): Ditto.
20271 * cfgcleanup.c (try_forward_edges): Ditto.
20272 * cfgloopmanip.c (scale_loop_profile): Ditto.
20273 (loopify): Ditto.
20274 (duplicate_loop_to_header_edge): Ditto.
20275 (lv_adjust_loop_entry_edge): Ditto.
20276 * tree-vect-loop.c (vect_transform_loop): Ditto.
20277 * profile.c (compute_branch_probabilities): Ditto.
20278 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20279 * lto-streamer-in.c (input_cfg): Ditto.
20280 * gimple-streamer-in.c (input_bb): Ditto.
20281 * ipa-cp.c (update_profiling_info): Ditto.
20282 (update_specialized_profile): Ditto.
20283 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20284 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20285 rounding methods.
8ddb5a29
TJ
20286 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20287 (compute_trg_info): Ditto.
20288 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20289 (purge_dead_edges): Ditto.
20290 * loop-unswitch.c (unswitch_loop): Ditto.
20291 * cgraphclones.c (cgraph_clone_edge): Ditto.
20292 (cgraph_clone_node): Ditto.
20293 * tree-inline.c (copy_bb): Ditto.
20294 (copy_edges_for_bb): Ditto.
20295 (initialize_cfun): Ditto.
20296 (copy_cfg_body): Ditto.
20297 (expand_call_inline): Ditto.
20298
661e6bd7
KT
202992013-04-08 Kai Tietz <ktietz@redhat.com>
20300
20301 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20302 TARGET_CYGWIN64 by TARGET_64BIT.
20303
105766f3
JR
203042013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20305
20306 * config/epiphany/epiphany.md (GPR_1): New constant.
20307 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20308 * config/epiphany/epiphany.c (gen_compare_reg):
20309 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20310 is already in place.
20311 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20312 Don't require being called during rtl expansion; If y operlaps r0,
20313 return 0.
20314 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20315 (epiphany_expand_epilogue): Likewise.
20316
8afab237
JR
20317 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20318 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20319 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20320
fa7707d6
JR
20321 * config/epiphany/constraints.md (CnL): New constraint.
20322 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20323 * config/epiphany/predicates.md (add_operand): Allow 1024.
20324
5138e18d
JR
20325 * config/epiphany/epiphany.md (logical_op): New code iterator.
20326 (op_mnc): New code attribute.
20327 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20328 (mov_f+1, mov_f+2): New peephole2 patterns.
20329
2ccc703d
JR
20330 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20331 (cstoresi4): Also allow re-use of zero result when doing a NE
20332 comparison to a non-zero operand.
aefb0819 20333 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20334
093ac0a5
JR
20335 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20336 Use gen_addsi3_i / gen_subsi3_i.
20337
f223bb13
JJ
203382013-04-08 Jakub Jelinek <jakub@redhat.com>
20339
20340 PR c++/34949
20341 PR c++/50243
20342 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20343 contain anything but clobbers, at most one __builtin_stack_restore,
20344 optionally debug stmts and final resx, and if it has at least one
20345 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20346 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20347 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20348 which isn't defaut definition, remove them.
20349 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20350 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20351 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20352 with MEM_REF LHS with SSA_NAME address.
20353
4481581f
JL
203542013-04-08 Jeff Law <law@redhat.com>
20355
20356 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20357
451dabda
RB
203582013-04-08 Richard Biener <rguenther@suse.de>
20359
20360 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20361 extra newline.
20362 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20363 determined vector type.
20364 (vect_analyze_data_refs): Likewise.
20365 (vect_get_new_vect_var): Adjust.
20366 (vect_create_destination_var): Preserve SSA name versions.
20367 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20368 not dump anything here.
20369
3b088b47
JR
203702013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20371
20372 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20373 Add member lr_slot_known.
20374 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20375 if necessary.
20376 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20377 Remove code that sets lr_slot_offset according to what a previous
20378 version of epiphany_emit_save_restore used to do.
20379 (epiphany_emit_save_restore): When doing an lr save or restore,
20380 set/verify lr_slot_known and lr_slot_offset.
20381
d8484d41
XQ
203822013-04-08 Xinyu Qi <xyqi@marvell.com>
20383
33159866
UB
20384 PR target/54338
20385 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20386 in ALL_REGS.
20387
481be1c4
RB
203882013-04-08 Richard Biener <rguenther@suse.de>
20389
20390 * alias.c (find_base_term): Fix thinko in previous change.
20391
401f3a81
JJ
203922013-04-08 Jakub Jelinek <jakub@redhat.com>
20393
20394 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20395 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20396 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20397 if possible to compute val.
20398 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20399 For QImode integers don't require anything about precision. Use
20400 const_with_all_bytes_same to find out if the constant doesn't have
20401 repeated bytes in it.
20402
03ed99a8
AK
204032013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20404
20405 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20406 within mode size.
20407
781b2e62
MP
204082013-04-08 Marek Polacek <polacek@redhat.com>
20409
20410 PR rtl-optimization/48182
20411 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20412 value to 1.
20413
27e430a2
JDA
204142013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20415
20416 PR target/55487
20417 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20418 nuses, make sure we have a label.
20419
4902aa64
BS
204202013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20421
20422 PR target/56843
20423 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20424 (rs6000_emit_swdiv_low_precision): Remove.
20425 (rs6000_emit_swdiv): Rewrite to handle between one and four
20426 iterations of Newton-Raphson generally; modify required number of
20427 iterations for some cases.
20428 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20429
7bca81dc
SB
204302013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20431
20432 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20433 set-but-unused variable.
20434
20435 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20436 basic blocks of released function bodies garbage-collectable.
20437
20438 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20439 (struct rtl_opt_pass): Add TODO_df_finish.
20440
20441 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20442
4542a38a
GY
204432013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20444
20445 * config/arm/constraints.md (q): New constraint.
20446 * config/arm/ldrdstrd.md: New file.
20447 * config/arm/arm.md (ldrdstrd.md) New include.
20448 (arm_movdi): Use "q" instead of "r" constraint
20449 for double-word memory access.
20450 (movdf_soft_insn): Likewise.
20451 * config/arm/vfp.md (movdi_vfp): Likewise.
20452 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20453 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20454 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20455 (mem_ok_for_ldrd_strd): Likewise.
20456 (output_move_double): Update assertion.
20457
2385b218
GY
204582013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20459
20460 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20461
75fe1cb5
GY
204622013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20463
20464 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20465 define_insn_and_split.
20466 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20467
dd660e8e
GY
204682013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20469
20470 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20471 define_insn_and_split.
33159866 20472 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20473 (shiftsi3_compare): New pattern.
20474 (rrx): New pattern.
20475 * config/arm/unspecs.md (UNSPEC_RRX): New.
20476
045e472c
GY
204772013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20478
20479 * config/arm/arm.md (negdi_extendsidi): New pattern.
20480 (negdi_zero_extendsidi): Likewise.
20481
3f3bf1a8
GY
204822013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20483
20484 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20485 define_insn_and_split.
20486 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20487 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20488
b0b49556
GY
204892013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20490
20491 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20492 define_insn_and_split.
20493 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20494 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20495
d633dd84
GY
204962013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20497
20498 * config/arm/arm.md (subsi3_carryin): New pattern.
20499 (subsi3_carryin_const): Likewise.
20500 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20501 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20502
f4499066
GY
205032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20504
20505 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20506
ceef6fd9
GY
205072013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20508
20509 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20510 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20511
ddbdd8a7
KT
205122013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20513
20514 * config/arm/arm.c (arm_expand_builtin): Change fcode
20515 type to unsigned int.
20516
8456d78a
RR
205172013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20518
20519 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20520
526c230f
ILT
205212013-04-04 Ian Lance Taylor <iant@google.com>
20522
33159866
UB
20523 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20524 language standard.
526c230f 20525
3cfbe04d
SB
205262013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20527
20528 PR middle-end/56729
20529 * df-scan.c (df_insn_delete): Disable failing assert.
20530
dfa3f8d0
KT
205312013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20532
20533 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20534 New function prototype.
20535 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20536 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20537 (arm_builtin_vectorized_function): New function.
20538
f7837758
KT
205392013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20540
20541 * config/arm/arm_neon_builtins.def: New file.
20542 * config/arm/arm.c (neon_builtin_data): Move contents to
20543 arm_neon_builtins.def.
20544 (enum arm_builtins): Include neon builtin definitions.
20545 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20546 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20547
39c1b6db
MP
205482013-04-04 Marek Polacek <polacek@redhat.com>
20549
20550 PR tree-optimization/48186
20551 * predict.c (maybe_hot_frequency_p): Return false if
20552 HOT_BB_FREQUENCY_FRACTION is 0.
20553 (cgraph_maybe_hot_edge_p): Likewise.
20554
314f64eb
RB
205552013-04-04 Richard Biener <rguenther@suse.de>
20556
20557 PR tree-optimization/56826
20558 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20559 more accurately.
20560
51a905b2
RB
205612013-04-04 Richard Biener <rguenther@suse.de>
20562
20563 PR tree-optimization/56213
20564 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20565 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20566
f1bf4f3a
RB
205672013-04-04 Richard Biener <rguenther@suse.de>
20568
20569 PR tree-optimization/56837
20570 * tree-loop-distribution.c (classify_partition): For non-zero
20571 values require that the value has the same precision as its
20572 mode to be useful as memset value.
20573
0bca7ded
NC
205742013-04-03 Nick Clifton <nickc@redhat.com>
20575
33159866 20576 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20577 (fmssf4): Use fmsf.s on E3V5 architectures.
20578 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20579 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20580
b4019227
JL
205812013-04-03 Jeff Law <law@redhat.com>
20582
20583 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20584 (lra-eliminations.o): Likewise.
20585
f57ddb5b
TJ
205862013-04-03 Teresa Johnson <tejohnson@google.com>
20587
20588 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20589 compute_working_sets here from profile.c.
f57ddb5b 20590 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20591 (gcov_working_set_t): Moved typedef here from basic-block.h
20592 (compute_working_set): Declare.
f57ddb5b
TJ
20593 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20594 (get_working_sets): Renamed from compute_working_set,
33159866 20595 replace most of body with call to new compute_working_sets.
f57ddb5b 20596 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20597 to get_working_sets.
20598 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20599 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20600 to get_working_sets.
f57ddb5b
TJ
20601 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20602 * gcov-dump.c (dump_working_sets): New function.
20603
12211b99 206042013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20605
20606 * hwint.c (sext_hwi, zext_hwi): New functions.
20607 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20608 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20609 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20610 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20611 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20612 (sext_hwi, zext_hwi): New functions.
0bca7ded 20613
be672e08
JL
206142013-04-03 Jeff Law <law@redhat.com>
20615
20616 PR tree-optimization/56799
33159866
UB
20617 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20618 back test for widening conversion erroneously dropped in prior change.
be672e08 20619
9d821fa5
KT
206202013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20621
20622 PR target/56809
20623 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20624 instead of next_real_insn.
20625
71c581e7
MP
206262013-04-03 Marek Polacek <polacek@redhat.com>
20627
20628 PR sanitizer/55702
33159866 20629 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20630
4a32ef80
KT
206312013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20632
20633 PR target/56809
20634 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20635 next_real_insn.
20636 (thumb1_output_casesi): Likewise.
20637 (thumb2_output_casesi): Likewise.
20638
1b2253d4
RB
206392013-04-03 Richard Biener <rguenther@suse.de>
20640
20641 PR tree-optimization/56817
20642 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20643 Split out ...
20644 (tree_unroll_loops_completely_1): ... new function to manually
20645 walk the loop tree, properly defering outer loops of unrolled
20646 loops to later iterations.
20647
38000232
MG
206482013-04-03 Marc Glisse <marc.glisse@inria.fr>
20649
20650 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20651 (vectorizable_load): Likewise.
20652 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20653 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20654
3fa35298
MG
206552013-04-03 Marc Glisse <marc.glisse@inria.fr>
20656
20657 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20658 BIT_FIELD_REF.
20659
b3d45ff0
UW
206602013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20661
20662 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20663
ec9202a8
BC
206642013-04-03 Bin Cheng <bin.cheng@arm.com>
20665
20666 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20667
6805bd36
MG
206682013-04-03 Marc Glisse <marc.glisse@inria.fr>
20669
20670 PR tree-optimization/56790
33159866
UB
20671 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20672 folding.
6805bd36 20673
da694a77
MG
206742013-04-03 Marc Glisse <marc.glisse@inria.fr>
20675
20676 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20677 Handle VEC_MERGE.
20678 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20679 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20680 equal arguments.
20681
4e7d7b3d
JJ
206822013-04-03 Jakub Jelinek <jakub@redhat.com>
20683
20684 PR c/19449
20685 * tree.h (force_folding_builtin_constant_p): New decl.
20686 * builtins.c (force_folding_builtin_constant_p): New variable.
20687 (fold_builtin_constant_p): Fold immediately also if
20688 force_folding_builtin_constant_p.
20689
e6c9d234
RB
206902013-04-03 Richard Biener <rguenther@suse.de>
20691
20692 PR tree-optimization/56812
20693 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20694 DRs of the same interleaving chain are independent.
20695
984d07dd
JM
206962013-04-02 Jason Merrill <jason@redhat.com>
20697
20698 * gdbinit.in (pbb): Use debug fn.
20699
622849c9
LC
207002013-04-02 Lawrence Crowl <crowl@google.com>
20701
20702 * sese.h (struct ivtype_map_elt_s): Remove unused.
20703 (extern debug_ivtype_map): Remove unused.
20704 (extern eq_ivtype_map_elts): Remove unused.
20705 * sese.c (debug_ivtype_map): Removed unused.
20706 (debug_ivtype_map_1): Removed unused.
20707 (debug_ivtype_elt): Remove unused.
20708 (eq_ivtype_map_elts): Remove unused.
20709
20710
82c0e1a0
KT
207112013-04-02 Kai Tietz <ktietz@redhat.com>
20712
20713 PR target/52790
20714 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20715 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
20716 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20717 function.
82c0e1a0
KT
20718 (legitimize_pe_coff_symbol): Likewise.
20719 (is_imported_p): New helper-function.
20720 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20721 for Windows x64 targets.
20722 (ix86_expand_prologue): Optimize for pe-coff targets.
20723 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20724 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20725 medium/large code-model.
20726 (legitimize_pic_address): Likewise.
20727 (legitimize_tls_address): Likewise.
20728 (ix86_expand_call): Likewise.
20729 (x86_output_mi_thunk): Likewise.
20730 (get_dllimport_decl): Add new beimport argument.
20731 (construct_plt_address): Don't assert for x64 pe-coff targets.
20732 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20733 targets.
20734 (SYMBOL_FLAG_STUBVAR): New macro.
20735 (SYMBOL_REF_STUBVAR_P): Likewise.
20736 * config/i386/winnt.c (stub_list): New structure.
20737 (stub_head): New local variable.
20738 (i386_pe_record_stub): New function.
20739 (i386_pe_file_end): Emit refptr-stubs.
20740
5d751b0c
JJ
207412013-04-02 Jakub Jelinek <jakub@redhat.com>
20742
09bb4c99
JJ
20743 PR rtl-optimization/56745
20744 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20745 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20746
a1d8947a
JJ
20747 PR c++/34949
20748 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20749 and both of them are MEM_REFs, just compare first argument for
20750 equality and attempt to deal even with differing offsets.
20751
5d751b0c
JJ
20752 PR c++/34949
20753 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20754 of gimple_clobber_p to be MEM_REF.
20755 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20756 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20757 after gimplification.
20758 * asan.c (get_mem_ref_of_assignment): Don't instrument
20759 gimple_clobber_p stmts.
20760 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
20761 gimple_clobber_p stmt if they have MEM_REF lhs and
20762 are dead because of another gimple_clobber_p stmt.
20763 * tree-ssa-live.c (clear_unused_block_pointer): Treat
20764 gimple_clobber_p stmts like debug stmts.
20765 (remove_unused_locals): Remove clobbers with MEM_REF lhs
20766 that refer to unused VAR_DECLs or uninitialized values.
20767 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
20768 gimple_clobber_p stmts if they refer to removed parameters.
20769 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
20770 formatting.
20771
e594716a
UB
207722013-04-02 Uros Bizjak <ubizjak@gmail.com>
20773
20774 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
20775 using SWI48 mode attribute.
20776
7a80735b
WM
207772013-04-02 Wei Mi <wmi@google.com>
20778
20779 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
20780 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
20781 *<rotate_insn><mode>3_mask in i386.md.
20782
f423a9e4
AI
207832013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
20784
20785 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
20786
90eb75f2
RB
207872013-04-02 Richard Biener <rguenther@suse.de>
20788
20789 PR tree-optimization/56778
20790 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20791 Runtime alias tests are not supported for gather loads.
20792 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
20793 stmts referenced from SSA operands before updating SSA form.
20794
d8c69a92
IC
207952013-04-02 Ian Caulfield <ian.caulfield@arm.com>
20796 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20797
20798 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
20799 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
20800 * config/arm/cortex-a53.md: New file.
20801 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
20802 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
20803 * config/arm/arm.c (arm_issue_rate): Likewise.
20804 * config/arm/arm-tune.md: Regenerate
20805 * config/arm/arm-tables.opt: Regenerate.
20806 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 20807
239eb04c
ZC
208082013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
20809
20810 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
20811 non-static link.
20812
c902d3c8
SN
208132013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20814
d8c69a92
IC
20815 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
20816 scalar load/store operations using B/H registers.
c902d3c8
SN
20817 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
20818
051d0e2f
SN
208192013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20820
20821 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
20822 scalar move.
20823 * config/aarch64/aarch64.c
20824 (aarch64_simd_scalar_immediate_valid_for_move): New.
20825 * config/aarch64/aarch64-protos.h
20826 (aarch64_simd_scalar_immediate_valid_for_move): New.
20827 * config/aarch64/constraints.md (Dh, Dq): New.
20828 * config/aarch64/iterators.md (hq): New.
20829
0ee1e3d9
EB
208302013-04-02 Eric Botcazou <ebotcazou@adacore.com>
20831
20832 * reorg.c (get_branch_condition): Deal with conditional returns.
20833 (fill_simple_delay_slots): Remove dead code dealing with jumps.
20834
136fb3f7
WM
208352013-04-01 Wei Mi <wmi@google.com>
20836
20837 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
20838 Truncate operand 2 using %b asm operand modifier.
20839 (*<shift_insn><mode>3_mask): Ditto.
20840 (*<rotate_insn><mode>3_mask): Ditto.
20841
6388c738
SB
208422013-04-01 Steven Bosscher <steven@gcc.gnu.org>
20843
20844 PR middle-end/56798
20845 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
20846
f7a4d826
KK
208472013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
20848
20849 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
20850 of next_real_insn.
20851 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
20852
4b943a49
LC
208532013-03-30 Lawrence Crowl <crowl@google.com>
20854
20855 * dse.c (clear_alias_sets): Remove never set.
20856 (disqualified_clear_alias_sets): Remove never set.
20857 (clear_alias_mode_pool): Remove never set.
20858 (dse_step0): Remove condition that is never true.
20859 (canon_address): Remove condition that is never true.
20860 (dse_step7): Remove condition that is never true.
20861 (rest_of_handle_dse): Remove condition that is never true.
20862 (rest_of_handle_dse::did_global): Remove never read from above.
20863 (dse_step2_spill): Remove never called from above.
20864 (dse_step5_spill): Remove never called from above.
20865
39718607
SB
208662013-03-30 Steven Bosscher <steven@gcc.gnu.org>
20867
da5c6bde
SB
20868 * doc/md.texi (Standard Names) <casesi>: Update documentation for
20869 JUMP_TABLE_DATA changes.
20870 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
20871 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
20872 (Insns) <jump_table_data>: New entry.
20873 * doc/tm.texi: Regenerate.
20874
39718607
SB
20875 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
20876
20877 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
20878 for table jump at the end of a basic block using tablejump_p.
20879 * targhooks.c (default_invalid_within_doloop): Likewise.
20880 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
20881 target hook implementation that is identical to the default hook.
20882 (rs6000_invalid_within_doloop): Remove.
20883
20884 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
20885 unused variable from tablejump_p call.
20886
20887 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
20888 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
20889 (INSN_DELETED_P): Likewise.
20890 (emit_jump_table_data): New prototype.
20891 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
20892 after 4th as unused.
20893 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
20894 * sched-vis.c (print_insn): Likewise.
20895 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
20896 insn for compatibility with back ends that use next_active_insn to
20897 identify jump table data.
20898 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
20899 (remove_insn): Likewise.
20900 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
20901 to be emitted.
20902 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
20903 (emit_jump_table_data): New function.
20904
20905 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
20906 basic block, a JUMP_TABLE_DATA never is.
20907 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
20908 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
20909 off from code handling real insns.
20910 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
20911 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
20912 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
20913 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
20914 is not a NONDEBUG_INSN_P.
20915 * ira-costs.c (scan_one_insn): Likewise.
20916 * jump.c (mark_all_labels): Likewise.
20917 (mark_jump_label_1): Likewise.
20918 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20919 * lra.c (get_insn_freq): Expect all insns reaching here to be in
20920 a basic block.
20921 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
20922 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
20923 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
20924 JUMP_TABLE_DATA_P insns.
20925 (calculate_elim_costs_all_insns): Likewise.
20926 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
20927 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
20928 (delete_output_reload): Code style fixups.
20929 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
20930 insn flags on this non-insn.
20931 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
20932 as scheduling barriers, for pre-change compatibility.
20933 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
20934 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
20935
20936 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
20937 redundant JUMP_TABLE_DATA_P test.
20938 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
20939 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20940 (frv_for_each_packet): Likewise.
20941 * config/i386/i386.c (min_insn_size): Likewise.
20942 (ix86_avoid_jump_mispredicts): Likewise.
20943 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20944 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
20945 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20946 (mips16_insn_length): Robustify.
20947 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
20948 (mips16_split_long_branches): Likewise.
20949 * config/pa/pa.c (pa_combine_instructions): Likewise.
20950 * config/rs6000/rs6000.c (get_next_active_insn): Treat
20951 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
20952 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
20953 as contributing to pool range lengths.
20954 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
20955 Remove redundant JUMP_TABLE_DATA_P test.
20956 (sh_loop_align): Likewise.
20957 (split_branches): Likewise.
20958 (sh_insn_length_adjustment): Likewise.
20959 * config/spu/spu.c (get_branch_target): Likewise.
20960
0208f7da
JH
209612013-03-29 Jan Hubicka <jh@suse.cz>
20962
20963 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
20964 gcov streaming; stream hot bb threshold to ltrans.
20965 * predict.c (get_hot_bb_threshold): Break out from ....
20966 (maybe_hot_count_p): ... here.
20967 (set_hot_bb_threshold): New function.
20968 * lto-section-in.c (lto_section_name): Add profile.
20969 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
20970 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
20971 and data-streamer.h
20972 (histogram_entry): New structure.
20973 (histogram, histogram_pool): New global vars.
20974 (histogram_hash): New structure.
20975 (histogram_hash::hash): New method.
20976 (histogram_hash::equal): Likewise.
20977 (account_time_size): New function.
20978 (cmp_counts): New function.
20979 (dump_histogram): New function.
20980 (ipa_profile_generate_summary): New function.
20981 (ipa_profile_write_summary): New function.
20982 (ipa_profile_read_summary): New function.
20983 (ipa_profile): Decide on threshold.
e594716a
UB
20984 (pass_ipa_profile): Add ipa_profile_write_summary and
20985 ipa_profile_read_summary.
0208f7da
JH
20986 * Makefile.in (ipa.o): Update dependencies.
20987 * lto-streamer.h (LTO_section_ipa_profile): New section.
20988
5a6ccc94
GDR
209892013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
20990
20991 * tree.h (VAR_P): New.
20992
39385fa6
PC
209932013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
20994
20995 PR lto/56777
20996 * doc/invoke.texi ([-fwhole-program]): Fix typo.
20997
34f0d87a
SB
209982013-03-29 Steven Bosscher <steven@gcc.gnu.org>
20999
21000 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21001 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21002 (control_flow_insn_p): Likewise.
21003 * cfgrtl.c (duplicate_insn_chain): Likewise.
21004 * final.c (get_attr_length_1): Likewise.
21005 (shorten_branches): Likewise.
21006 (final_scan_insn): Likewise.
21007 * function.c (instantiate_virtual_regs): Likewise.
21008 * gcse.c (insert_insn_end_basic_block): Likewise.
21009 * ira-costs.c (scan_one_insn): Likewise.
21010 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21011 * lra.c (check_rtl): Likewise.
21012 * reload1.c (elimination_costs_in_insn): Likewise.
21013 * reorg.c (follow_jumps): Likewise.
21014
21015 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21016 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21017 (thumb_far_jump_used_p): Likewise.
21018 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21019 (workaround_speculation): Likewise.
21020 (add_sched_insns_for_speculation): Likewise.
21021 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21022 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21023 (frv_for_each_packet): Likewise.
21024 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21025 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21026 (final_emit_insn_group_barriers): Likewise.
21027 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21028 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21029 (mips16_insn_length): Likewise.
21030 * config/pa/pa.c (pa_reorg): Likewise.
21031 (pa_combine_instructions): Likewise.
21032 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21033 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21034 (sh_reorg): Likewise.
21035 (split_branches): Likewise.
21036 * config/spu/spu.c (get_branch_target): Likewise.
21037
21038 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21039 JUMP_TABLE_DATA_P.
21040
4ac761b0
KY
210412013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21042
39385fa6 21043 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21044 Fix declaration name.
21045
58a49189
LC
210462013-03-28 Lawrence Crowl <crowl@google.com>
21047
21048 * graphds.h (struct graph.indicies): Remove unused.
21049 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21050 (SCOP_ORIGINAL_PDDRS): Remove unused.
21051 * sese.h (extern insert_loop_close_phis): Removed unused.
21052 (extern insert_guard_phis): Removed unused.
21053 (extern ivtype_map_elt_info): Removed unused.
21054 (new_ivtype_map_elt): Removed unused.
21055 * sese.c (ivtype_map_elt_info): Removed unused.
21056
7b3b6ae4
LC
210572013-03-28 Lawrence Crowl <crowl@google.com>
21058
21059 * Makefile.in: Add several missing include dependences.
21060 (DUMPFILE_H): New.
21061 (test-dump.o): New. This object is not added to any executable,
21062 but is present for ad-hoc testing.
21063 * bitmap.c
21064 (debug (const bitmap_head_def &)): New.
21065 (debug (const bitmap_head_def *)): New.
21066 * bitmap.h
21067 (extern debug (const bitmap_head_def &)): New.
21068 (extern debug (const bitmap_head_def *)): New.
21069 * cfg.c
21070 (debug (edge_def &)): New.
21071 (debug (edge_def *)): New.
21072 * cfghooks.c
21073 (debug (basic_block_def &)): New.
21074 (debug (basic_block_def *)): New.
21075 * dumpfile.h
21076 (dump_node (const_tree, int, FILE *)): Correct source file.
21077 * dwarf2out.c
21078 (debug (die_struct &)): New.
21079 (debug (die_struct *)): New.
21080 * dwarf2out.h
21081 (extern debug (die_struct &)): New.
21082 (extern debug (die_struct *)): New.
21083 * gimple-pretty-print.c
21084 (debug (gimple_statement_d &)): New.
21085 (debug (gimple_statement_d *)): New.
21086 * gimple-pretty-print.h
21087 (extern debug (gimple_statement_d &)): New.
21088 (extern debug (gimple_statement_d *)): New.
21089 * ira-build.c
21090 (debug (ira_allocno_copy &)): New.
21091 (debug (ira_allocno_copy *)): New.
21092 (debug (ira_allocno &)): New.
21093 (debug (ira_allocno *)): New.
21094 * ira-int.h
21095 (extern debug (ira_allocno_copy &)): New.
21096 (extern debug (ira_allocno_copy *)): New.
21097 (extern debug (ira_allocno &)): New.
21098 (extern debug (ira_allocno *)): New.
21099 * ira-lives.c
21100 (debug (live_range &)): New.
21101 (debug (live_range *)): New.
21102 * lra-int.h
21103 (debug (lra_live_range &)): New.
21104 (debug (lra_live_range *)): New.
21105 * lra-lives.c
21106 (debug (lra_live_range &)): New.
21107 (debug (lra_live_range *)): New.
21108 * omega.c
21109 (debug (omega_pb_d &)): New.
21110 (debug (omega_pb_d *)): New.
21111 * omega.h
21112 (extern debug (omega_pb_d &)): New.
21113 (extern debug (omega_pb_d *)): New.
21114 * print-rtl.c
21115 (debug (const rtx_def &)): New.
21116 (debug (const rtx_def *)): New.
21117 * print-tree.c
21118 (debug_tree (tree): Move within file.
21119 (debug_raw (const tree_node &)): New.
21120 (debug_raw (const tree_node *)): New.
21121 (dump_tree_via_hooks (const tree_node *, int)): New.
21122 (debug (const tree_node &)): New.
21123 (debug (const tree_node *)): New.
21124 (debug_verbose (const tree_node &)): New.
21125 (debug_verbose (const tree_node *)): New.
21126 (debug_head (const tree_node &)): New.
21127 (debug_head (const tree_node *)): New.
21128 (debug_body (const tree_node &)): New.
21129 (debug_body (const tree_node *)): New.
21130 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21131 (debug (vec<tree, va_gc> &)): New.
21132 (debug (vec<tree, va_gc> *)): New.
21133 * rtl.h
21134 (extern debug (const rtx_def &)): New.
21135 (extern debug (const rtx_def *)): New.
21136 * sbitmap.c
21137 (debug_raw (simple_bitmap_def &)): New.
21138 (debug_raw (simple_bitmap_def *)): New.
21139 (debug (simple_bitmap_def &)): New.
21140 (debug (simple_bitmap_def *)): New.
21141 * sbitmap.h
21142 (extern debug (simple_bitmap_def &)): New.
21143 (extern debug (simple_bitmap_def *)): New.
21144 (extern debug_raw (simple_bitmap_def &)): New.
21145 (extern debug_raw (simple_bitmap_def *)): New.
21146 * sel-sched-dump.c
21147 (debug (vinsn_def &)): New.
21148 (debug (vinsn_def *)): New.
21149 (debug_verbose (vinsn_def &)): New.
21150 (debug_verbose (vinsn_def *)): New.
21151 (debug (expr_def &)): New.
21152 (debug (expr_def *)): New.
21153 (debug_verbose (expr_def &)): New.
21154 (debug_verbose (expr_def *)): New.
21155 (debug (vec<rtx> &)): New.
21156 (debug (vec<rtx> *)): New.
21157 * sel-sched-dump.h
21158 (extern debug (vinsn_def &)): New.
21159 (extern debug (vinsn_def *)): New.
21160 (extern debug_verbose (vinsn_def &)): New.
21161 (extern debug_verbose (vinsn_def *)): New.
21162 (extern debug (expr_def &)): New.
21163 (extern debug (expr_def *)): New.
21164 (extern debug_verbose (expr_def &)): New.
21165 (extern debug_verbose (expr_def *)): New.
21166 (extern debug (vec<rtx> &)): New.
21167 (extern debug (vec<rtx> *)): New.
21168 * sel-sched-ir.h
21169 (_list_iter_cond_expr): Make inline instead of static.
21170 * sreal.c
21171 (debug (sreal &)): New.
21172 (debug (sreal *)): New.
21173 * sreal.h
21174 (extern debug (sreal &)): New.
21175 (extern debug (sreal *)): New.
21176 * tree.h
21177 (extern debug_raw (const tree_node &)): New.
21178 (extern debug_raw (const tree_node *)): New.
21179 (extern debug (const tree_node &)): New.
21180 (extern debug (const tree_node *)): New.
21181 (extern debug_verbose (const tree_node &)): New.
21182 (extern debug_verbose (const tree_node *)): New.
21183 (extern debug_head (const tree_node &)): New.
21184 (extern debug_head (const tree_node *)): New.
21185 (extern debug_body (const tree_node &)): New.
21186 (extern debug_body (const tree_node *)): New.
21187 (extern debug (vec<tree, va_gc> &)): New.
21188 (extern debug (vec<tree, va_gc> *)): New.
21189 * tree-cfg.c
21190 (debug (struct loop &)): New.
21191 (debug (struct loop *)): New.
21192 (debug_verbose (struct loop &)): New.
21193 (debug_verbose (struct loop *)): New.
21194 * tree-dump.c: Add header dependence.
21195 * tree-flow.h
21196 (extern debug (struct loop &)): New.
21197 (extern debug (struct loop *)): New.
21198 (extern debug_verbose (struct loop &)): New.
21199 (extern debug_verbose (struct loop *)): New.
21200 * tree-data-ref.c
21201 (debug (data_reference &)): New.
21202 (debug (data_reference *)): New.
21203 (debug (vec<data_reference_p> &)): New.
21204 (debug (vec<data_reference_p> *)): New.
21205 (debug (vec<ddr_p> &)): New.
21206 (debug (vec<ddr_p> *)): New.
21207 * tree-data-ref.h
21208 (extern debug (data_reference &)): New.
21209 (extern debug (data_reference *)): New.
21210 (extern debug (vec<data_reference_p> &)): New.
21211 (extern debug (vec<data_reference_p> *)): New.
21212 (extern debug (vec<ddr_p> &)): New.
21213 (extern debug (vec<ddr_p> *)): New.
21214 * tree-ssa-alias.c
21215 (debug (pt_solution &)): New.
21216 (debug (pt_solution *)): New.
21217 * tree-ssa-alias.h
21218 (extern debug (pt_solution &)): New.
21219 (extern debug (pt_solution *)): New.
21220 * tree-ssa-alias.c
21221 (debug (_var_map &)): New.
21222 (debug (_var_map *)): New.
21223 (debug (tree_live_info_d &)): New.
21224 (debug (tree_live_info_d *)): New.
21225 * tree-ssa-alias.h
21226 (extern debug (_var_map &)): New.
21227 (extern debug (_var_map *)): New.
21228 (extern debug (tree_live_info_d &)): New.
21229 (extern debug (tree_live_info_d *)): New.
21230
be77e1e5
JH
212312013-03-28 Jan Hubicka <jh@suse.cz>
21232
21233 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21234
777e6976
IB
212352013-03-28 Ian Bolton <ian.bolton@arm.com>
21236
21237 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21238 record only when desired or required.
21239
9cd347ae
UB
212402013-03-28 Uros Bizjak <ubizjak@gmail.com>
21241
21242 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21243 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21244
33159866 212452013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21246
21247 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21248 (*andsi3_compare0_uxtw): New pattern.
21249 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21250 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21251
89ab31c1
JH
212522013-03-28 Jan Hubicka <jh@suse.cz>
21253
21254 * data-streamer-in.c (streamer_read_gcov_count): New function.
21255 * gimple-streamer-out.c: Include value-prof.h.
21256 (output_gimple_stmt): Output histogram.
21257 (output_bb): Use streamer_write_gcov_count.
21258 * value-prof.c: Include data-streamer.h
21259 (dump_histogram_value): Add HIST_TYPE_MAX.
21260 (stream_out_histogram_value): New function.
21261 (stream_in_histogram_value): New function.
21262 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21263 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21264 * data-streamer-out.c (streamer_write_gcov_count): New function.
21265 (streamer_write_gcov_count_stream): New function.
21266 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21267 (lto_output_node): Likewise.
21268 (input_node, input_edge): Likewise.
21269 * lto-streamer-out.c (output_cfg): Update streaming.
21270 * lto-streamer-in.c (input_cfg): Likewise.
21271 * data-streamer.h (streamer_write_gcov_count,
21272 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21273 * gimple-streamer-in.c: Include value-prof.h
21274 (input_gimple_stmt): Input histograms.
21275 (input_bb): Update profile streaming.
21276
e594716a 212772013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21278
33159866 21279 * genmodes.c (emit_max_int): New function.
8697be17 21280 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21281 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21282 Added doc.
8697be17 21283 * machmode.def: Fixed comment.
89ab31c1 21284
e594716a 212852013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21286
21287 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21288 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21289
74946978
MP
212902013-03-28 Marek Polacek <polacek@redhat.com>
21291 Richard Biener <rguenther@suse.de>
21292
21293 PR tree-optimization/56695
21294 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21295 build signed result of a vector comparison.
21296 * tree-cfg.c (verify_gimple_comparison): Check that a result
21297 of a vector comparison has signed type.
21298
a64b9c26
RB
212992013-03-28 Richard Biener <rguenther@suse.de>
21300
21301 PR tree-optimization/37021
21302 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21303 do not restrict gaps between groups.
21304 * tree-vect-stmts.c (vectorizable_load): Properly account for
21305 a gap between groups.
21306
a9dc2a2f
EB
213072013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21308
21309 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21310 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21311 is not enabled.
21312
53cb97f9
GP
213132013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21314
21315 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21316 * doc/extend.texi (Named Address Spaces): Ditto.
21317 (Variable Attributes): Ditto.
21318
b802ae5c
KT
213192013-03-27 Kai Tietz <ktietz@redhat.com>
21320
eddae10a
KT
21321 * config.build: Add support for cygwin x64 target.
21322 * config.gcc: Likewise.
21323 * config.host: Likewise.
21324 * configure.ac: Likewise
21325 * configure: Regenerated.
b802ae5c 21326
371e77e3 213272013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21328
21329 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21330 * config/i386/t-cygwin-w64: New file.
21331 * config/i386/cygwin-w64.h: New file.
21332 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21333 and add support for x64-cygwin target.
21334 (CPP_SPEC): Likewise.
21335 (CXX_WRAP_SPEC_LIST): Undefine before define.
21336 (LIBGCJ_SONAME): Use 15 as version.
21337
f49b33cb
RB
213382013-03-27 Richard Biener <rguenther@suse.de>
21339
21340 PR tree-optimization/56716
21341 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21342 dumping for ref nodes.
21343
b37a6ce5
MJ
213442013-03-27 Martin Jambor <mjambor@suse.cz>
21345
21346 PR tree-optimization/55334
21347 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21348 restricted pointers to arrays.
21349
9469b9b2
GDR
213502013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21351
21352 * Makefile.in (.SUFFIXES): Add .cc.
21353 (.c.o): Apply same recipe for implicit rule .cc.o.
21354
7d24f650
RB
213552013-03-27 Richard Biener <rguenther@suse.de>
21356
21357 PR tree-optimization/37021
21358 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21359 REALPART/IMAGPART_EXPRs around the supported refs.
21360 * tree-ssa-structalias.c (find_func_aliases): Assume that
21361 floating-point values are not used to transfer pointers.
21362
2f251a05
AI
213632013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21364
f43245d1
UB
21365 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21366 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21367 * doc/tm.texi: Regenerate.
21368 * targhooks.h (default_has_ifunc_p): New.
21369 * targhooks.c (default_has_ifunc_p): Ditto.
21370 * config/linux-protos.h: New file.
21371 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21372 hook for linux which disables support of indirect functions in android.
21373 * config/linux-android.c: New file.
21374 * config/t-linux-android.c: Ditto.
21375 * config.gcc: Added new object file linux-android.o.
21376 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21377 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21378 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21379 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21380 doesn't support indirect functions.
21381 * configure: Regenerate.
21382
78b4e425
BC
213832013-03-27 Bin Cheng <bin.cheng@arm.com>
21384
21385 PR target/56102
21386 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21387 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21388 mult-word mode.
21389
a5ba7b92
AK
213902013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21391
21392 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21393
be624986
TG
213942013-03-27 Terry Guo <terry.guo@arm.com>
21395
21396 * config/arm/arm-cores.def: Added core cortex-r7.
21397 * config/arm/arm-tune.md: Regenerated.
21398 * config/arm/arm-tables.opt: Regenerated.
21399 * doc/invoke.texi: Added entry for core cortex-r7.
21400
0a514f47
WL
214012013-03-27 Walter Lee <walt@tilera.com>
21402
21403 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21404 double-decrement of next_scratch_regno.
21405
9332b0d2
WL
214062013-03-27 Walter Lee <walt@tilera.com>
21407
801d9b2a 21408 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21409 input operands.
21410 (insn_v1mulus): Ditto.
21411 (insn_v2muls): Ditto.
21412
f54ea5dd
WL
214132013-03-27 Walter Lee <walt@tilera.com>
21414
e594716a 21415 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21416 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21417
bf60f4ca
WL
214182013-03-27 Walter Lee <walt@tilera.com>
21419
e594716a 21420 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21421 (*sibcall_value): Ditto.
21422
e3b51eeb
WL
214232013-03-27 Walter Lee <walt@tilera.com>
21424
21425 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21426 (insn_mnz_v8qi): ... this ...
21427 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21428 vector equivalent.
21429 (insn_v<n>mnz): Replaced by ...
21430 (insn_v1mnz): ... this ...
21431 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21432 equivalent.
21433 (insn_mz_<mode>): Replaced by ...
21434 (insn_mz_v8qi): ... this ...
21435 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21436 vector equivalent.
21437 (insn_v<n>mz): Replaced by ...
21438 (insn_v1mz): ... this ...
21439 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21440 equivalent.
21441
4fc7b145
EB
214422013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21443
21444 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21445
6f33817e
RM
214462013-03-26 Roland McGrath <mcgrathr@google.com>
21447
21448 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21449 than fprintf with a non-constant, non-format string.
21450
93a4145b
UB
214512013-03-26 Uros Bizjak <ubizjak@gmail.com>
21452
21453 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21454 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21455 operand 0 predicate.
21456 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21457 attribute. Use general_x64nomem_operand as operand 1 predicate.
21458 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21459 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21460 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21461 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21462 (mov<mode>_insv_1): Remove expander. Merge insn with
21463 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21464 Use general_x64nomem_operand as operand 1 predicate.
21465 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21466 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21467 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21468 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21469 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21470 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21471 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21472 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21473 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21474 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21475 (general_x64nomem_operand): Ditto.
21476
c6a9ed5a 214772013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21478
21479 * config/rtems.opt: Add -pthread option.
21480
31b0a960
RB
214812013-03-26 Richard Biener <rguenther@suse.de>
21482
93a4145b
UB
21483 * alias.c (find_base_term): Avoid redundant and not used recursion.
21484 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21485 (true_dependence_1): Compute and pass base terms to base_alias_check.
21486 (write_dependence_p): Likewise.
21487 (may_alias_p): Likewise.
21488
79517551
SN
214892013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21490
21491 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21492 PC-relative load in SI modes and above only.
21493
a76213b9
XQ
214942013-03-26 Xinyu Qi <xyqi@marvell.com>
21495
21496 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21497 * config/arm/iwmmxt.md (WCGR0): Update.
21498 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21499
37ff9355
UB
215002013-03-26 Uros Bizjak <ubizjak@gmail.com>
21501
21502 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21503 Use x64 and nox64 isa attributes.
21504
30b0317c
RB
215052013-03-26 Richard Biener <rguenther@suse.de>
21506
21507 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21508 alignment computations and rely on get_object_alignment_1
21509 for the !TYPE_P case.
21510 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21511
cbcdb140
WL
215122013-03-26 Walter Lee <walt@tilera.com>
21513
21514 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21515 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21516
dd884525 215172013-03-25 Jeff Law <law@redhat.com>
be672e08 21518
33159866
UB
21519 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21520 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21521 wrong version of prior patch.
21522
0051d3ec
WL
215232013-03-25 Walter Lee <walt@tilera.com>
21524
21525 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21526 TILEGX_INSN_SHUFFLEBYTES1.
21527 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21528 shufflebytes1.
21529 (tilegx_builtins): Ditto.
21530 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21531
065a3605
WL
215322013-03-25 Walter Lee <walt@tilera.com>
21533
21534 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21535 (floatunssisf2): New pattern.
21536 (floatsidf2): New pattern.
21537 (floatunssidf2): New pattern.
065a3605 21538
5b2a3c82
WL
215392013-03-25 Walter Lee <walt@tilera.com>
21540
21541 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21542 tests for constraint J, K, N, P.
21543
192ea533
WL
215442013-03-25 Walter Lee <walt@tilera.com>
21545
21546 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21547 Use indirect/pcrel encoding.
21548 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21549 Ditto.
21550
855e0d0b
SE
215512013-03-25 Steve Ellcey <sellcey@mips.com>
21552
21553 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21554 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21555 * config/mips/mips.c (mips_option_override): Set IMADD default.
21556 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21557 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21558 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21559 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21560 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21561
39e45653
JL
215622013-03-25 Jeff Law <law@redhat.com>
21563
21564 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21565 slightly to avoid creating and folding useless trees. Simplify
21566 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21567
7482c470
UB
215682013-03-25 Uros Bizjak <ubizjak@gmail.com>
21569
21570 * config/i386/i386.md (*zero_extendsidi2): Merge with
21571 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21572 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21573 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21574 targets. Clarify comment.
21575
4a53743e
MJ
215762013-03-25 Martin Jambor <mjambor@suse.cz>
21577
21578 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21579 pass-through jump functions differently.
21580 (ipa_read_jump_function): Likewise. Also use setter functions to set
21581 up jump functions.
21582
162712de
MJ
215832013-03-25 Martin Jambor <mjambor@suse.cz>
21584
21585 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21586 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21587 process it.
21588 (ipa_get_indirect_edge_target): New function.
21589 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21590 ipa_get_indirect_edge_target. Update all callers.
21591 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21592 ipa_get_indirect_edge_target_1 instead of calling
21593 ipa_get_indirect_edge_target.
21594 (create_specialized_node): Pass aggvlas to
21595 ipcp_discover_new_direct_edges.
21596
a5a4c20a
KT
215972013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21598
21599 * config/arm/arm.md (f_sels, f_seld): New types.
21600 (*cmov<mode>): New pattern.
21601 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21602 predicate.
21603
f992b9fc
KT
216042013-03-25 Kai Tietz <ktietz@redhat.com>
21605
21606 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21607 POSIX-printf for mingw-hosted builds.
21608
c16fd676
RB
216092013-03-25 Richard Biener <rguenther@suse.de>
21610
21611 PR middle-end/56694
21612 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21613 must-not-throw stmt location.
21614
5ad29f12
KT
216152013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21616
21617 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21618 Emit load-acquire versions when acq is true.
21619 (arm_emit_store_exclusive): Add rel parameter.
21620 Emit store-release versions when rel is true.
21621 (arm_split_compare_and_swap): Use acquire-release instructions
21622 instead.
21623 of barriers when appropriate.
21624 (arm_split_atomic_op): Likewise.
21625 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21626 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21627 (VUNSPEC_SLX): Likewise.
21628 (VUNSPEC_LDA): Likewise.
21629 (VUNSPEC_STL): Likewise.
21630 * config/arm/sync.md (atomic_load<mode>): New pattern.
21631 (atomic_store<mode>): Likewise.
21632 (arm_load_acquire_exclusive<mode>): Likewise.
21633 (arm_load_acquire_exclusivesi): Likewise.
21634 (arm_load_acquire_exclusivedi): Likewise.
21635 (arm_store_release_exclusive<mode>): Likewise.
21636
03a7dddb
CM
216372013-03-25 Catherine Moore <clm@codesourcery.com>
21638
21639 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21640 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21641 * config/mip/predicates.md (lwsp_swsp_operand,
21642 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21643 sb16_operand, db4_operand, db7_operand, ib3_operand,
21644 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21645 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21646 andi16_operand): New predicates.
21647 * config/mips/mips.md (compression): New attribute.
21648 (enabled): New attribute.
21649 (length): Consider compression in computing length.
21650 (shift_compression): New code attribute.
21651 (*add<mode>3): New operands. Record compression.
21652 (sub<mode>3): Likewise.
21653 (one_cmpl<mode>2): Likewise.
21654 (*and<mode>3): Likewise.
21655 (*ior<mode>3): Likewise.
21656 (unnamed pattern for xor): Likewise.
21657 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21658 (*<optab><mode>3): Likewise.
21659 (*mov<mode>_internal: Likewise.
21660 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21661 (mips_unsigned_immediate_p): New.
21662 (umips_lwsp_swsp_address_p): New.
21663 (m16_based_address_p): New.
21664 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21665 (mips_unsigned_immediate_p): New prototype.
21666 (lwsp_swsp_address_p): New prototype.
21667 (m16_based_address_p): New prototype.
21668 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21669 (mips_signed_immediate_p): New function.
21670 (m16_based_address_p): New function.
21671 (lwsp_swsp_address_p): New function.
21672 (mips_print_operand_punctuation): Recognize short delay slot insns
21673 for microMIPS.add<mode>3"
21674
f35c297f 216752013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21676
f35c297f
KT
21677 PR target/56720
21678 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21679 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21680
051b9446
RB
216812013-03-25 Richard Biener <rguenther@suse.de>
21682
21683 PR tree-optimization/56689
21684 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21685 any edge.
21686
374001cb
RB
216872013-03-25 Richard Biener <rguenther@suse.de>
21688
21689 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21690 of bitmap.
21691 (memory_references): Likewise.
21692 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21693 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21694 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21695 (gather_mem_refs_in_loops): Fold into ...
21696 (analyze_memory_references): ... this. Move initialization
21697 to tree_ssa_lim_initialize.
21698 (fill_always_executed_in): Rename to ...
21699 (fill_always_executed_in_1): ... this.
21700 (fill_always_executed_in): Move contains_call computation to
21701 this new function from ...
21702 (tree_ssa_lim_initialize): ... here.
21703 (tree_ssa_lim): Call fill_always_executed_in.
21704
57895947
EB
217052013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21706
21707 * postreload.c (reload_combine): Fix code detecting returns.
21708
1e1b18c1
EB
217092013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21710
21711 * function.c (emit_use_return_register_into_block): On cc0 targets,
21712 do not emit the sequence between cc0 setter and user.
21713
9216baf1
KT
217142013-03-25 Kai Tietz <ktietz@redhat.com>
21715
1e1b18c1
EB
21716 * config/i386/predicates.md (local_symbolic_operand): Interpret
21717 dll-imported symbols as none-local.
9216baf1 21718
76421b44
RB
217192013-03-25 Richard Biener <rguenther@suse.de>
21720
21721 * tree-ssa-loop-im.c (struct depend): Remove.
21722 (struct lim_aux_data): Make depends a vec of gimples.
21723 (free_lim_aux_data): Adjust.
21724 (add_dependency): Likewise.
21725 (set_level): Likewise.
21726
d154bfa2
RB
217272013-03-25 Richard Biener <rguenther@suse.de>
21728
21729 PR middle-end/56434
21730 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21731 the pointer returned by calls with ECF_MALLOC set.
21732
2cd9804e
UB
217332013-03-24 Uros Bizjak <ubizjak@gmail.com>
21734
acef5fe0
UB
21735 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21736
217372013-03-24 Uros Bizjak <ubizjak@gmail.com>
21738
21739 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
21740 using MMXMODE mode iterator.
21741 (*move<mode>_internal): Merge with *movv2sf_internal and
21742 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21743
225ccc68
SB
217442013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21745
85c0f02d
SB
21746 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21747 (record_last_mem_set_info): Likewise.
21748
225ccc68
SB
21749 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21750 of XNEWVEC followed by memset.
21751 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21752
b64925dc
SB
217532013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21754
21755 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21756 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21757 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21758 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21759 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21760 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
21761 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
21762 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
21763 BARRIER_P instead of GET_CODE.
21764
b9aaf52e
EB
217652013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21766
21767 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
21768 inaccuracy in the probing code.
21769
21770 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
21771 (ctrapdi4): Likewise.
21772
66de4d7c
EB
217732013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21774
21775 * calls.c (expand_call): Add missing guard to code handling return
21776 of non-BLKmode structures in MSB.
21777 * function.c (expand_function_end): Likewise.
21778
4f25c8fb
EB
217792013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21780
21781 * combine.c (try_combine): Adjust comment. Do not add the set of
21782 insn #0 if the destination indirectly is set or dies in insn #2.
21783 Tidy up code to distribute a new note.
21784
23b7850d
UB
217852013-03-22 Uros Bizjak <ubizjak@gmail.com>
21786
21787 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
21788 also for alternatives 16 and 17.
21789
bed852cf
UB
217902013-03-22 Uros Bizjak <ubizjak@gmail.com>
21791
21792 * config/i386/sse.md (*mov<mode>_internal): Merge with
21793 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
21794 Emit insn template depending on type attribute. Use
21795 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21796 movd instead of movq mnemonic for interunit moves. Rewrite mode
21797 attribute calculation. Remove unit attribute calculation.
21798 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
21799 Set prefix_data16 attribute for DImode ssemov types.
21800 Use Ym instead of y for SSE-MMX conversion alternatives.
21801 Reorder operand constraints.
21802
1e8a7937
SB
218032013-03-22 Steven Bosscher <steven@gcc.gnu.org>
21804
21805 * df.h (df_insn_delete): Adjust prototype.
21806 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
21807 and let it decide whether mark the basic block dirty.
21808 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
21809 * df-scan.c (df_insn_info_delete): New helper function, split
21810 off from df_insn_delete.
21811 (df_scan_free_bb_info): Use it.
21812 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
21813 Likewise.
21814 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
21815 that the insn is actually an insn and it has a non-NULL basic block.
21816 Do not mark basic block dirty if only deleting a DEBUG_INSN.
21817
e14d094c
RB
218182013-03-22 Richard Biener <rguenther@suse.de>
21819
21820 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
21821 dep_ref members.
21822 (mem_ref_alloc): Do not allocate them.
21823 (refs_independent_p): Do not query or maintain a cache.
21824
e9cf7316
RB
218252013-03-22 Richard Biener <rguenther@suse.de>
21826
21827 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
21828 (gather_mem_refs_in_loops): Do not compute it.
21829 (analyze_memory_references): Do not allocate it.
21830 (tree_ssa_lim_finalize): Do not free it.
21831 (for_all_locs_in_loop): Do not query all_refs_in_loop.
21832
f046e81b
RB
218332013-03-22 Richard Biener <rguenther@suse.de>
21834
21835 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 21836
a05c0ddf
IB
218372013-03-22 Ian Bolton <ian.bolton@arm.com>
21838
21839 * config/aarch64/aarch64.c (aarch64_print_operand): New
21840 format specifier for printing a constant in hex.
21841 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
21842 format specifier for printing second operand.
21843
c00217fc
RB
218442013-03-22 Richard Biener <rguenther@suse.de>
21845
21846 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
21847 bitmaps.
21848 (gather_mem_refs_in_loops): Perform store accumulation here.
21849 (create_vop_ref_mapping_loop): Remove.
21850 (create_vop_ref_mapping): Likewise.
21851 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 21852 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
21853 (record_indep_loop): Remove.
21854 (record_dep_loop): New function.
21855 (ref_indep_loop_p_1): Adjust to only walk over references
21856 in the loop, not its subloops.
21857 (ref_indep_loop_p): Rename to ...
21858 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
21859 maintaining a more fine-grained cache.
21860 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
21861 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
21862
15d19bf8
RB
218632013-03-22 Richard Biener <rguenther@suse.de>
21864
21865 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
21866 (struct mem_ref): Make accesses_in_loop a vec of a vec of
21867 aggregate mem_ref_loc.
21868 (free_mem_ref_locs): Inline into ...
21869 (memref_free): ... this and adjust.
21870 (mem_ref_alloc): Adjust.
21871 (mem_ref_locs_alloc): Remove.
21872 (record_mem_ref_loc): Adjust.
21873 (get_all_locs_in_loop): Rewrite into ...
21874 (for_all_locs_in_loop): ... this iterator.
21875 (rewrite_mem_ref_loc): New functor.
21876 (rewrite_mem_refs): Use for_all_locs_in_loop.
21877 (sm_set_flag_if_changed): New functor.
21878 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
21879 (ref_always_accessed): New functor.
21880 (ref_always_accessed_p): Use for_all_locs_in_loop.
21881
6f37411d
MG
218822013-03-21 Marc Glisse <marc.glisse@inria.fr>
21883
21884 * tree-pass.h (PROP_gimple_lvec): New.
21885 * passes.c (dump_properties): Handle PROP_gimple_lvec.
21886 (init_optimization_passes): Move pass_lower_vector.
21887 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
21888 PROP_gimple_lvec.
21889 (pass_lower_vector): Provide PROP_gimple_lvec.
21890 (pass_lower_vector_ssa): Likewise.
21891 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
21892
511ef689
MW
218932013-03-21 Mark Wielaard <mjw@redhat.com>
21894
21895 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
21896
cc1df30b
UB
218972013-03-21 Uros Bizjak <ubizjak@gmail.com>
21898
21899 * config/i386/i386.md (*movdi_internal): Disparage slightly
21900 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
21901 conversion alternatives.
21902
c845cfe1
JJ
219032013-03-21 Jakub Jelinek <jakub@redhat.com>
21904
37e99116
JJ
21905 PR middle-end/48087
21906 * diagnostic.def (DK_WERROR): New kind.
21907 * diagnostic.h (werrorcount): Define.
21908 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
21909 promoted to DK_ERROR, increment DK_WERROR counter instead of
21910 DK_ERROR counter.
21911 * toplev.c (toplev_main): Call print_ignored_options even if
21912 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
21913 even if just werrorcount is non-zero.
21914
c845cfe1
JJ
21915 PR debug/55608
21916 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
21917 on failure.
21918 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
21919 (string_cst_pool_decl): New function.
21920 (optimize_one_addr_into_implicit_ptr): New function.
21921 (resolve_addr_in_expr): Optimize DWARF location expression
21922 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
21923 which doesn't live in memory, but has DW_AT_location or
21924 DW_AT_const_value, or refers to a string literal, into
21925 DW_OP_GNU_implicit_pointer.
21926 (optimize_location_into_implicit_ptr): New function.
21927 (resolve_addr): If removing DW_AT_location of a variable because
21928 it was DW_OP_addr of address of the variable, but the variable doesn't
21929 live in memory, try to emit const value attribute for the initializer.
21930
08e0cda6
MG
219312013-03-21 Marc Glisse <marc.glisse@inria.fr>
21932
21933 * tree.h (VECTOR_TYPE_P): New macro.
21934 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
21935 TYPE_MODE): Use it.
21936 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
21937 VEC_COND_EXPR cannot be lvalues.
21938 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
21939
d08633b4
MG
219402013-03-21 Marc Glisse <marc.glisse@inria.fr>
21941
21942 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
21943 Restrict the transformation to equal modes.
21944
e6647190
RB
219452013-03-21 Richard Biener <rguenther@suse.de>
21946
21947 PR tree-optimization/39326
21948 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
21949 (MEM_ANALYZABLE): Adjust.
21950 (record_mem_ref_loc): Move bitmap ops ...
21951 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
21952 unanalyzable refs, do not record locations for it.
21953 (analyze_memory_references): Allocate ref zero as shared
21954 unanalyzable ref.
21955 (refs_independent_p): Do not test for unanalyzed mems here.
21956 (ref_indep_loop_p_1): Special-case disambiguation against
21957 the unanalyzed ref.
cc1df30b 21958 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 21959
65074f54
CL
219602013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
21961
21962 * config/arm/arm-protos.h (tune_params): Add
21963 prefer_neon_for_64bits field.
21964 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
21965 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
21966 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
21967 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
21968 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
21969 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
21970 (arm_option_override): Handle -mneon-for-64bits new option.
21971 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
21972 (prefer_neon_for_64bits): Declare new variable.
21973 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 21974 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
21975 (arch_enabled): Handle new arch types. Remove support for onlya8
21976 and nota8.
21977 (one_cmpldi2): Use new arch names.
bc5faa5b 21978 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
21979 * config/arm/arm.opt (mneon-for-64bits): Add option.
21980 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
21981 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
21982 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
21983 of onlya8.
21984 * doc/invoke.texi (-mneon-for-64bits): Document.
21985
5a2d2a79
RB
219862013-03-21 Richard Biener <rguenther@suse.de>
21987
21988 PR tree-optimization/39326
21989 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
21990 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 21991 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 21992
5abe1e05
RB
219932013-03-21 Richard Biener <rguenther@suse.de>
21994
21995 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
21996 (vect_insert_into_interleaving_chain): Likewise.
21997 (vect_drs_dependent_in_basic_block): Inline ...
21998 (vect_slp_analyze_data_ref_dependence): ... here. New function,
21999 split out from ...
22000 (vect_analyze_data_ref_dependence): ... here. Simplify.
22001 (vect_check_interleaving): Simplify.
22002 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22003 (vect_slp_analyze_data_ref_dependences): ... this new function.
22004 (dr_group_sort_cmp): New function.
22005 (vect_analyze_data_ref_accesses): Compute data-reference groups
22006 here instead of in vect_analyze_data_ref_dependence. Use
22007 a more efficient algorithm.
22008 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22009 vect_slp_analyze_data_ref_dependences. Call
22010 vect_analyze_data_ref_accesses earlier.
22011 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22012 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22013 (vect_slp_analyze_data_ref_dependences): New prototype.
22014
cad1735b
RB
220152013-03-21 Richard Biener <rguenther@suse.de>
22016
22017 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22018 ref is stored in the loop.
22019 (find_refs_for_sm): Walk only over all stores.
22020 (store_motion_loop): Allocate from lim_bitmap_obstack.
22021 (store_motion): Likewise.
22022
141310ef
RB
220232013-03-21 Richard Biener <rguenther@suse.de>
22024
22025 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22026 Update virtual SSA form.
22027
5022315a
RO
220282013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22029
22030 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22031 * configure: Regenerate.
22032 * config.in: Regenerate.
22033 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22034 if !HAVE_LD_EH_FRAME_CIEV3.
22035
50d4421c
RB
220362013-03-21 Richard Biener <rguenther@suse.de>
22037
22038 * tree-cfg.c (verify_expr_no_block): New function.
22039 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22040 nor DECL_VALUE_EXPR have locations with associated blocks.
22041 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22042 (clear_unused_block_pointer): Remove code dealing with
22043 blocks in DECL_DEBUG_EXPR locations.
22044
839b422f
RB
220452013-03-21 Richard Biener <rguenther@suse.de>
22046
22047 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22048 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22049 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22050 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22051 instead of DECL_DEBUG_EXPR_IS_FROM.
22052 * gimplify.c (gimplify_modify_expr): Likewise.
22053 * tree-cfg.c (verify_expr_location_1): Likewise.
22054 * tree-complex.c (create_one_component_var): Likewise.
22055 * tree-sra.c (create_access_replacement): Likewise.
22056 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22057 (clear_unused_block_pointer): Likewise.
22058 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22059 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22060 * var-tracking.c (var_debug_decl): Likewise.
22061 (track_expr_p): Likewise.
22062 * tree-inline.c (add_local_variables): Likewise. Set
22063 DECL_HAS_DEBUG_EXPR_P after copying it.
22064 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22065 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22066
fe04878d
UB
220672013-03-21 Uros Bizjak <ubizjak@gmail.com>
22068
22069 PR bootstrap/56656
22070 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22071 * configure: Regenerate.
22072 * config.in: Regenerate.
22073 * config/i386/i386.md (*movdf_internal): Use
22074 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22075 movd instead of movq mnemonic for interunit moves.
22076 (*movdi_internal): Ditto.
22077
bd059b26 220782013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22079
22080 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22081 (abd<mode>_3): New pattern.
22082 (aba<mode>_3): New pattern.
22083 (fabd<mode>_3): New pattern.
22084
bd059b26 220852013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22086
22087 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22088 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22089 occurrence of REGISTER_PREFIX as its empty string.
22090
4f1f78b9
JL
220912013-03-20 Jeff Law <law@redhat.com>
22092
22093 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22094 addititional equivalences for equality comparisons between an SSA_NAME
22095 and a constant where the SSA_NAME was set from a widening conversion.
22096
327a1118
WL
220972013-03-20 Walter Lee <walt@tilera.com>
22098
22099 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22100
813e0036
UB
221012013-03-20 Uros Bizjak <ubizjak@gmail.com>
22102
22103 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22104 depending on type attribute.
22105 (*movti_internal): Ditto.
22106 (*movtf_internal): Ditto.
22107 (*movxf_internal): Ditto.
22108 (*movdf_internal): Ditto.
22109 (*movsf_internal): Ditto.
22110
7cf34aae
UB
221112013-03-20 Uros Bizjak <ubizjak@gmail.com>
22112
22113 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22114 maybe_vex for sselog1 and ssemov types.
22115 (*movdi_internal): Reorder operand constraints.
22116 (*movsi_internal): Ditto. Set prefix attribute to
22117 maybe_vex for sselog1 and ssemov types.
22118 (*movtf_internal): Set prefix attribute to maybe_vex
22119 for sselog1 and ssemov types.
22120 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22121 DImode ssemov types. Reorder operand constraints.
22122 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22123 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22124 attribute for SImode ssemov types. Reorder operand constraints.
22125
19321415
MJ
221262013-03-20 Martin Jambor <mjambor@suse.cz>
22127
22128 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22129 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22130
12211b99 221312013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22132
22133 * config/rs6000/predicates.md (indexed_address, update_address_mem
22134 update_indexed_address_mem): New predicates.
22135 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22136 attribute for load/store instructions.
22137 * config/rs6000/dfp.md (movsd_store): Likewise.
22138 (movsd_load): Likewise.
22139 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22140 (unnamed HI->DI extend define_insn): Likewise.
22141 (unnamed SI->DI extend define_insn): Likewise.
22142 (unnamed QI->SI extend define_insn): Likewise.
22143 (unnamed QI->HI extend define_insn): Likewise.
22144 (unnamed HI->SI extend define_insn): Likewise.
22145 (unnamed HI->SI extend define_insn): Likewise.
22146 (extendsfdf2_fpr): Likewise.
22147 (movsi_internal1): Likewise.
22148 (movsi_internal1_single): Likewise.
22149 (movhi_internal): Likewise.
22150 (movqi_internal): Likewise.
22151 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22152 attribute for load/store instructions.
22153 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22154 instructions.
22155 (mov<mode>_softfloat): Likewise.
22156 (mov<mode>_hardfloat32): Likewise.
22157 (mov<mode>_hardfloat64): Likewise.
22158 (mov<mode>_softfloat64): Likewise.
22159 (movdi_internal32): Likewise.
22160 (movdi_internal64): Likewise.
22161 (probe_stack_<mode>): Likewise.
22162
221632013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22164
22165 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22166 floating point, and decimal floating point to reload iterator.
22167
22168 * config/rs6000/constraints.md (wl constraint): New constraints to
22169 return FLOAT_REGS if certain options are used to reduce the number
22170 of separate patterns that exist in the file.
22171 (wx constraint): Likewise.
22172 (wz constraint): Likewise.
22173
22174 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22175 -mdebug=reg, print wg, wl, wx, and wz constraints.
22176 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22177 Initialize the reload functions for 64-bit binary/decimal floating
22178 point types.
22179 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22180 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22181 create the buffer on the stack to overcome not having a 32-bit
22182 load and store.
22183 (rs6000_emit_move): Likewise.
22184 (rs6000_secondary_memory_needed_rtx): Likewise.
22185 (rs6000_alloc_sdmode_stack_slot): Likewise.
22186 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22187 via xxlxor, just like DFmode 0.0.
22188
22189 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22190 define as 1 if we are running on a power7 or newer.
22191 (enum r6000_reg_class_enum): Add new constraints.
22192
22193 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22194 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22195 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22196 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22197 (movsd splitter): Likewise.
22198 (movsd_hardfloat): Likewise.
22199 (movsd_softfloat): Likewise.
22200
22201 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22202 binary and decimal floating point moves.
22203 (fmove_ok): New attributes to combine binary and decimal floating
22204 point moves, and to combine power6x (mfpgpr) moves along normal
22205 floating moves.
22206 (real_value_to_target): Likewise.
22207 (f32_lr): Likewise.
22208 (f32_lm): Likewise.
22209 (f32_li): Likewise.
22210 (f32_sr): Likewise.
22211 (f32_sm): Likewise.
22212 (f32_si): Likewise.
22213 (movsf): Combine binary and decimal floating point moves. Combine
22214 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22215 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22216 (mov<mode> for SFmode/SDmode); Likewise.
22217 (SFmode/SDmode splitters): Likewise.
22218 (movsf_hardfloat): Likewise.
22219 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22220 (movsf_softfloat): Likewise.
22221 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22222
22223 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22224 wx and wz constraints.
22225
22226 * config/rs6000/constraints.md (wg constraint): New constraint to
22227 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22228
22229 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22230 constraint.
22231
22232 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22233 -mdebug=reg, print wg, wl, wx, and wz constraints.
22234 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22235 Initialize the reload functions for 64-bit binary/decimal floating
22236 point types.
22237 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22238 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22239 create the buffer on the stack to overcome not having a 32-bit
22240 load and store.
22241 (rs6000_emit_move): Likewise.
22242 (rs6000_secondary_memory_needed_rtx): Likewise.
22243 (rs6000_alloc_sdmode_stack_slot): Likewise.
22244 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22245 via xxlxor, just like DFmode 0.0.
22246
c6d5ff83
MM
22247 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22248 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22249 with other moves by using conditional constraits (wg). Use LFIWZX
22250 and STFIWX for loading SDmode on power7.
22251 (movdd splitters): Likewise.
22252 (movdd_hardfloat32): Likewise.
22253 (movdd_softfloat32): Likewise.
22254 (movdd_hardfloat64_mfpgpr): Likewise.
22255 (movdd_hardfloat64): Likewise.
22256 (movdd_softfloat64): Likewise.
22257
22258 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22259 64-bit binary and decimal floating point moves.
22260 (FMOVE64X): Likewise.
22261 (movdf): Combine 64-bit binary and decimal floating point moves.
22262 Combine power6x (mfpgpr) moves with other moves by using
22263 conditional constraits (wg).
22264 (mov<mode> for DFmode/DDmode): Likewise.
22265 (DFmode/DDmode splitters): Likewise.
22266 (movdf_hardfloat32): Likewise.
22267 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22268 (movdf_softfloat32): Likewise.
22269 (movdf_hardfloat64_mfpgpr): Likewise.
22270 (movdf_hardfloat64): Likewise.
22271 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22272 (movdf_softfloat64): Likewise.
22273 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22274 (reload_<mode>_load): Move to later in the file so they aren't in
22275 the middle of the floating point move insns.
22276 (reload_<mode>_store): Likewise.
22277
22278 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22279 constraint.
22280
22281 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22282 constraint if -mdebug=reg.
bd059b26
UB
22283 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22284 Enable using dd reload support if needed.
c6d5ff83
MM
22285
22286 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22287 binary and decimal floating point moves in rs6000.md.
22288 (movtd_internal): Likewise.
22289
22290 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22291 decimal floating point moves.
22292 (movtf): Likewise.
22293 (movtf_internal): Likewise.
22294 (mov<mode>_internal, TDmode/TFmode): Likewise.
22295 (movtf_softfloat): Likewise.
22296 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22297
22298 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22299 movdi_internal64, using wg constraint for move direct operations.
22300 (movdi_internal64): Likewise.
22301
22302 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22303 MODES_TIEABLE_P for selected modes. Print the numerical value of
22304 the various virtual registers. Use GPR/FPR first/last values,
22305 instead of hard coding the register numbers. Print which modes
22306 have reload functions registered.
bd059b26
UB
22307 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22308 settings before/after setting cpu, target and subtarget settings.
22309 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22310 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22311 (rs6000_secondary_reload_fail): Likewise.
22312 (rs6000_secondary_reload_inner): Likewise.
22313
22314 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22315 macros for first/last GPR and FPR registers.
22316 (LAST_GPR_REGNO): Likewise.
22317 (FIRST_FPR_REGNO): Likewise.
22318 (LAST_FPR_REGNO): Likewise.
22319
22320 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22321 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22322 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22323 (vcond<mode><mode>): Likewise.
22324 (vcondu<mode><mode>): Likewise.
22325 (vector_gtu<mode>): Likewise.
22326 (vector_gte<mode>): Likewise.
22327 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22328 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22329 (ior<mode>3): Likewise.
22330 (and<mode>3): Likewise.
22331 (one_cmpl<mode>2): Likewise.
22332 (nor<mode>3): Likewise.
22333 (andc<mode>3): Likewise.
22334
22335 * config/rs6000/constraints.md (wt constraint): New constraint
22336 that returns VSX_REGS if TImode is allowed in VSX registers.
22337
22338 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22339 constant under VSX.
22340
22341 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22342 similar to TImode, but it is restricted to being in the GPRs.
22343
22344 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22345 TImode to occupy a single VSX register.
22346
22347 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22348 -mvsx-timode for power7/power8.
22349 (power7 cpu): Likewise.
22350 (power8 cpu): Likewise.
22351
22352 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22353 sure that TFmode/TDmode take up two registers if they are ever
22354 allowed in the upper VSX registers.
22355 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22356 registers.
22357 (rs6000_init_hard_regno_mode_ok): Likewise.
22358 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22359 constraint. Print if LRA is turned on.
22360 (rs6000_option_override_internal): Give an error if -mvsx-timode
22361 and VSX is not enabled.
22362 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22363 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22364 to reg+offset addressing. Use PTImode when checking offset
22365 addresses for validity.
22366 (reg_offset_addressing_ok_p): Likewise.
22367 (rs6000_legitimate_offset_address_p): Likewise.
22368 (rs6000_legitimize_address): Likewise.
22369 (rs6000_legitimize_reload_address): Likewise.
22370 (rs6000_legitimate_address_p): Likewise.
22371 (rs6000_eliminate_indexed_memrefs): Likewise.
22372 (rs6000_emit_move): Likewise.
22373 (rs6000_secondary_reload): Likewise.
22374 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22375 reloads to fpr registers to continue to use reg+offset addressing,
22376 but 64-bit reloads to altivec registers need reg+reg addressing.
22377 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22378 it. Treat LO_SUM like a PLUS operation.
22379 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22380 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22381 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22382 registers to share a register with a smaller sized type, since VSX
22383 puts scalars in the upper 64-bits.
22384 (print_operand): Add support for PTImode.
22385 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22386 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22387 registers, but don't have arithmetic support.
22388 (rs6000_memory_move_cost): Add test for VSX.
22389 (rs6000_opt_masks): Add -mvsx-timode.
22390
22391 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22392 for TImode.
22393 (VSs): Likewise.
22394 (VSr): Use wt constraint for TImode.
22395 (VSv): Drop TImode support.
22396 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22397 (vsx_movti_64bit): Likewise.
22398 (vsx_movti_32bit): Likewise.
22399 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22400 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22401 one '?' on the appropriate output constraint. Do not allow TImode
22402 logical operations on 32-bit systems.
22403 (vsx_ior<mode>3): Likewise.
22404 (vsx_xor<mode>3): Likewise.
22405 (vsx_one_cmpl<mode>2): Likewise.
22406 (vsx_nor<mode>3): Likewise.
22407 (vsx_andc<mode>3): Likewise.
22408 (vsx_concat_<mode>): Likewise.
22409 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22410
22411 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22412 OPTION_MASK_VSX_TIMODE.
22413 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22414 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22415
22416 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22417 (TI2 iterator): New iterator for TImode, PTImode.
22418 (wd mode attribute): Add values for vector types.
bd059b26
UB
22419 (movti_string): Replace TI move operations with operations for TImode
22420 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22421 (mov<mode>_string, TImode/PTImode): Likewise.
22422 (movti_ppc64): Likewise.
22423 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22424 (TI mode splitters): Likewise.
22425
22426 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22427 constraint.
22428
1fc5eced
MG
224292013-03-20 Marc Glisse <marc.glisse@inria.fr>
22430
22431 PR tree-optimization/56355
22432 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22433 Also handle integers with undefined overflow.
22434
22c4c869
CM
224352013-03-20 Catherine Moore <clm@codesourcery.com>
22436 Maciej W. Rozycki <macro@codesourcery.com>
22437 Tom de Vries <tom@codesourcery.com>
12211b99 22438 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22439 Iain Sandoe <iain@codesourcery.com>
22440 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22441 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22442
22443 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22444 Document new function attributes.
22c4c869
CM
22445 * doc/invoke.texi (minterlink-compressed, mmicromips,
22446 m14k, m14ke, m14kec): Document new options.
22447 (minterlink-mips16): Update documentation.
22448 * doc/md.texi (ZC, ZD): Document new constraints.
22449 * configure.ac (gcc_cv_as_micromips): Check if linker
22450 supports the .set micromips directive.
22451 * configure: Regenerate.
22452 * config.in: Regenerate.
22453 * config/mips/mips-tables.opt: Regenerate.
22454 * config/mips/micromips.md: New file.
22455 * constraints.md (ZC, ZD): New constraints.
22456 * config/mips/predicates.md (movep_src_register): New predicate.
22457 (movep_src_operand): New predicate.
22458 (non_volatile_mem_operand): New predicate.
22459 * config/mips/mips.md (multimem): New type.
22460 (length): Differentiate between 17-bit and 18-bit branch offsets.
22461 (MOVEP1, MOVEP2): New mode iterator.
33159866 22462 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22463 (mov_<load>r): Likewise.
22464 (mov_<store>l): Likewise.
22465 (mov_<store>r): Likewise.
22466 (*branch_equality<mode>_inverted): Add microMIPS support.
22467 (*branch_equality<mode>): Likewise.
22468 (*jump_absolute): Likewise.
22469 (indirect_jump_<mode>): Likewise.
22470 (tablejump_<mode>): Likewise.
22471 (<optab>_internal): Likewise.
22472 (sibcall_internal): Likewise.
22473 (sibcall_value_internal): Likewise.
22474 (prefetch): Use constraint ZD.
22475 * config/mips/mips.opt (minterlink-compressed): New option.
22476 (minterlink-mips16): Now an alias for minterlink-compressed.
22477 (mmicromips): New option.
22478 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22479 (compare_and_swap_12): Likewise.
22480 (sync_add<mode>): Likewise.
22481 (sync_<optab>_12): Likewise.
22482 (sync_old_<optab>_12): Likewise.
22483 (sync_new_<optab>_12): Likewise.
22484 (sync_nand_12): Likewise.
22485 (sync_old_nand_12): Likewise.
22486 (sync_new_nand_12): Likewise.
22487 (sync_sub<mode>): Likewise.
22488 (sync_old_add<mode>): Likewise.
22489 (sync_old_sub<mode>): Likewise.
22490 (sync_new_add<mode>): Likewise.
22491 (sync_new_sub<mode>): Likewise.
22492 (sync_<optab><mode>): Likewise.
22493 (sync_old_<optab><mode>): Likewise.
22494 (sync_new_<optab><mode>): Likewise.
22495 (sync_nand<mode>): Likewise.
22496 (sync_old_nand<mode>): Likewise.
22497 (sync_new_nand<mode>): Likewise.
22498 (sync_lock_test_and_set<mode>): Likewise.
22499 (test_and_set_12): Likewise.
22500 (atomic_compare_and_swap<mode>): Likewise.
22501 (atomic_exchange<mode>_llsc): Likewise.
22502 (atomic_fetch_add<mode>_llsc): Likewise.
22503 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22504 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22505 (umips_save_restore_pattern_p): Likewise.
22506 (umips_load_store_pair_p): Likewise.
22507 (umips_output_load_store_pair): Likewise.
22508 (umips_movep_target_p): Likewise.
22509 (umips_12bit_offset_address_p): Likewise.
22510 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22511 (mips_base_mips16): Rename this...
22512 (mips_base_compression_flags): ...to this. Update all uses.
22513 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22514 (mips_mips16_decl_p): Delete.
22515 (mips_nomips16_decl_p): Delete.
33159866 22516 (mips_get_compress_on_flags): New function.
22c4c869
CM
22517 (mips_get_compress_off_flags): New function.
22518 (mips_get_compress_mode): New function.
22519 (mips_get_compress_on_name): New function.
22520 (mips_get_compress_off_name): New function.
22521 (mips_insert_attributes): Support multiple compression types.
22522 (mips_merge_decl_attributes): Likewise.
22523 (umips_12bit_offset_address_p): New function.
22524 (mips_start_function_definition): Emit .set micromips directive.
22525 (mips_call_may_need_jalx_p): New function.
22526 (mips_function_ok_for_sibcall): Add microMIPS support.
22527 (mips_print_operand_punctuation): Support short delay slots and
22528 compact jumps.
22529 (umips_swm_mask, umips_swm_encoding): New.
22530 (umips_build_save_restore): New function.
22531 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22532 (was_mips16_p): Remove.
22533 (old_compression_mode): New.
22534 (mips_set_compression_mode): New function.
22535 (mips_set_current_function): Add microMIPS support.
22536 (mips_option_override): Likewise.
22537 (umips_save_restore_pattern_p): New function.
22538 (umips_output_save_restore): New function.
22539 (umips_load_store_pair_p_1): New function.
22540 (umips_load_store_pair_p): New function.
22541 (umips_output_load_store_pair_1): New function.
22542 (umips_output_load_store_pair): New function.
22543 (umips_movep_target_p) New function.
22544 (mips_prepare_pch_save): Add microMIPS support.
22545 * config/mips/mips.h (TARGET_COMPRESSION): New.
22546 (TARGET_CPU_CPP_BUILTINS): Update macro
22547 to use new compression flags and to support microMIPS.
22548 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22549 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22550 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22551 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22552 (ASM_SPEC): Support mmicromips and mno-micromips.
22553 (M16STORE_REG_P): New macro.
22554 (MIPS_CALL): Support TARGET_MICROMIPS.
22555 (MICROMIPS_J): New macro.
22556 (mips_base_mips16): Rename this...
22557 (mips_base_compression_flags): ...to this.
22558 (UMIPS_12BIT_OFFSET_P): New macro.
22559 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22560 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
225612013-03-20 Richard Biener <rguenther@suse.de>
22562
22563 PR tree-optimization/56661
22564 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22565 the result does not have to be distinct.
22566
54714c68
RB
225672013-03-20 Richard Biener <rguenther@suse.de>
22568
22569 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22570 remap_gimple_op_r.
22571
cca1130d 225722013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22573 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22574
22575 PR rtl-optimization/56605
22576 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22577
2a930377
UB
225782013-03-20 Uros Bizjak <ubizjak@gmail.com>
22579
22580 PR bootstrap/56656
22581 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22582 that require movd instead of movq.
22583
d6d305fe
RB
225842013-03-20 Richard Biener <rguenther@suse.de>
22585
22586 * tree-ssa-structalias.c (struct variable_info): Add pointer
22587 to the first field of an aggregate with sub-vars. Make
22588 this and the pointer to the next subfield its ID.
22589 (vi_next): New function.
22590 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22591 storedanything_id, integer_id): Increment by one.
22592 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22593 get_call_clobber_vi): Adjust.
22594 (solution_set_expand): Simplify and speedup.
22595 (solution_set_add): Inline into ...
22596 (set_union_with_increment): ... this. Adjust accordingly.
22597 (do_sd_constraint): Likewise.
22598 (do_ds_constraint): Likewise.
22599 (do_complex_constraint): Simplify.
22600 (build_pred_graph): Adjust.
22601 (solve_graph): Likewise. Simplify and speedup.
22602 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22603 get_constraint_for_component_ref, get_constraint_for_1,
22604 first_vi_for_offset, first_or_preceding_vi_for_offset,
22605 create_function_info_for, create_variable_info_for_1,
22606 create_variable_info_for, intra_create_variable_infos): Adjust.
22607 (init_base_vars): Push NULL for ID zero.
22608 (compute_points_to_sets): Adjust.
22609
a271b42d
RB
226102013-03-20 Richard Biener <rguenther@suse.de>
22611
22612 * cfgloop.c (verify_loop_structure): Streamline and avoid
22613 ICEing on corrupt loop tree.
22614 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22615 loop tree.
22616
ebd65954
RB
226172013-03-20 Richard Biener <rguenther@suse.de>
22618
22619 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22620 check whether an SSA update is needed.
22621
4547b7ee
RS
226222013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22623
22624 * config/mips/constraints.md (T): Rename to...
22625 (Yf): ...this.
22626 (U): Rename to...
22627 (Yd): ...this.
22628 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22629 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22630
0b8cdc58
IB
226312013-03-19 Ian Bolton <ian.bolton@arm.com>
22632
22633 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22634 (*subsi3_carryin_uxtw): Likewise.
22635
5977a10d
IB
226362013-03-19 Ian Bolton <ian.bolton@arm.com>
22637
22638 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22639 (*rorsi3_insn_uxtw): Likewise.
22640
bd83ff2c
IB
226412013-03-19 Ian Bolton <ian.bolton@arm.com>
22642
22643 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22644 (*extrsi5_insn_uxtw): Likewise.
22645
ba65123c
RB
226462013-03-19 Richard Biener <rguenther@suse.de>
22647
22648 PR tree-optimization/56273
22649 * passes.c (init_optimization_passes): Move second VRP after DOM.
22650
2eac0476
UB
226512013-03-19 Uros Bizjak <ubizjak@gmail.com>
22652
22653 * config/i386/i386.md (*movti_internal): Merge from
22654 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22655 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22656 nox64 isa attributes.
22657
6e55eda7
RB
226582013-03-18 Richard Biener <rguenther@suse.de>
22659
22660 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22661 (unite): Likewise.
22662 (merge_node_constraints): Likewise.
22663 (build_succ_graph): Likewise.
22664 (valid_graph_edge): Inline into single caller.
22665 (unify_nodes): Likewise. Use bitmap_set_bit return value
22666 and cache varinfo.
22667 (scc_visit): Fix formatting and variable use.
22668 (do_sd_constraint): Use gcc_checking_assert.
22669 (do_ds_constraint): Likewise.
22670 (do_complex_constraint): Likewise.
22671 (condense_visit): Likewise. Cleanup.
22672 (dump_pred_graph): New function.
22673 (perform_var_substitution): Dump the pred-graph before
22674 variable substitution.
22675 (find_equivalent_node): Use gcc_checking_assert.
22676 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22677
4bdd44c4
RB
226782013-03-18 Richard Biener <rguenther@suse.de>
22679
22680 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22681 Remove cond_expr_stmt_list argument and do not gimplify the
22682 built expression.
22683 (vect_loop_versioning): Adjust.
22684 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22685 Cleanup to use less temporaries.
22686 (vect_create_data_ref_ptr): Cleanup.
22687
38c56a5b
JJ
226882013-03-18 Jakub Jelinek <jakub@redhat.com>
22689
22690 PR tree-optimization/56635
22691 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22692 require types_compatible_p types.
22693
20b2e6a0
NC
226942013-03-18 Nick Clifton <nickc@redhat.com>
22695
a6178a25
NC
22696 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22697 spurious backslash.
22698
20b2e6a0
NC
22699 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22700 Add missing line to comment describing function.
22701
92608d0e
RB
227022013-03-18 Richard Biener <rguenther@suse.de>
22703
22704 PR tree-optimization/56210
22705 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22706 Handle string / character search functions.
22707 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22708
31348d52
RB
227092013-03-18 Richard Biener <rguenther@suse.de>
22710
22711 PR middle-end/56483
22712 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22713 and implement properly.
22714 * gimple.h (gimple_cond_single_var_p): Remove.
22715
fcac74a1
RB
227162013-03-18 Richard Biener <rguenther@suse.de>
22717
22718 * tree-data-ref.h (find_data_references_in_loop): Declare.
22719 * tree-data-ref.c (get_references_in_stmt): Use a stack
22720 vector pre-allocated in the callers.
22721 (find_data_references_in_stmt): Adjust.
22722 (graphite_find_data_references_in_stmt): Likewise.
22723 (create_rdg_vertices): Likewise.
22724 (find_data_references_in_loop): Export.
22725 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22726 Compute dependences here...
22727 (vect_analyze_data_refs): ...not here. When we encounter
22728 a non-vectorizable data reference in basic-block vectorization
22729 truncate the data reference vector. Do not bother to
22730 fixup data-dependence information for gather loads.
22731 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22732 of data references, as reported.
22733
0d5a1b56
RB
227342013-03-18 Richard Biener <rguenther@suse.de>
22735
22736 PR tree-optimization/3713
22737 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22738 has_constants and expr.
22739 (stmt_has_constants): Properly valueize SSA names when deciding
22740 whether the stmt has constants.
22741
789c34e3
RB
227422013-03-18 Richard Biener <rguenther@suse.de>
22743
22744 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22745 whole function when there is nothing to do.
22746 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22747 * tree-vectorizer.c (vectorize_loops): Update virtual and
22748 loop-closed SSA once.
22749 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22750
076b4605
RB
227512013-03-18 Richard Biener <rguenther@suse.de>
22752
22753 PR middle-end/56113
22754 * domwalk.c (bb_postorder): New global static.
22755 (cmp_bb_postorder): New function.
22756 (walk_dominator_tree): Replace scheme imposing an order for
22757 visiting dominator sons by one sorting them at the time they
22758 are pushed on the stack.
22759
bdb01696
RB
227602013-03-18 Richard Biener <rguenther@suse.de>
22761
22762 PR tree-optimization/39326
22763 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
22764 (struct mem_ref): Replace mem member with ao_ref typed member.
22765 (MEM_ANALYZABLE): Adjust.
22766 (memref_eq): Likewise.
22767 (mem_ref_alloc): Likewise.
22768 (gather_mem_refs_stmt): Likewise.
22769 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
22770 (execute_sm_if_changed_flag_set): Adjust.
22771 (execute_sm): Likewise.
22772 (ref_always_accessed_p): Likewise.
22773 (refs_independent_p): Likewise.
22774 (can_sm_ref_p): Likewise.
22775
12d2dc5e
JJ
227762013-03-18 Jakub Jelinek <jakub@redhat.com>
22777
22778 PR c/56566
22779 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
22780 return 1 even for !unsignedp.
22781
286fb677
UB
227822013-03-17 Uros Bizjak <ubizjak@gmail.com>
22783
22784 * config/i386/i386.md (isa): Add x64 and nox64.
22785 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
22786 (*pushtf): Enable *roF alternative for x64 isa only.
22787 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
22788 mode attribute of integer alternatives to DImode for TARGET_64BIT.
22789 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
22790 (*movtf_internal): Merge from *movtf_internal_rex64 and
22791 *movtf_internal_sse. Use x64 and nox64 isa attributes.
22792 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
22793 nox64 isa attributes.
22794 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
22795 nox64 isa attributes.
22796 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
22797
88b97037
UB
227982013-03-17 Uros Bizjak <ubizjak@gmail.com>
22799
22800 * config/alpha/alpha.c (TARGET_LRA_P): New define.
22801
9f4f1735
JJ
228022013-03-17 Jakub Jelinek <jakub@redhat.com>
22803
22804 PR target/56640
22805 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
22806 class names. Remove trailing comma after "ALL_REGS".
22807
48f4a6fa
JH
228082013-03-16 Jan Hubicka <jh@suse.cz>
22809
22810 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
22811 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
22812 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
22813 of cgraph_get_create_node.
22814 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
22815
98e81123
JM
228162013-03-16 Jason Merrill <jason@redhat.com>
22817
22818 PR debug/49090
22819 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
22820 with DW_AT_default_value.
22821
8a298c04
JJ
228222013-03-16 Jakub Jelinek <jakub@redhat.com>
22823
22824 * BASE-VER: Set to 4.9.0.
22825
4323afa0
AK
228262013-03-14 Andi Kleen <ak@linux.intel.com>
22827
22828 PR target/56619
22829 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
22830 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
22831 Document _x* TSX intrinsics.
22832
b3c0d469
JJ
228332013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22834 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
22835
22836 * configure.ac: Add MicroBlaze TLS support detection.
22837 * configure: Regenerate.
88b97037
UB
22838 * config/microblaze/microblaze-protos.h
22839 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
22840 symbol_mentioned_p, label_mentioned_p): Add prototypes.
22841 * config/microblaze/microblaze.c (microblaze_address_type): Add
22842 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
22843 (microblaze_address_info): Add tls_reloc.
22844 (TARGET_HAVE_TLS): Define.
22845 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
22846 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
22847 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
22848 load_tls_operand, microblaze_call_tls_get_addr,
22849 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
22850 (microblaze_classify_unspec): Handle UNSPEC_TLS.
22851 (get_base_reg): Use microblaze_tls_symbol_p.
22852 (microblaze_classify_address): Handle TLS.
88b97037
UB
22853 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
22854 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
22855 (microblaze_legitimize_address): Handle TLS.
22856 (microblaze_address_insns): Handle ADDRESS_TLS.
22857 (pic_address_needs_scratch): Handle TLS.
22858 (print_operand_address): Handle TLS.
22859 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
22860 (microblaze_expand_move): Handle TLS.
88b97037
UB
22861 (microblaze_legitimate_constant_p): Check
22862 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
22863 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
22864 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
22865 (PIC_OFFSET_TABLE_REGNUM): Set.
22866 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
22867 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
22868 (addsi3, movsi_internal2, movdf_internal): Update constraints
22869 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
22870 (move_operand): Redefine as move_src_operand,
22871 check microblaze_tls_referenced_p.
8cc9a5a5 22872
d803a491
IB
228732013-03-14 Ian Bolton <ian.bolton@arm.com>
22874
22875 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
22876 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22877
a8504f22
IB
228782013-03-14 Ian Bolton <ian.bolton@arm.com>
22879
22880 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
22881 CC mode for AND.
22882
df2dfaea
JJ
228832013-03-14 Jakub Jelinek <jakub@redhat.com>
22884
fbd28bc3
JJ
22885 PR tree-optimization/53265
22886 * common.opt (Waggressive-loop-optimizations): New option.
22887 * tree-ssa-loop-niter.c: Include tree-pass.h.
22888 (do_warn_aggressive_loop_optimizations): New function.
22889 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
22890 if number_of_latch_executions returned constant.
22891 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
22892 early. If number_of_latch_executions returned constant, set
22893 nb_iterations_upper_bound back to it.
22894 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
22895 field.
22896 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
22897 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
22898
df2dfaea
JJ
22899 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
22900 (MULTILIB_OSDIRNAMES): Set.
22901 * genmultilib: If defaultosdirname doesn't start with :: , set
22902 defaultosdirname2 instead, clear it and emit two . multilib_raw
22903 entries instead of just one.
22904
ee0d2b68
KK
229052013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
22906
22907 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22908 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
22909 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22910 (SUBTARGET_OVERRIDE_OPTIONS): New.
22911
decc676e
OE
229122013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
22913
22914 PR target/49880
22915 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
22916 (musermode): Convert to Var(TARGET_USERMODE).
22917 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
22918 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
22919 * config/sh/sh.c (sh_option_override): Use
22920 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
22921 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
22922 condition.
22923 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
22924 TARGET_SH4.
22925 (udivsi3_i4_single, divsi3_i4_single): Use
22926 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
22927
f4b719c7
DK
229282013-03-13 Dave Korn <dave.korn.cygwin@....>
22929
22930 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
22931 default setting.
22932
c40eced0
RB
229332013-03-13 Richard Biener <rguenther@suse.de>
22934
22935 PR tree-optimization/56608
22936 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
22937 calls when vectorizing basic-blocks.
22938
1bfa5973
JJ
229392013-03-13 Jakub Jelinek <jakub@redhat.com>
22940
22941 PR plugins/45078
22942 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
22943 tm_file.
22944
6fcf5434
JJ
229452013-03-12 Jakub Jelinek <jakub@redhat.com>
22946
22947 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
22948
4f38fa8c
JH
229492013-03-11 Jan Hubicka <jh@suse.cz>
22950
22951 PR lto/56557
22952 * lto-streamer-out.c (output_symbol_p): Skip references from
22953 constructors of external variables.
22954
c5c5ba89
JH
229552013-03-11 Jan Hubicka <jh@suse.cz>
22956
22957 PR middle-end/56571
22958 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
22959 from pseudos.
22960 * emit-rtl.c (verify_rtx_sharing): Likewise.
22961 (copy_insn_1): Likewise.
22962 * rtl.c (copy_rtx): Likewise.
22963
c2a939b1
GJL
229642013-03-11 Georg-Johann Lay <avr@gjlay.de>
22965
22966 PR target/56591
22967 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
22968 output_operand_lossage message.
88b97037 22969
3c3279fb
RE
229702013-03-11 Richard Earnshaw <rearnsha@arm.com>
22971
22972 PR target/56470
22973 * arm.c (shift_op): Validate RTL pattern on the fly.
22974 (arm_print_operand, case 'S'): Don't use shift_operator to validate
22975 the RTL.
22976
aef5ef9d
JDA
229772013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22978
22979 PR target/56347
22980 * config/pa/pa.md (call_value): Check for calls to powf and direct to
22981 new call patterns that clobber %fr12.
22982 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
22983 split and postreload patterns.
22984 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
22985 registers %fr12 and %fr12R as call used.
22986
456610d3
SB
229872013-03-09 Steven Bosscher <steven@gcc.gnu.org>
22988
22989 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
22990 (canon_address, record_store, replace_read, check_mem_read_rtx,
22991 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
22992 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
22993 rest_of_handle_dse): Likewise.
22994
4b1baac8
RS
229952013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
22996
22997 PR middle-end/56524
22998 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
22999 Add base_optabs.
23000 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23001 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23002 (save_optabs_if_changed): Replace with...
23003 (init_tree_optimization_optabs): ...this.
23004 * optabs.c (save_optabs_if_changed): Rename to...
23005 (init_tree_optimization_optabs): ...this. Take the optimization node
23006 as argument. Do nothing if the base optabs are already correct.
23007 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23008 to recompute optabs.
23009 * function.h (function): Remove optabs field.
23010 * function.c (invoke_set_current_function_hook): Call
23011 init_tree_optimization_optabs. Use the result to initialize
23012 this_fn_optabs.
23013
b7a78683
AH
230142013-02-27 Aldy Hernandez <aldyh@redhat.com>
23015
23016 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23017 if GTMA_HAS_NO_INSTRUMENTATION.
23018 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23019 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23020 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23021 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23022 GTMA_HAS_NO_INSTRUMENTATION.
23023
6384c29b
JJ
230242013-03-08 Jakub Jelinek <jakub@redhat.com>
23025
23026 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23027 libasan_preinit.o.
23028
ecd4f20a
MP
230292013-03-08 Marek Polacek <polacek@redhat.com>
23030 Jakub Jelinek <jakub@redhat.com>
23031
23032 PR tree-optimization/56478
23033 * predict.c (is_comparison_with_loop_invariant_p): Change the
23034 type of loop_step to tree.
23035 (predict_loops): Adjust.
23036 (predict_iv_comparison): Perform the computations on double_ints.
23037
64366d35
RB
230382013-03-08 Richard Biener <rguenther@suse.de>
23039
23040 PR tree-optimization/56570
23041 * tree-cfg.c (verify_expr_location_1): Verify locations for
23042 DECL_DEBUG_EXPR.
23043 * tree-sra.c (create_access_replacement): Strip locations
23044 from DECL_DEBUG_EXPRs.
23045
a9d5a059
RB
230462013-03-08 Richard Biener <rguenther@suse.de>
23047
23048 * tree-inline.c (expand_call_inline): Do not associate
23049 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23050 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23051
b7aa4e9a
RB
230522013-03-08 Richard Biener <rguenther@suse.de>
23053
23054 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23055 or block changes with -Og. Fix for location / block encoding
23056 changes and PHI arguments with locations.
23057
c4c2f9fa
SB
230582013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23059
23060 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23061 for all counters.
23062 (struct output_info): Likewise.
23063 (register_overhead): Remove bad gcc_assert.
23064 (bitmap_find_bit): If there is only a single bitmap element, do not
23065 count a miss as a search.
23066 (print_statistics): Update for counter type changes.
23067 (dump_bitmap_statistics): Likewise. Print headers such that they
23068 are properly lined up with the printed counters.
23069
5bf6606a
JJ
230702013-03-07 Jakub Jelinek <jakub@redhat.com>
23071
23072 PR tree-optimization/56559
23073 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23074 check that it has only a single use.
23075
2c653d46
RB
230762013-03-07 Richard Biener <rguenther@suse.de>
23077
23078 * doc/invoke.texi (fwhole-program): Discourage use in combination
23079 with -flto.
23080
a72d8780
JJ
230812013-03-06 Jakub Jelinek <jakub@redhat.com>
23082
01a454df
JJ
23083 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23084
c1781047
JJ
23085 PR tree-optimization/56539
23086 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23087 instead of GSI_CONTINUE_LINKING as last argument to
23088 force_gimple_operand_gsi. Adjust function comment.
23089
9772c47a
JJ
23090 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23091 aarch64-cores.def.
23092
a72d8780
JJ
23093 PR middle-end/56548
23094 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23095 promoted mode, convert the result back to the original mode.
23096
fa5556de
RB
230972013-03-06 Richard Biener <rguenther@suse.de>
23098
23099 PR middle-end/56294
23100 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23101 (insert_updated_phi_nodes_compare_uids): New function.
23102 (update_ssa): Sort symbols_to_rename after UID before
23103 traversing it to insert PHI nodes.
23104
010403d1
RB
231052013-03-06 Richard Biener <rguenther@suse.de>
23106
23107 PR middle-end/50494
23108 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23109 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23110
23111 Revert
23112 2013-02-13 Richard Biener <rguenther@suse.de>
23113
23114 PR lto/50494
23115 * varasm.c (output_constant_def_1): Get the decl representing
23116 the constant as argument.
23117 (output_constant_def): Wrap output_constant_def_1.
23118 (make_decl_rtl): Use output_constant_def_1 with the decl
23119 representing the constant.
23120 (build_constant_desc): Optionally re-use a decl already
23121 representing the constant.
23122 (tree_output_constant_def): Adjust.
23123
3c27ce4c
JY
231242013-03-06 Joey Ye <joey.ye@arm.com>
23125
23126 PR lto/50293
23127 * gcc.c (convert_white_space): New function.
23128 (main): Handles white space in function name.
23129
8f6d1c86
OE
231302013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23131
23132 PR target/56529
23133 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23134 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23135 to SH_DIV_CALL_TABLE for TARGET_SH2.
23136 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23137 list.
23138 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23139 call-table options.
23140
798a209f
SA
231412013-03-05 Sterling Augustine <saugustine@google.com>
23142 Cary Coutant <ccoutant@google.com>
23143
23144 PR debug/55364
23145 * dwarf2out.c (resolve_addr): Don't call
23146 remove_loc_list_addr_table_entries a second time for the same
23147 expression.
23148
6cfa417f 231492013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23150
6cfa417f
JJ
23151 PR debug/56510
23152 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23153 (avoid_complex_debug_insns): New function.
23154 (expand_debug_locations): Call it.
23155
23156 PR rtl-optimization/56484
23157 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23158 lifetimes of hard registers on small register class machines.
23159
231602013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23161
23162 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23163 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23164 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23165 fast_interrupt.
23166 (microblaze_fast_interrupt_function_p): New function.
23167 (microblaze_is_interrupt_handler): Rename to
23168 microblaze_is_interrupt_variant and add fast_interrupt check.
23169 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23170 (save_restore_insns): Likewise.
23171 (compute_frame_size): Likewise.
23172 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23173 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23174 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23175 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23176 microblaze_is_interrupt_variant.
23177
731aefac
KT
231782013-03-05 Kai Tietz <ktietz@redhat.com>
23179
23180 * sdbout.c (sdbout_one_type): Switch to current function's section
23181 supporting cold/hot.
23182
a72d8780 231832013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23184
23185 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23186 -mxl-reorder.
23187
334e71e8
JJ
231882013-03-05 Jakub Jelinek <jakub@redhat.com>
23189
0b50e654
JJ
23190 PR middle-end/56461
23191 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23192 if VALGRIND_GET_VBITS is defined, temporarily make object
23193 memory all defined, and restore previous valgrind addressability
23194 and definability afterwards. Free this_object at the end.
23195
4ccf8f43
JJ
23196 PR middle-end/56461
23197 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23198 right before calling lra_create_live_ranges, also call it
23199 when clearing live_p. Only call lra_clear_live_ranges
23200 at the end if live_p.
23201
334e71e8
JJ
23202 PR middle-end/56461
23203 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23204
9ca966ca
RB
232052013-03-05 Richard Biener <rguenther@suse.de>
23206
23207 PR tree-optimization/56521
23208 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23209 value-id.
23210
d273b176
SB
232112013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23212
23213 PR c++/55135
23214 * except.h (remove_unreachable_eh_regions): New prototype.
23215 * except.c (remove_eh_handler_splicer): New function, split out
23216 of remove_eh_handler.
23217 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23218 warning about running it on many EH regions one at a time.
23219 (remove_unreachable_eh_regions_worker): New function, walk the
23220 EH tree in depth-first order and remove non-marked regions.
23221 (remove_unreachable_eh_regions): New function.
23222 * tree-eh.c (mark_reachable_handlers): New function, split out
23223 from remove_unreachable_handlers.
23224 (remove_unreachable_handlers): Use mark_reachable_handlers and
23225 remove_unreachable_eh_regions.
23226 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23227 and remove_unreachable_eh_regions.
23228
5e7f1aef
RB
232292013-03-05 Richard Biener <rguenther@suse.de>
23230
23231 PR middle-end/56525
23232 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23233 not freeing them until the end.
23234
f276b762
AK
232352013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23236
23237 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23238
12a43ab8
RB
232392013-03-05 Richard Biener <rguenther@suse.de>
23240
23241 PR tree-optimization/56270
23242 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23243 of loads after scheduling an SLP instance.
23244
93675444
JJ
232452013-03-05 Jakub Jelinek <jakub@redhat.com>
23246
db4138e3
JJ
23247 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23248 tic6x.exp.
23249 (check_gcc_parallelize): Run guality.exp as a separate job from
23250 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23251 struct-layout-1.exp with stackalign.exp.
23252
dd3d1ec0
JJ
23253 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23254
b8d381a3
JJ
23255 PR middle-end/56461
23256 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23257 load_index sbitmap even if some bit in it isn't set.
23258
b4f9786b
JJ
23259 PR middle-end/56461
23260 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23261 (discover_iteration_bound_by_body_walk): Change queues to
23262 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23263 spelling in comment. Call safe_push on queues[bound_index] directly.
23264 Release queues[queue_index] in every iteration unconditionally.
23265 Release bounds vector.
23266
93675444
JJ
23267 PR middle-end/56461
23268 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23269 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23270 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23271 inner_phis vector.
23272
3e492e9c
RB
232732013-03-05 Richard Biener <rguenther@suse.de>
23274
23275 PR lto/56515
23276 * tree-inline.c (remap_blocks_to_null): New function.
23277 (expand_call_inline): When expanding a call stmt without
23278 an associated block inline remap all callee blocks to NULL.
23279
a5d1569a
JJ
232802013-03-05 Jakub Jelinek <jakub@redhat.com>
23281
86efb5cd
JJ
23282 PR rtl-optimization/56494
23283 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23284 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23285 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23286
85f5dbea
JJ
23287 PR middle-end/56461
23288 * sel-sched-ir.c (free_sched_pools): Release
23289 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23290 if succs_info_pool.max_top isn't -1.
23291
a5d1569a
JJ
23292 PR bootstrap/56509
23293 * opts.c (opts_obstack, opts_concat): Moved to...
23294 * opts-common.c (opts_obstack, opts_concat): ... here.
23295
4432aa6c
JJ
232962013-03-04 Jakub Jelinek <jakub@redhat.com>
23297
23298 PR middle-end/56461
23299 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23300
f3a1fb91
MJ
233012013-03-04 Martin Jambor <mjambor@suse.cz>
23302
23303 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23304 all appropriate places.
23305
22110e6c
EB
233062013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23307
23308 PR tree-optimization/56424
23309 * ipa-split.c (split_function): Do not set the RSO flag if result is
23310 not by reference and its type is a register type.
23311
a72d8780 233122013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23313
88b97037 23314 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23315 (microblaze_legitimate_pic_operand): Likewise
88b97037 23316 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23317 new function microblaze_legitimate_pic_operand
23318 * config/microblaze/microblaze-protos.h
23319 (microblaze_legitimate_pic_operand): Declare.
23320
a72d8780 233212013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23322
a72d8780 23323 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23324 New predicate for supported rtx code types.
a72d8780 23325 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23326 call_insn_simple_operand predicate.
23327
541d9ac8
JJ
233282013-03-04 Jakub Jelinek <jakub@redhat.com>
23329
5eb010bc
JJ
23330 PR middle-end/56461
23331 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23332 partitions.ordered_remove.
23333
30862efc
JJ
23334 PR middle-end/56461
23335 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23336 vec_oprnds0.create (1) for modifier == NONE.
23337
8930f723
JJ
23338 PR middle-end/56461
23339 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23340 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23341 vec_oprnds1 right before pushing anything to it for
23342 scalar_shift_arg.
23343
541d9ac8
JJ
23344 PR middle-end/56461
23345 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23346 set nbbs to 0 instead of having separate code path.
23347 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23348 instead of false as last argument if returning NULL.
23349
7aa7f2e3
SL
233502013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23351
23352 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23353 the attribute is now called "target" instead of "option".
23354 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23355 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23356 attribute/pragma name for TARGET_OPTION_VALID_P and
23357 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23358 * doc/tm.texi: Regenerated.
23359
8930f723 233602013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23361
8930f723 23362 * config/microblaze/microblaze.c:
cb8a1637 23363 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23364 * config/microblaze/microblaze.h: Add -mxl-reorder to
23365 DRIVER_SELF_SPECS.
23366 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23367 instructions emitted if TARGET_REORDER.
88b97037
UB
23368 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23369 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23370 separately.
cb8a1637 23371
4dc1d68c
XDL
233722013-03-01 Xinliang David Li <davidxl@google.com>
23373
23374 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23375 walk length.
23376
689eaba3
JJ
233772013-03-01 Jakub Jelinek <jakub@redhat.com>
23378
9d676bf6
JJ
23379 PR middle-end/56461
23380 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23381 vector even when returning true. Fix up function comment formatting.
23382
caff7edf
JJ
23383 PR middle-end/56461
23384 * ira-build.c (ira_loop_nodes_count): New variable.
23385 (create_loop_tree_nodes): Initialize it.
23386 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23387
b6b9227d
JJ
23388 PR middle-end/56461
23389 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23390 method on dr_chain and result_chain.
23391 * tree-vect-stmts.c (vectorizable_store): Only call
23392 result_chain.create if j == 0.
23393
689eaba3
JJ
23394 PR middle-end/56461
23395 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23396 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23397 before overwriting it.
23398
40bf31ed
TB
233992013-03-01 Tobias Burnus <burnus@net-b.de>
23400
23401 * doc/extended.texi (C Extensions): Change order in @menu
23402 to match @node.
23403 (Other MIPS Built-in Functions): Move last MIPS entry before
23404 "picoChip Built-in Functions".
23405 (SH Built-in Functions): Move after RX Built-in Functions.
23406 * doc/gcc.texi (Introduction): Change order in @menu
23407 to match @node.
23408 * doc/md.texi (Constraints): Ditto.
23409 * gty.texi (Type Information): Ditto.
23410 (User-provided marking routines for template types): Make
23411 subsection.
23412 * doc/invoke.texi (AArch64 Options): Move before
23413 "Adapteva Epiphany Options".
23414
e664c61c
KS
234152013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23416 Jakub Jelinek <jakub@redhat.com>
23417
23418 PR sanitizer/56454
23419 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23420 no_address_safety_analysis attribute.
23421 * doc/extend.texi (no_address_safety_attribute): Rename to
23422 no_sanitize_address attribute, mention no_address_safety_analysis
23423 attribute as deprecated alias.
23424
37b5ec8f
JJ
234252013-02-28 Jakub Jelinek <jakub@redhat.com>
23426
23427 PR middle-end/56461
23428 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23429 type to vec<vec<tree> > *.
23430 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23431 to be vec<tree> instead of vec<tree> *, set vec_defs
23432 to vNULL and call vec_defs.create (number_of_vects), adjust other
23433 uses of vec_defs.
23434 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23435 vectorizable_condition): Adjust vect_get_slp_defs callers.
23436
ba96cdfb
JG
234372013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23438
23439 * config/aarch64/aarch64.c
23440 (aarch64_float_const_representable): Remove unused variable.
23441
6f549691
JG
234422013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23443
23444 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23445
af55e82d
JG
234462013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23447
23448 * config/aarch64/aarch64-builtins.c
23449 (aarch64_init_simd_builtins): Make static.
23450
1df3f464
JG
234512013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23452
23453 * config/aarch64/aarch64.c
23454 (aarch64_simd_make_constant): Make static.
23455
f8f42513
MJ
234562013-02-28 Martin Jambor <mjambor@suse.cz>
23457
23458 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23459 with no initialization to the RHS of debug statements.
23460
b48b3fc4
MJ
234612013-02-28 Martin Jambor <mjambor@suse.cz>
23462
23463 PR tree-optimization/56294
23464 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23465 Adjust dumping.
23466 (get_access_replacement): Do not call create_access_replacement.
23467 Assert a replacement exists.
23468 (get_repl_default_def_ssa_name): Create the replacement declaration
23469 itself.
23470
c3ae224c
RR
234712013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23472
23473 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23474 final_end_function.
23475
45fa0eef
MP
234762013-02-28 Marek Polacek <polacek@redhat.com>
23477
23478 PR rtl-optimization/56466
23479 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23480 if we're changing a loop.
23481 (peel_loops_completely): Likewise.
23482
502c067d
PC
234832013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23484
23485 PR c++/55813
23486 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23487
ff24afc8
GJL
234882013-02-28 Georg-Johann Lay <avr@gjlay.de>
23489
23490 PR target/56445
23491 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23492 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23493 INTX_FTYPE_FX, FX_FTYPE_INTX.
23494 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23495
c7b1fc1b
GJL
234962013-02-28 Georg-Johann Lay <avr@gjlay.de>
23497
23498 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23499 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23500 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23501 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23502 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23503 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23504 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23505 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23506 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23507 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23508 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23509 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23510 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23511 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23512 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23513 (avrxmega6): Increase max flash segments from 5 to 6.
23514 * config/avr/t-multilib: Regenerate.
23515 * config/avr/avr-tables.opt: Regenerate.
23516 * doc/avr-mmcu.texi: Regenerate.
23517
4a0e3cfe
GJL
235182013-02-28 Georg-Johann Lay <avr@gjlay.de>
23519
23520 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23521 (avr_device_to_arch): Rename to avr_device_to_ld.
23522 (avr_device_to_as): New prototype.
23523 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23524 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23525 * config/avr/driver-avr.c (avr_device_to_as): New.
23526 (avr_device_to_arch): Rename to avr_device_to_ld.
23527
97785e52
JJ
235282013-02-27 Jakub Jelinek <jakub@redhat.com>
23529
3f292312
JJ
23530 PR middle-end/56461
23531 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23532 method on dr_chain and result_chain.
23533
a344216b
JJ
23534 PR middle-end/56461
23535 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23536 pointer_set_destroy on not_executed_last_iteration.
23537
f121ad02 23538 PR middle-end/56461
88b97037 23539 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23540
307f83a3
JJ
23541 PR middle-end/56461
23542 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23543 FOR_EACH_DEFINED_FUNCTION when freeing state.
23544
e19624ee
JJ
23545 PR middle-end/56461
23546 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23547 pool_free.
23548 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23549 overwriting it.
23550
90e709fd
JJ
23551 PR middle-end/56461
23552 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23553 known_aggs[i].items and release known_aggs vector.
23554
97785e52
JJ
23555 PR middle-end/56461
23556 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23557
235582013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23559
97785e52
JJ
23560 * config/microblaze/microblaze.c (microblaze_emit_compare):
23561 Use xor for EQ/NE comparisions.
23562 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23563 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23564
6fa5e0ed
JJ
235652013-02-27 Jakub Jelinek <jakub@redhat.com>
23566
23567 PR middle-end/56461
23568 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23569 vector.
23570 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23571 vec_safe_push, always update *slot.
23572 (redirect_edge_var_map_clear): Use vec_free.
23573 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23574 (free_var_map_entry): Use vec_free.
23575 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23576 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23577
436a956a
AB
235782013-02-27 Andrey Belevantsev <abel@ispras.ru>
23579
23580 PR middle-end/45472
436a956a
AB
23581 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23582 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23583 Reorder tests for speculativeness in the logical and operator.
23584
f5c2caca
JJ
235852013-02-27 Jakub Jelinek <jakub@redhat.com>
23586
0fcb564b
JJ
23587 * incpath.c (add_standard_paths): Use reconcat instead of concat
23588 where appropriate and avoid leaking memory.
23589
dc357798
JJ
23590 * opts.h: Include obstack.h.
23591 (opts_concat): New prototype.
23592 (opts_obstack): New declaration.
23593 * opts.c (opts_concat): New function.
23594 (opts_obstack): New variable.
23595 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23596 (finish_options): Use opts_concat instead of concat
23597 and XOBNEWVEC instead of XNEWVEC.
23598 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23599 generate_option): Likewise.
23600 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23601 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23602
f5c2caca
JJ
23603 PR target/56455
23604 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23605 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23606
d0163673
JJ
236072013-02-26 Jakub Jelinek <jakub@redhat.com>
23608
23609 PR middle-end/56461
23610 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23611
b5ad2b8e
JR
236122013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23613
23614 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23615 (arm_block_move_unaligned_straight): Likewise.
23616 (arm_adjust_block_mem): Likewise.
23617
9b639e2c
JR
236182013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23619
23620 PR target/48901
23621 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23622 temp, cond and label.
23623 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23624
e13a0ccb
JR
23625 PR target/52500
23626 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23627 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23628
fbe4f171
JR
23629 PR target/52501
23630 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23631 of prologue/epilogue functions.
23632
ae006543
JR
23633 PR target/52550
23634 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23635 Remove unused variable cfa_offset.
23636 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23637
c81369fa
JR
23638 PR target/54639
23639 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23640 type promotion to unsigned.
23641
f8a8fea7
JR
23642 PR target/54640
23643 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23644 for HOST_WIDE_INT of 32 bit / same size as int.
23645 (arm_block_move_unaligned_straight): Likewise.
23646 (arm_adjust_block_mem): Likewise.
23647
f8be5169
JR
23648 PR target/54662
23649 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23650 ALL_CFLAGS.
23651
f1ad3354
MP
236522013-02-26 Marek Polacek <polacek@redhat.com>
23653
23654 PR tree-optimization/56426
88b97037 23655 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23656
a6af0f42
RB
236572013-02-26 Richard Biener <rguenther@suse.de>
23658
23659 PR target/56444
23660 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23661 unused variable loops.
23662
aca43c6c
JJ
236632013-02-26 Jakub Jelinek <jakub@redhat.com>
23664
cecbe5d9
JJ
23665 PR tree-optimization/56448
23666 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23667 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23668 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23669 later operands of the references, or even first operand for
23670 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23671
aca43c6c
JJ
23672 PR tree-optimization/56443
23673 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23674 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23675 to type_for_mode langhook.
23676
53e2e141
MT
236772013-02-25 Matt Turner <mattst88@gmail.com>
23678
23679 * doc/invoke.texi: Document r4700.
23680
259ee451
RB
236812013-02-25 Richard Biener <rguenther@suse.de>
23682
23683 PR tree-optimization/56175
23684 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23685 split out from ...
23686 (simplify_bitwise_binary): ... here. Also guard the conversion
23687 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23688
6d65e8f1
CM
236892013-02-25 Catherine Moore <clm@codesourcery.com>
23690
23691 Revert:
23692 2013-02-24 Catherine Moore <clm@codesourcery.com>
23693 Maciej W. Rozycki <macro@codesourcery.com>
23694 Tom de Vries <tom@codesourcery.com>
a72d8780 23695 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
23696 Iain Sandoe <iain@codesourcery.com>
23697 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23698 Chao-ying Fu <fu@mips.com>
88b97037 23699
6d65e8f1 23700 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23701 Document new function attributes.
6d65e8f1
CM
23702 * doc/invoke.texi (minterlink-compressed, mmicromips,
23703 m14k, m14ke, m14kec): Document new options.
23704 (minterlink-mips16): Update documentation.
23705 * doc/md.texi (ZC, ZD): Document new constraints.
23706 * configure.ac (gcc_cv_as_micromips): Check if linker
23707 supports the .set micromips directive.
23708 * configure: Regenerate.
23709 * config.in: Regenerate.
23710 * config/mips/mips-tables.opt: Regenerate.
23711 * config/mips/micromips.md: New file.
23712 * constraints.md (ZC, AD): New constraints.
23713 * config/mips/predicates.md (movep_src_register): New predicate.
23714 (movep_src_operand): New predicate.
23715 (non_volatile_mem_operand): New predicate.
23716 * config/mips/mips.md (multimem): New type.
23717 (length): Differentiate between 17-bit and 18-bit branch offsets.
23718 (MOVEP1, MOVEP2): New mode iterator.
23719 (mov_<load>l): Use ZC constraint.
23720 (mov_<load>r): Likewise.
23721 (mov_<store>l): Likewise.
23722 (mov_<store>r): Likewise.
23723 (*branch_equality<mode>_inverted): Add microMIPS support.
23724 (*branch_equality<mode>): Likewise.
23725 (*jump_absolute): Likewise.
23726 (indirect_jump_<mode>): Likewise.
23727 (tablejump_<mode>): Likewise.
23728 (<optab>_internal): Likewise.
23729 (sibcall_internal): Likewise.
23730 (sibcall_value_internal): Likewise.
23731 (prefetch): Use constraint ZD.
23732 * config/mips/mips.opt (minterlink-compressed): New option.
23733 (minterlink-mips16): Now an alias for minterlink-compressed.
23734 (mmicromips): New option.
23735 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23736 (compare_and_swap_12): Likewise.
23737 (sync_add<mode>): Likewise.
23738 (sync_<optab>_12): Likewise.
23739 (sync_old_<optab>_12): Likewise.
23740 (sync_new_<optab>_12): Likewise.
23741 (sync_nand_12): Likewise.
23742 (sync_old_nand_12): Likewise.
23743 (sync_new_nand_12): Likewise.
23744 (sync_sub<mode>): Likewise.
23745 (sync_old_add<mode>): Likewise.
23746 (sync_old_sub<mode>): Likewise.
23747 (sync_new_add<mode>): Likewise.
23748 (sync_new_sub<mode>): Likewise.
23749 (sync_<optab><mode>): Likewise.
23750 (sync_old_<optab><mode>): Likewise.
23751 (sync_new_<optab><mode>): Likewise.
23752 (sync_nand<mode>): Likewise.
23753 (sync_old_nand<mode>): Likewise.
23754 (sync_new_nand<mode>): Likewise.
23755 (sync_lock_test_and_set<mode>): Likewise.
23756 (test_and_set_12): Likewise.
23757 (atomic_compare_and_swap<mode>): Likewise.
23758 (atomic_exchange<mode>_llsc): Likewise.
23759 (atomic_fetch_add<mode>_llsc): Likewise.
23760 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23761 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23762 (umips_save_restore_pattern_p): Likewise.
23763 (umips_load_store_pair_p): Likewise.
23764 (umips_output_load_store_pair): Likewise.
23765 (umips_movep_target_p): Likewise.
23766 (umips_12bit_offset_address_p): Likewise.
23767 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23768 (mips_base_mips16): Rename this...
23769 (mips_base_compression_flags): ...to this. Update all uses.
23770 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23771 (mips_mips16_decl_p): Delete.
23772 (mips_nomips16_decl_p): Delete.
23773 (mips_get_compress_on_flags): New function.
23774 (mips_get_compress_off_flags): New function.
23775 (mips_get_compress_mode): New function.
23776 (mips_get_compress_on_name): New function.
23777 (mips_get_compress_off_name): New function.
23778 (mips_insert_attributes): Support multiple compression types.
23779 (mips_merge_decl_attributes): Likewise.
23780 (umips_12bit_offset_address_p): New function.
23781 (mips_start_function_definition): Emit .set micromips directive.
23782 (mips_call_may_need_jalx_p): New function.
23783 (mips_function_ok_for_sibcall): Add microMIPS support.
23784 (mips_print_operand_punctuation): Support short delay slots and
23785 compact jumps.
23786 (umips_swm_mask, umips_swm_encoding): New.
23787 (umips_build_save_restore): New function.
23788 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23789 (was_mips16_p): Remove.
23790 (old_compression_mode): New.
23791 (mips_set_compression_mode): New function.
23792 (mips_set_current_function): Add microMIPS support.
23793 (mips_option_override): Likewise.
23794 (umips_save_restore_pattern_p): New function.
23795 (umips_output_save_restore): New function.
23796 (umips_load_store_pair_p_1): New function.
23797 (umips_load_store_pair_p): New function.
23798 (umips_output_load_store_pair_1): New function.
23799 (umips_output_load_store_pair): New function.
23800 (umips_movep_target_p) New function.
23801 (mips_prepare_pch_save): Add microMIPS support.
23802 * config/mips/mips.h (TARGET_COMPRESSION): New.
23803 (TARGET_CPU_CPP_BUILTINS): Update macro
23804 to use new compression flags and to support microMIPS.
23805 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23806 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23807 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23808 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23809 (ASM_SPEC): Support mmicromips and mno-micromips.
23810 (M16STORE_REG_P): New macro.
23811 (MIPS_CALL): Support TARGET_MICROMIPS.
23812 (MICROMIPS_J): New macro.
23813 (mips_base_mips16): Rename this...
23814 (mips_base_compression_flags): ...to this.
23815 (UMIPS_12BIT_OFFSET_P): New macro.
23816 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23817 (MULTILIB_DIRNAMES): Likewise.
23818
5e5df392
TV
238192013-02-25 Tom de Vries <tom@codesourcery.com>
23820
23821 PR rtl-optimization/56131
23822 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
23823 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
23824 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
23825
3fdb53c1
TB
238262013-02-25 Tobias Burnus <burnus@net-b.de>
23827
23828 * doc/invoke.texi (-fsanitize=): Move from optimization
23829 to debugging options.
23830
ed358aea
AB
238312013-02-25 Andrey Belevantsev <abel@ispras.ru>
23832
23833 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
23834
f45e9053
AB
238352013-02-25 Andrey Belevantsev <abel@ispras.ru>
23836 Alexander Monakov <amonakov@ispras.ru>
23837
23838 PR middle-end/56077
23839 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
23840 flush pending lists also on non-jumps. Adjust comment.
23841
6941b508
CM
238422013-02-24 Catherine Moore <clm@codesourcery.com>
23843 Maciej W. Rozycki <macro@codesourcery.com>
23844 Tom de Vries <tom@codesourcery.com>
a72d8780 23845 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
23846 Iain Sandoe <iain@codesourcery.com>
23847 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23848 Chao-ying Fu <fu@mips.com>
6941b508
CM
23849
23850 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23851 Document new function attributes.
6941b508
CM
23852 * doc/invoke.texi (minterlink-compressed, mmicromips,
23853 m14k, m14ke, m14kec): Document new options.
23854 (minterlink-mips16): Update documentation.
23855 * doc/md.texi (ZC, ZD): Document new constraints.
23856 * configure.ac (gcc_cv_as_micromips): Check if linker
23857 supports the .set micromips directive.
23858 * configure: Regenerate.
23859 * config.in: Regenerate.
23860 * config/mips/mips-tables.opt: Regenerate.
23861 * config/mips/micromips.md: New file.
23862 * constraints.md (ZC, AD): New constraints.
23863 * config/mips/predicates.md (movep_src_register): New predicate.
23864 (movep_src_operand): New predicate.
23865 (non_volatile_mem_operand): New predicate.
23866 * config/mips/mips.md (multimem): New type.
23867 (length): Differentiate between 17-bit and 18-bit branch offsets.
23868 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 23869 (mov_<load>l): Use ZC constraint.
6941b508
CM
23870 (mov_<load>r): Likewise.
23871 (mov_<store>l): Likewise.
23872 (mov_<store>r): Likewise.
23873 (*branch_equality<mode>_inverted): Add microMIPS support.
23874 (*branch_equality<mode>): Likewise.
23875 (*jump_absolute): Likewise.
23876 (indirect_jump_<mode>): Likewise.
23877 (tablejump_<mode>): Likewise.
23878 (<optab>_internal): Likewise.
23879 (sibcall_internal): Likewise.
23880 (sibcall_value_internal): Likewise.
23881 (prefetch): Use constraint ZD.
23882 * config/mips/mips.opt (minterlink-compressed): New option.
23883 (minterlink-mips16): Now an alias for minterlink-compressed.
23884 (mmicromips): New option.
23885 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23886 (compare_and_swap_12): Likewise.
23887 (sync_add<mode>): Likewise.
23888 (sync_<optab>_12): Likewise.
23889 (sync_old_<optab>_12): Likewise.
23890 (sync_new_<optab>_12): Likewise.
23891 (sync_nand_12): Likewise.
23892 (sync_old_nand_12): Likewise.
23893 (sync_new_nand_12): Likewise.
23894 (sync_sub<mode>): Likewise.
23895 (sync_old_add<mode>): Likewise.
23896 (sync_old_sub<mode>): Likewise.
23897 (sync_new_add<mode>): Likewise.
23898 (sync_new_sub<mode>): Likewise.
23899 (sync_<optab><mode>): Likewise.
23900 (sync_old_<optab><mode>): Likewise.
23901 (sync_new_<optab><mode>): Likewise.
23902 (sync_nand<mode>): Likewise.
23903 (sync_old_nand<mode>): Likewise.
23904 (sync_new_nand<mode>): Likewise.
23905 (sync_lock_test_and_set<mode>): Likewise.
23906 (test_and_set_12): Likewise.
23907 (atomic_compare_and_swap<mode>): Likewise.
23908 (atomic_exchange<mode>_llsc): Likewise.
23909 (atomic_fetch_add<mode>_llsc): Likewise.
23910 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23911 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23912 (umips_save_restore_pattern_p): Likewise.
23913 (umips_load_store_pair_p): Likewise.
23914 (umips_output_load_store_pair): Likewise.
23915 (umips_movep_target_p): Likewise.
23916 (umips_12bit_offset_address_p): Likewise.
23917 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23918 (mips_base_mips16): Rename this...
23919 (mips_base_compression_flags): ...to this. Update all uses.
23920 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23921 (mips_mips16_decl_p): Delete.
23922 (mips_nomips16_decl_p): Delete.
3fdb53c1 23923 (mips_get_compress_on_flags): New function.
6941b508
CM
23924 (mips_get_compress_off_flags): New function.
23925 (mips_get_compress_mode): New function.
23926 (mips_get_compress_on_name): New function.
23927 (mips_get_compress_off_name): New function.
23928 (mips_insert_attributes): Support multiple compression types.
23929 (mips_merge_decl_attributes): Likewise.
23930 (umips_12bit_offset_address_p): New function.
23931 (mips_start_function_definition): Emit .set micromips directive.
23932 (mips_call_may_need_jalx_p): New function.
23933 (mips_function_ok_for_sibcall): Add microMIPS support.
23934 (mips_print_operand_punctuation): Support short delay slots and
23935 compact jumps.
23936 (umips_swm_mask, umips_swm_encoding): New.
23937 (umips_build_save_restore): New function.
23938 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23939 (was_mips16_p): Remove.
23940 (old_compression_mode): New.
23941 (mips_set_compression_mode): New function.
23942 (mips_set_current_function): Add microMIPS support.
23943 (mips_option_override): Likewise.
23944 (umips_save_restore_pattern_p): New function.
23945 (umips_output_save_restore): New function.
23946 (umips_load_store_pair_p_1): New function.
23947 (umips_load_store_pair_p): New function.
23948 (umips_output_load_store_pair_1): New function.
23949 (umips_output_load_store_pair): New function.
23950 (umips_movep_target_p) New function.
23951 (mips_prepare_pch_save): Add microMIPS support.
23952 * config/mips/mips.h (TARGET_COMPRESSION): New.
23953 (TARGET_CPU_CPP_BUILTINS): Update macro
23954 to use new compression flags and to support microMIPS.
23955 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23956 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23957 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23958 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23959 (ASM_SPEC): Support mmicromips and mno-micromips.
23960 (M16STORE_REG_P): New macro.
23961 (MIPS_CALL): Support TARGET_MICROMIPS.
23962 (MICROMIPS_J): New macro.
23963 (mips_base_mips16): Rename this...
23964 (mips_base_compression_flags): ...to this.
23965 (UMIPS_12BIT_OFFSET_P): New macro.
23966 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23967 (MULTILIB_DIRNAMES): Likewise.
23968
cdebbc6d
JJ
239692013-02-24 Jakub Jelinek <jakub@redhat.com>
23970
23971 PR target/52555
23972 * target-globals.c (save_target_globals): For init_reg_sets and
23973 target_reinit remporarily set this_fn_optabs to this_target_optabs.
23974
18c63565
JG
239752013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
23976
23977 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
23978 * config/aarch64/t-aarch64
23979 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
23980
2194f7a2
VM
239812013-02-22 Vladimir Makarov <vmakarov@redhat.com>
23982
23983 PR inline-asm/56148
23984 * lra-constraints.c (process_alt_operands): Reload operand
23985 conflicting with earlier clobber only if no more other conflicting
23986 operands.
23987
7d613735
JJ
239882013-02-22 Jakub Jelinek <jakub@redhat.com>
23989
23990 PR sanitizer/56393
23991 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
23992 if not linking a shared library.
23993
ac8d93a7
SL
239942013-02-22 Seth LaForge <sethml@google.com>
23995
23996 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
23997
e0237780
GY
239982013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
23999
3fdb53c1
TB
24000 * config/arm/arm.md (split for extendsidi): Update condition.
24001 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24002 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24003 (qhs_zextenddi_cstr): Likewise.
e0237780 24004
d7fde18c
JJ
240052013-02-21 Jakub Jelinek <jakub@redhat.com>
24006
be63b77d
JJ
24007 PR middle-end/56420
24008 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24009 avoid signed wrapping.
24010 (expand_mult): Handle properly multiplication by
24011 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24012 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24013 in the compiler if coeff is HOST_WIDE_INT_MIN.
24014 (expand_divmod): Don't make ext_op1 static, change it's type to
24015 uhwi. Avoid undefined behavior in -INTVAL (op1).
24016
d7fde18c
JJ
24017 PR rtl-optimization/50339
24018 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24019 field.
24020 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24021 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24022 into splitting_ashiftrt field.
24023 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24024 ASHIFTRT.
24025 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24026 choices.
24027
6aad4455
AH
240282013-02-20 Aldy Hernandez <aldyh@redhat.com>
24029
24030 PR middle-end/56108
24031 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24032 are sure to go irrevocable.
24033
38fe784d
HPN
240342013-02-21 Hans-Peter Nilsson <hp@axis.com>
24035
24036 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24037 scalars are valid operands.
24038
0fd44da3
MJ
240392013-02-21 Martin Jambor <mjambor@suse.cz>
24040
24041 PR tree-optimization/56310
24042 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24043 only matching indices and non-negative final offsets.
24044 (intersect_aggregates_with_edge): Pass src_idx to
24045 agg_replacements_to_vector. Pass src_idx insstead of index to
24046 intersect_with_agg_replacements.
24047
7a92038b
MJ
240482013-02-21 Martin Jambor <mjambor@suse.cz>
24049
24050 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24051 instead of hard-wired defaults.
24052
c0da9c37
MR
240532013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24054
24055 * doc/invoke.texi (MIPS Options): Update documentation of the
24056 floating-point multiply-accumulate instruction restrictions.
24057
d247ea0c 240582013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24059
24060 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24061 asan_shadow_offset on x86_64 linux.
24062
22deefcb
RB
240632013-02-21 Richard Biener <rguenther@suse.de>
24064
24065 PR tree-optimization/56415
24066 Revert
24067 2013-02-11 Richard Biener <rguenther@suse.de>
24068
24069 PR tree-optimization/56273
24070 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24071 first VRP run.
24072
7bcc6e75
JJ
240732013-02-21 Jakub Jelinek <jakub@redhat.com>
24074
a0ad148f
JJ
24075 PR bootstrap/56258
24076 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24077 instead of @itemx.
24078
7bcc6e75
JJ
24079 PR inline-asm/56405
24080 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24081 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24082
a0a7b611
JH
240832013-02-20 Jan Hubicka <jh@suse.cz>
24084
24085 PR tree-optimization/56265
88b97037
UB
24086 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24087 when target is referenced for first time.
a0a7b611 24088
c0e50f72
RB
240892013-02-20 Richard Biener <rguenther@suse.de>
24090
24091 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24092 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24093 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24094 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24095 not return anything.
24096 (rename_ssa_copies): Do not remove unused locals.
24097 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24098 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24099 * passes.c (execute_function_todo): Do not schedule unused locals
24100 removal if cleanup_tree_cfg did something.
24101 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24102 about the number of removed locals.
24103
a52ca739
RB
241042013-02-20 Richard Biener <rguenther@suse.de>
24105
24106 PR tree-optimization/56398
88b97037 24107 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24108
ec9c9d1b
MJ
241092013-02-20 Martin Jambor <mjambor@suse.cz>
24110
24111 PR tree-optimization/55334
24112 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24113 restricted pointers to arrays.
24114
e91c8ed6 241152013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24116 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24117
24118 PR tree-optimization/56396
24119 * tree-ssa-ccp.c (n_const_val): New static variable.
24120 (get_value): Return NULL for SSA names we don't have a lattice
24121 entry for.
24122 (ccp_initialize): Initialize n_const_val.
24123 * tree-ssa-copy.c (n_copy_of): New static variable.
24124 (init_copy_prop): Initialize n_copy_of.
24125 (get_value): Return NULL_TREE for SSA names we don't have a
24126 lattice entry for.
24127
3d916479
MJ
241282013-02-20 Martin Jambor <mjambor@suse.cz>
24129
24130 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24131
71a86758
RB
241322013-02-20 Richard Biener <rguenther@suse.de>
24133
24134 * genpreds.c (write_lookup_constraint): Do not compare first
24135 letter of the constraint again.
24136
79836a12
RB
241372013-02-20 Richard Biener <rguenther@suse.de>
24138
24139 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24140 and ceil_log2.
24141 (get_use_iv_cost): Terminate hashtable walk when coming across
24142 an empty entry.
24143
bbe4fb2c
IZ
241442013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24145
24146 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24147 reassociation for avx2 targets.
24148
a72d8780 241492012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24150
c77f83d5
EI
24151 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24152 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24153 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24154 version and TARGET_PATTERN_COMPARE check
24155 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24156
a72d8780 241572012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24158
a72d8780 24159 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24160 function before branching.
24161
242387fa
AB
241622012-02-19 Andrey Belevantsev <abel@ispras.ru>
24163
24164 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24165 DUMP_INSN_RTX_UID.
24166 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24167
b4979ab9
AB
241682012-02-19 Andrey Belevantsev <abel@ispras.ru>
24169
24170 PR middle-end/55889
b4979ab9
AB
24171 * sel-sched.c: Include ira.h.
24172 (implicit_clobber_conflict_p): New function.
24173 (moveup_expr): Use it.
88b97037 24174 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24175
24d63016
RB
241762013-02-19 Richard Biener <rguenther@suse.de>
24177
24178 PR tree-optimization/56384
24179 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24180 (vn_hash_type): Split out from ...
24181 (vn_hash_constant_with_type): ... here.
24182 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24183 (vn_phi_eq): Compare types from vn_phi_s structure.
24184 (vn_phi_lookup): Populate vn_phi_s type.
24185 (vn_phi_insert): Likewise.
24186
a475fd3d
JJ
241872013-02-19 Jakub Jelinek <jakub@redhat.com>
24188
47cc28f5
JJ
24189 PR tree-optimization/56350
24190 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24191 if haven't found reduction or nested cycle operand, rather than
24192 asserting we must find it.
24193
a475fd3d
JJ
24194 PR tree-optimization/56381
24195 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24196 to fold_build3.
24197
241982013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24199 Jakub Jelinek <jakub@redhat.com>
24200
24201 PR target/52555
24202 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24203 (swap_optab_enable): Same.
24204 (init_all_optabs): Use argument instead of global.
88b97037 24205 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24206 * expr.h (init_all_optabs): Add argument to prototype.
24207 (TREE_OPTIMIZATION_OPTABS): New.
24208 (save_optabs_if_changed): Protoize.
24209 * optabs.h: Declare this_fn_optabs.
24210 * optabs.c (save_optabs_if_changed): New.
24211 Declare this_fn_optabs.
24212 (init_optabs): Add argument to init_all_optabs() call.
24213 * function.c (invoke_set_current_function_hook): Handle per
24214 function optabs.
24215 * function.h (struct function): New field optabs.
24216 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24217 optimization_current_node has changed.
24218 * target-globals.h (save_target_globals_default_opts): Protoize.
24219 * target-globals.c (save_target_globals_default_opts): New.
24220
3f587ca3
JDA
242212013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24222
24223 PR target/56347
24224 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24225 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24226
24227 PR target/56214
24228 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24229 and HImode, require all displacements to be an integer multiple of
24230 their mode size.
ceaca33e
JDA
24231 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24232 only allow QImode and HImode when reload is in progress and strict is
24233 true. Likewise for symbolic addresses. Use base14_operand to check
24234 displacements in REG+BASE addresses.
24235
fe0b4796
RB
242362013-02-18 Richard Biener <rguenther@suse.de>
24237
24238 PR tree-optimization/56366
24239 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24240 handle sign-conversion of outer-loop initial induction value.
24241
6aaf596b
RB
242422013-02-18 Richard Biener <rguenther@suse.de>
24243
73db8ff1 24244 PR middle-end/56349
6aaf596b
RB
24245 * cfghooks.c (merge_blocks): If we merge a latch into another
24246 block adjust references to it.
24247 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24248 (verify_loop_structure): Verify that a recorded latch is in fact
24249 a latch.
24250
5e97dfb6
RB
242512013-02-18 Richard Biener <rguenther@suse.de>
24252
24253 PR tree-optimization/56321
24254 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24255 order SSA name release and virtual operand unlinking.
24256
825527e8
EI
242572013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24258
24259 * config/microblaze/microblaze.md (save_stack_block): Define.
24260 (restore_stack_block): Likewise.
24261
debd11d9
EI
242622013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24263
24264 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24265 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24266 * config/microblaze/microblaze.c (microblaze_option_override):
24267 Bail out early for PIC modes when target does not support PIC.
24268
8ec77be0
EI
242692013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24270
88b97037 24271 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24272 Replace with a microblaze version.
24273 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24274 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24275 microblaze.
24276
b41288b3
JJ
242772013-02-16 Jakub Jelinek <jakub@redhat.com>
24278 Dodji Seketeli <dodji@redhat.com>
24279
24280 PR asan/56330
88b97037 24281 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24282 (instrument_mem_region_access): Do not forget to always put
24283 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24284 0) statement, even for cases where either 'base' or 'base + len'
24285 are not instrumented -- because they have been previously
24286 instrumented. Simplify the logic by putting all the statements
24287 instrument 'base + len' inside a sequence, and then insert that
24288 sequence right before the current insertion point. Then, to
24289 instrument 'base + len', just get an iterator on that statement.
24290 And do not forget to update the pointer to iterator the function
24291 received as argument.
24292
47918951
VM
242932013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24294
24295 PR rtl-optimization/56348
24296 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24297
3fb7c699
SB
242982013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24299
24300 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24301 (clean_graph_dump_file): Pass base to start_graph_dump.
24302
576fe41a
RH
243032013-02-14 Richard Henderson <rth@redhat.com>
24304
24305 PR target/55941
24306 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24307
bb3accfa
SB
243082013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24309
24310 * collect2-aix.h: Define F_LOADONLY.
24311
03143140
RB
243122013-02-14 Richard Biener <rguenther@suse.de>
24313
24314 PR lto/50494
24315 * varasm.c (output_constant_def_1): Get the decl representing
24316 the constant as argument.
24317 (output_constant_def): Wrap output_constant_def_1.
24318 (make_decl_rtl): Use output_constant_def_1 with the decl
24319 representing the constant.
24320 (build_constant_desc): Optionally re-use a decl already
24321 representing the constant.
24322 (tree_output_constant_def): Adjust.
24323
8fb06726
DS
243242013-02-14 Dodji Seketeli <dodji@redhat.com>
24325
24326 Fix an asan crash
24327 * asan.c (instrument_builtin_call): Really put the length of the
24328 second source argument into src1_len.
24329
c4bfe8bf
JJ
243302013-02-13 Jakub Jelinek <jakub@redhat.com>
24331
24332 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24333 argument. If it is false, don't create edge from then_bb to
24334 fallthru_bb.
24335 (insert_if_then_before_iter): Pass true to it.
24336 (build_check_stmt): Pass false to it.
24337 (transform_statements): Flush hash table only on extended basic
24338 block boundaries, rather than at the beginning of every bb.
24339 Don't flush hash table on nonfreeing_call_p calls.
24340 * tree-flow.h (nonfreeing_call_p): New prototype.
24341 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24342
7afe2801
DM
243432013-02-13 David S. Miller <davem@davemloft.net>
24344
24345 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24346
70cc3288
VM
243472013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24348
24349 PR target/56184
24350 * ira.c (max_regno_before_ira): Move from ...
24351 (ira): ... here.
24352 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24353 vec_safe_length.
24354
6422242b
JJ
243552013-02-13 Jakub Jelinek <jakub@redhat.com>
24356
24357 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24358
976a81ee
RB
243592013-02-13 Richard Biener <rguenther@suse.de>
24360
24361 PR lto/56295
24362 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24363 globals in MEM_REFs.
24364
c1874a87
RB
243652013-02-13 Richard Biener <rguenther@suse.de>
24366
24367 * loop-init.c (loop_optimizer_init): Clear loop state when
24368 re-initializing preserved loops.
24369 * loop-unswitch.c (unswitch_single_loop): Return whether
24370 we unswitched the loop. Do not verify loop state here.
88b97037 24371 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24372
b4ab7d34
KS
243732013-02-13 Kostya Serebryany <kcc@google.com>
24374
88b97037
UB
24375 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24376 on x86_64 linux.
b4ab7d34
KS
24377 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24378
bdcbe80c
DS
243792013-02-12 Dodji Seketeli <dodji@redhat.com>
24380
24381 Avoid instrumenting duplicated memory access in the same basic block
24382 * Makefile.in (asan.o): Add new dependency on hash-table.h
24383 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24384 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24385 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24386 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24387 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24388 (get_mem_ref_of_assignment): New functions.
24389 (get_mem_refs_of_builtin_call): Extract from
24390 instrument_builtin_call and tweak a little bit to make it fit with
24391 the new signature.
24392 (instrument_builtin_call): Use the new
24393 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24394 of is_gimple_builtin_call.
24395 (instrument_derefs, instrument_mem_region_access): Insert the
24396 instrumented memory reference into the hash table.
24397 (maybe_instrument_assignment): Renamed instrument_assignment into
24398 this, and change it to advance the iterator when instrumentation
24399 actually happened and return true in that case. This makes it
24400 homogeneous with maybe_instrument_assignment, and thus give a
24401 chance to callers to be more 'regular'.
24402 (transform_statements): Clear the memory reference hash table
24403 whenever we enter a new BB, when we cross a function call, or when
24404 we are done transforming statements. Use
24405 maybe_instrument_assignment instead of instrumentation. No more
24406 need to special case maybe_instrument_assignment and advance the
24407 iterator after calling it; it's now handled just like
24408 maybe_instrument_call. Update comment.
24409
4861a1f7
RB
244102013-02-13 Richard Biener <rguenther@suse.de>
24411
24412 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24413 Fix loop discovery code.
24414
1c86bd80
VM
244152013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24416
24417 PR inline-asm/56148
24418 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24419 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24420 the operand is not reloaded. Prefer to reload conflicting operand
24421 if earlyclobber and matching operands are the same.
24422
7cbda518
RB
244232013-02-12 Richard Biener <rguenther@suse.de>
24424
24425 PR lto/56297
24426 * lto-streamer-out.c (write_symbol): Do not output symbols
24427 for hard register variables.
24428
e68a4ef6
GJL
244292013-02-12 Georg-Johann Lay <avr@gjlay.de>
24430
24431 PR target/54222
24432 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24433 (umulsidi3_insn, mulsidi3_insn): New insns.
24434
a72d8780 244352013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24436
24437 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24438 (struct tune_params): Add vec_costs field.
24439 * config/arm/arm.c (arm_builtin_vectorization_cost)
24440 (arm_add_stmt_cost): New functions.
24441 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24442 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24443 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24444 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24445 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24446 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24447 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24448
43320568
RB
244492013-02-12 Richard Biener <rguenther@suse.de>
24450
24451 PR lto/56295
24452 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24453 decls again if possible.
24454
a011aa39
RB
244552013-02-12 Richard Biener <rguenther@suse.de>
24456
24457 PR middle-end/56288
24458 * tree-ssa.c (verify_ssa_name): Fix check, move
24459 SSA_NAME_IN_FREE_LIST check up.
24460
6da26889
JJ
244612013-02-12 Jakub Jelinek <jakub@redhat.com>
24462 Steven Bosscher <steven@gcc.gnu.org>
24463
24464 PR rtl-optimization/56151
24465 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24466 equal to op0 or op1, and last_insn pattern is CODE operation
24467 with MEM dest and one of the operands matches that MEM.
24468
f80e0faf
ST
244692013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24470
24471 * doc/extend.texi: Document Function Multiversioning and "default"
24472 parameter string to target attribute.
24473 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24474 target attribute parameter is "default".
24475 (ix86_compare_version_priority): Remove checks for target attribute.
24476 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24477 Remove check for target attribute equal to NULL. Add assert.
24478 (ix86_generate_version_dispatcher_body): Change error to sorry.
24479
6c59ffd1
IS
244802013-02-11 Iain Sandoe <iain@codesourcery.com>
24481 Jack Howarth <howarth@bromo.med.uc.edu>
24482 Patrick Marlier <patrick.marlier@gmail.com>
24483
24484 PR libitm/55693
24485 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24486 define ENDFILE_SPEC as TM_DESTRUCTOR.
24487 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24488
a72d8780 244892013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24490 Jack Howarth <howarth@bromo.med.uc.edu>
24491 Jakub Jelinek <jakub@redhat.com>
24492
24493 PR sanitizer/55617
24494 * config/darwin.c (cdtor_record): Rename ctor_record.
24495 (sort_cdtor_records): Rename sort_ctor_records.
24496 (finalize_dtors): New routine to sort destructors by
24497 priority before use in assemble_integer.
24498 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24499
b63fe007
UB
245002013-02-11 Uros Bizjak <ubizjak@gmail.com>
24501
24502 PR rtl-optimization/56275
24503 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24504 offset is non-negative and less than cmode size before
24505 calling simplify_subreg.
24506
8e89b5b5
RB
245072013-02-11 Richard Biener <rguenther@suse.de>
24508
24509 PR tree-optimization/56264
24510 * cfgloop.h (fix_loop_structure): Adjust prototype.
24511 * loop-init.c (fix_loop_structure): Return the number of
24512 newly discovered loops.
24513 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24514 are discovered, do a full loop-closed SSA rewrite.
24515
b4a4b56d
RB
245162013-02-11 Richard Biener <rguenther@suse.de>
24517
24518 PR tree-optimization/56273
24519 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24520 first VRP run.
24521 (check_array_ref): Fix missing newline in dumps.
24522 (search_for_addr_array): Likewise.
24523
0c885229
DE
245242013-02-09 David Edelsohn <dje.gcc@gmail.com>
24525
24526 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24527
59ac9a55
JJ
245282013-02-09 Jakub Jelinek <jakub@redhat.com>
24529
24530 PR target/56256
24531 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24532
25bb0bb5
VM
245332013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24534
24535 PR rtl-optimization/56246
0c885229 24536 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24537 reload pseudo.
24538 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24539 constraints are satisfied.
24540
a698cc03
JL
245412013-02-08 Jeff Law <law@redhat.com>
24542
24543 PR debug/53948
24544 * emit-rtl.c (reg_is_parm_p): New function.
24545 * regs.h (reg_is_parm_p): New prototype.
24546 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24547 callee-clobbered registers.
24548
e1122ddd
MM
245492013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24550
24551 PR target/56043
24552 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24553 If there is no implicit builtin declaration, just return NULL.
24554
19c5f6e6
UB
245552013-02-08 Uros Bizjak <ubizjak@gmail.com>
24556
24557 * config/i386/sse.md (FMAMODEM): New mode iterator.
24558 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24559 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24560
2480f2ca 245612013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24562
2480f2ca
UB
24563 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24564 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24565 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24566
245672013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24568
24569 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24570 (microblaze*-*-elf): Likewise.
24571 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24572 LINK_SPEC.
24573 * config/microblaze/microblaze-c.c: Add builtin defines for
24574 _LITTLE_ENDIAN and _BIG_ENDIAN.
24575 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24576 add to TARGET_DEFAULT flags.
76ef61fb 24577 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24578 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24579 * config/microblaze/microblaze.md: Update extendsidi2 and
24580 movdi_internal instructions to use low-order / high-order reg
24581 print_operands.
24582 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24583 options and inversemask / mask of LITTLE_ENDIAN.
24584 * config/microblaze/t-microblaze: Expand multilib options to
24585 include mlittle-endian (le) and update exceptions patterns.
24586
600a5961
JJ
245872013-02-08 Jakub Jelinek <jakub@redhat.com>
24588
5df81313
JJ
24589 PR rtl-optimization/56195
24590 * lra-constraints.c (get_reload_reg): Don't reuse regs
24591 if they have smaller mode than requested, if they have
24592 wider mode than requested, try to return a SUBREG.
24593
600a5961
JJ
24594 PR tree-optimization/56250
24595 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24596 if type is unsigned and code isn't MULT_EXPR.
24597
ff544649
GJL
245982013-02-08 Georg-Johann Lay <avr@gjlay.de>
24599
24600 PR tree-optimization/56064
24601 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24602 bits according to mode.
24603 * fixed-value.h (fixed_from_double_int)
24604 (const_fixed_from_double_int): Adjust comments.
24605
e45cde98
RB
246062013-02-08 Richard Biener <rguenther@suse.de>
24607
24608 PR lto/56231
24609 * lto-streamer.h (struct data_in): Remove current_file, current_line
24610 and current_col members.
24611 * lto-streamer-out.c (lto_output_location): Stream changed bits
24612 en-block for efficiency.
24613 * lto-streamer-in.c (clear_line_info): Remove.
24614 (lto_input_location): Cache current file, line and column
24615 globally via local statics. Read changed bits en-block.
24616 (input_function): Do not call clear_line_info.
24617 (lto_read_body): Likewise.
24618 (lto_input_toplevel_asms): Likewise.
24619
c1ca73d8
MM
246202013-02-08 Michael Matz <matz@suse.de>
24621
24622 PR tree-optimization/52448
24623 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24624 (nt_call_phase): New static.
24625 (add_or_mark_expr): Only mark accesses with newer phase than any
24626 call seen.
24627 (nonfreeing_call_p): New.
24628 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24629 (nt_fini_block): Keep blocks marked as visited.
24630 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24631
57548aa2
RB
246322013-02-08 Richard Biener <rguenther@suse.de>
24633
24634 * ira.c (ira): Free broken dominator information.
24635
8e10366f
UB
246362013-02-08 Uros Bizjak <ubizjak@gmail.com>
24637
24638 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24639
f64fb0fa
MP
246402013-02-08 Marek Polacek <polacek@redhat.com>
24641
8e10366f 24642 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24643
0375167b
RB
246442013-02-08 Richard Biener <rguenther@suse.de>
24645
24646 PR middle-end/56181
24647 * cfgloop.h (flow_loops_find): Adjust.
24648 (bb_loop_header_p): Declare.
24649 * cfgloop.c (bb_loop_header_p): New function split out from ...
24650 (flow_loops_find): ... here. Adjust function signature,
24651 support incremental loop structure update.
24652 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24653 * cfgloopmanip.c (fix_loop_structure): Move ...
24654 * loop-init.c (fix_loop_structure): ... here.
24655 (apply_loop_flags): Split out from ...
24656 (loop_optimizer_init): ... here.
24657 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24658 in incremental mode, only remove dead loops here.
24659
85d768f3
GJL
246602013-02-08 Georg-Johann Lay <avr@gjlay.de>
24661
24662 PR target/54222
24663 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24664 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24665 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24666 (*round<mode>3.libgcc): New insns for fixed-modes.
24667 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24668 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24669 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24670 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24671 implementations. Define to __builtin_avr_absFX,
24672 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24673 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24674 __builtin_avr_countlsFX, respectively.
24675 * config/avr/avr-c.c (target.h): Include it.
24676 (enum avr_builtin_id): New enum.
24677 (avr_resolve_overloaded_builtin): New static function.
24678 (avr_register_target_pragmas): Use it to set
24679 targetm.resolve_overloaded_builtin.
24680 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24681 tree nodes used by DEF_BUILTIN.
24682 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24683 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24684 <AVR_BUILTIN_xxBITS>: Same.
24685
661bc682
RB
246862013-02-08 Richard Biener <rguenther@suse.de>
24687
24688 * cfgloop.c (verify_loop_structure): Properly handle
24689 a loop exiting to another loop header.
24690 * ira-int.h (ira_loops): Remove.
24691 * ira.c (ira_loops): Remove.
24692 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24693 (do_reload): Use loop_optimizer_finalize.
24694 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24695 number_of_loops to access the loop tree.
24696 (more_one_region_p): Likewise.
24697 (finish_loop_tree_nodes): Likewise.
24698 (rebuild_regno_allocno_maps): Likewise.
24699 (mark_loops_for_removal): Likewise.
24700 (mark_all_loops_for_removal): Likewise.
24701 (remove_unnecessary_regions): Likewise.
24702 (ira_build): Likewise.
24703 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24704
0d5049b2
RB
247052013-02-08 Richard Biener <rguenther@suse.de>
24706
24707 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24708 * ipa-pure-const.c (analyze_function): Avoid calling
24709 mark_irreducible_loops twice.
8e10366f 24710 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 24711
499f32e8
DM
247122013-02-07 David S. Miller <davem@davemloft.net>
24713
24714 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24715 on 'reg'.
24716 * var-tracking.c (vt_add_function_parameter): Test the presence of
24717 HAVE_window_save properly and do not remap argument registers when
24718 we have a leaf function.
24719
6edc3e32
UB
247202013-02-07 Uros Bizjak <ubizjak@gmail.com>
24721
24722 PR bootstrap/56227
24723 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24724 instead of "ll".
24725 * config/i386/i386.c (ix86_print_operand): Ditto.
24726
5306401f
VM
247272013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24728
6edc3e32 24729 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 24730
027ece11
VM
247312013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24732
24733 PR rtl-optimization/56225
24734 * lra-constraints.c (process_alt_operands): Check that reload hard
24735 reg can hold value for strict_low_part.
24736
f980dfdb
JJ
247372013-02-07 Jakub Jelinek <jakub@redhat.com>
24738
24739 PR debug/56154
24740 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24741 dwarf2out_end_function.
24742 (in_first_function_p, maybe_at_text_label_p,
24743 first_loclabel_num_not_at_text_label): New variables.
24744 (dwarf2out_var_location): In the first function find out
6edc3e32 24745 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
24746 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24747 functions.
24748
73dd3123
EB
247492013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24750
24751 PR rtl-optimization/56178
24752 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24753 SUBREG of a register. Tidy up related block of code.
24754 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24755 note if the source is a register or a SUBREG of a register.
24756
e3936f47
JJ
247572013-02-07 Jakub Jelinek <jakub@redhat.com>
24758
24759 PR target/56228
24760 * config/rs6000/rs6000.md (ptrm): New mode attr.
24761 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
24762 call_value_indirect_aix<pttrsize>,
24763 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
24764 m in constraints.
24765
d96d674b
MH
247662013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24767
24768 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
24769 if -bnortl. Convert to strcmp and strncmp.
24770
921f2dee
AM
247712013-02-07 Alan Modra <amodra@gmail.com>
24772
24773 PR target/54009
24774 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
24775 addresses won't wrap when offsetting.
24776 (rs6000_secondary_reload): Provide secondary reloads needed for
24777 wrapping LO_SUM addresses.
24778
d09c7dba
TS
247792013-02-06 Thomas Schwinge <thomas@codesourcery.com>
24780
24781 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
24782 MACH, just __MACH__.
24783
a44bbd48
RB
247842013-02-06 Richard Biener <rguenther@suse.de>
24785
24786 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
24787 instead of calling fix_loop_structure.
24788
6d840d99
JJ
247892013-02-06 Jakub Jelinek <jakub@redhat.com>
24790
24791 PR middle-end/56217
24792 * omp-low.c (use_pointer_for_field): Return false if
24793 lower_send_shared_vars doesn't generate any copy-out code.
24794
0f33baa9
TV
247952013-02-06 Tom de Vries <tom@codesourcery.com>
24796
24797 PR rtl-optimization/56131
24798 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
24799 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
24800 of the label is NULL. Add comment.
24801
11f1e3ab
JJ
248022013-02-05 Jakub Jelinek <jakub@redhat.com>
24803
31502f9f
JJ
24804 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
24805
a74db9bd
JJ
24806 PR sanitizer/55374
24807 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
24808 (STATIC_LIBTSAN_LIBS): Likewise.
24809 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
24810 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
24811 is defined, don't add anything else beyond that.
24812 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
24813 (LINK_COMMAND_SPEC): Use them.
24814
11f1e3ab
JJ
24815 PR tree-optimization/56205
24816 * tree-stdarg.c (check_all_va_list_escapes): Return true if
24817 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
24818 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
24819
14ac6aa2
RB
248202013-02-05 Richard Biener <rguenther@suse.de>
24821
24822 PR tree-optimization/53342
24823 PR tree-optimization/53185
24824 * tree-vectorizer.h (vect_check_strided_load): Remove.
24825 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
24826 not disallow peeling for vectorized strided loads.
24827 (vect_check_strided_load): Make static and simplify.
24828 (vect_analyze_data_refs): Adjust.
24829 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
24830 correctly when vectorizing strided loads.
24831
6f22445a
RB
248322013-02-05 Richard Biener <rguenther@suse.de>
24833
24834 * doc/install.texi: Refer to ISL, not PPL.
24835
39f9719e
JH
248362013-02-05 Jan Hubicka <jh@suse.cz>
24837
ec4224ac
JH
24838 PR tree-optimization/55789
24839 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
24840
248412013-02-05 Jan Hubicka <jh@suse.cz>
24842
24843 PR tree-optimization/55789
39f9719e
JH
24844 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
24845 the dead call anyway.
24846
956d3b33
EB
248472013-02-05 Eric Botcazou <ebotcazou@adacore.com>
24848
24849 PR sanitizer/55374
24850 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
24851
248522013-02-04 Alexander Potapenko <glider@google.com>
24853 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
24854 Jakub Jelinek <jakub@redhat.com>
24855
24856 PR sanitizer/55617
24857 * config/darwin.c (sort_ctor_records): Stabilized qsort
24858 on constructor priority by using original position.
24859 (finalize_ctors): New routine to sort constructors by
24860 priority before use in assemble_integer.
24861 (machopic_asm_out_constructor): Use finalize_ctors if needed.
24862
7ac3af38
JJ
248632013-02-04 Jakub Jelinek <jakub@redhat.com>
24864
24865 PR libstdc++/54314
24866 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
24867 about visibility on artificial decls.
24868 * config/sol2.c (solaris_assemble_visibility): Likewise.
24869
152689dc
KT
248702013-02-04 Kai Tietz <ktietz@redhat.com>
24871
24872 PR target/56186
24873 * config/i386/i386.c (function_value_ms_64): Add additional valtype
24874 argument and improve checking of return-argument types for 16-byte
24875 modes.
24876 (ix86_function_value_1): Add additional valtype argument on call
24877 of function_value_64.
24878 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
24879 handling infunction_value_64 function.
24880
2b5987b5
MGD
248812013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
24882
7ac3af38 24883 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 24884
14597080
RB
248852013-02-04 Richard Biener <rguenther@suse.de>
24886
24887 PR tree-optimization/56188
24888 * tree-ssa-structalias.c (label_visit): Consider case with
24889 initially non-empty points-to set.
24890 (perform_var_substitution): Dump node mapping and clean up.
24891
ed73881e
RG
248922013-02-04 Richard Guenther <rguenther@suse.de>
24893
24894 PR lto/56168
24895 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
24896 node prevail as last resort.
24897 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 24898 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 24899
139a0707
RB
249002013-02-04 Richard Biener <rguenther@suse.de>
24901
24902 PR tree-optimization/56113
24903 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
24904 Merge into ...
24905 (equiv_class_lookup_or_add): ... this.
24906 (label_visit): Adjust and fix error in previous patch.
24907 (perform_var_substitution): Adjust.
24908
50fe8924
OE
249092013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
24910
24911 * config/sh/divtab.c: Fix formatting and comments throughout the file.
24912 * config/sh/sh4-300.md: Likewise.
24913 * config/sh/sh4a.md: Likewise.
24914 * config/sh/constraints.md: Likewise.
24915 * config/sh/sh.md: Likewise.
24916 * config/sh/netbsd-elf.h: Likewise.
24917 * config/sh/predicates.md: Likewise.
24918 * config/sh/sh-protos.h: Likewise.
24919 * config/sh/ushmedia.h: Likewise.
24920 * config/sh/linux.h: Likewise.
24921 * config/sh/sh.c: Likewise.
24922 * config/sh/superh.h: Likewise.
24923 * config/sh/elf.h: Likewise.
24924 * config/sh/sh4.md: Likewise.
24925 * config/sh/sh.h: Likewise.
24926
1a04ac2b
JDA
249272013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24928
24929 * config/pa/constraints.md: Adjust unused letters. Change "T"
24930 constraint to match_test floating_point_store_memory_operand().
24931 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
24932 (base14_operand): New.
24933 (floating_point_store_memory_operand): New.
24934 (integer_store_memory_operand): Revise to use base14_operand and
24935 reg_plus_base_memory_operand.
24936 (move_dest_operand): Allow symbolic_memory_operands.
24937 (symbolic_memory_operand): Check for LO_SOM.
24938 (symbolic_operand): Change default case to break.
24939 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
24940 CONST_DOUBLE values to be reloaded by putting them into memory when
24941 the destination is a floating point register.
24942 (movdf): Remove code to handle CONST_DOUBLE.
24943 (movsf): Likewise.
24944 (reload_indf_r1): New.
24945 (reload_insf_r1): New.
24946 Consistently use "Q" and "T" constraints with integer and floating
24947 point move instructions, respectively.
24948 (movdi): Remove FAIL.
24949 Change predicate for source operand unamed DImode move from
24950 general_operand to move_src_operand.
24951 (umulsidi3): Change predicate for destination operand to
24952 register_operand.
24953 Likewise for similar unamed patterns.
24954 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
24955 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
24956 (hppa_legitimize_address): Simplify mask calculation.
24957 (pa_emit_move_sequence): Revised handling of secondary reloads from
24958 REG+D addresses for floating point loads and stores. Directly handle
24959 loading CONST0_RTX (mode) to a floating point register.
24960 (pa_secondary_reload): Handle reloading DF and SFmode constant values
24961 to floating point registers. Don't restrict secondary reloads to
24962 floating point registers to integer modes. Revise some comments and
24963 cleanup some code.
24964 (TARGET_LEGITIMATE_ADDRESS_P): Define.
24965 (pa_legitimate_address_p): New.
24966 (pa_legitimize_reload_address): New.
24967 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
24968 (STRICT_REG_OK_FOR_BASE_P): New.
24969 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
24970 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
24971
3bf65591
DE
249722013-02-03 David Edelsohn <dje.gcc@gmail.com>
24973 Andrew Dixie <andrewd@gentrack.com>
24974
24975 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
24976 flag set.
24977
c0a8a3e6
RS
249782013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
24979
24980 * expmed.c (extract_bit_field_1): Pass the full width of the
24981 structure to get_best_reg_extraction_insn.
24982
99113dff
DE
249832013-02-01 David Edelsohn <dje.gcc@gmail.com>
24984
24985 PR target/54601
24986 * configure.ac (use_cxa_atexit): Add AIX.
24987 * configure: Regenerate.
24988
24989 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
24990
ddd84654
JJ
249912013-02-01 Jakub Jelinek <jakub@redhat.com>
24992
24993 PR debug/54793
24994 * final.c (need_profile_function): New variable.
24995 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
24996 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
24997 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
24998 notes, targetm.asm_out.function_prologue doesn't emit anything,
24999 HAVE_prologue and profiler should be emitted before prologue,
25000 set need_profile_function instead of emitting it.
25001 (final_scan_insn): If need_profile_function, emit
25002 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25003 NOTE_INSN_FUNCTION_BEG note.
25004
250052013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25006
25007 * config/rs6000/rs6000.md (smulditi3): New.
25008 (umulditi3): New.
25009
ff2a9d88
RH
25010 * config/alpha/alpha.md (umulditi3): New.
25011
14d52b90
DE
250122013-02-01 David Edelsohn <dje.gcc@gmail.com>
25013
25014 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25015 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25016
8c7ca45c
RB
250172013-02-01 Richard Biener <rguenther@suse.de>
25018
25019 PR tree-optimization/56113
25020 * tree-ssa-structalias.c (label_visit): Reduce work for
25021 single-predecessor nodes.
25022
9f419393
EB
250232013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25024
25025 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25026 range isn't testing for zero.
25027
c5f4be84
SB
250282013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25029
25030 PR middle-end/56113
25031 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25032
dbdbd982
NC
250332013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25034 Nick Clifton <nickc@redhat.com>
25035
25036 * config/v850/constraints.md (Q): Define as a memory constraint.
25037 * config/v850/predicates.md (label_ref_operand): New predicate.
25038 (e3v5_shift_operand): New predicate.
25039 (ior_operator): New predicate.
25040 * config/v850/t-v850: Add e3v5 multilib.
25041 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25042 (v850_gen_movdi): Prototype.
25043 * config/v850/v850.c: Add support for e3v5 architecture.
25044 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25045 TARGET_V850E_UP.
25046 (construct_save_jarl): Add e3v5 long JARL support.
25047 (v850_adjust_insn_length): New function. Adjust length of call
25048 insns when using e3v5 instructions.
25049 (v850_gen_movdi): New function: Generate instructions to move a
25050 DImode value.
25051 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25052 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25053 (TARGET_USE_FPU): Enable for e3v5.
25054 (CONST_OK_FOR_W): New macro.
25055 (ADJUST_INSN_LENGTH): Define.
25056 * config/v850/v850.md (UNSPEC_LOOP): Define.
25057 (attr cpu): Add v850e3v5.
25058 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25059 (movdi): New pattern.
25060 (movdi_internal): New pattern.
25061 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25062 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25063 (cstoresf4): Likewise.
25064 (cstoredf4): Likewise.
25065 (insv): New pattern.
25066 (rotlso3_a): New pattern.
25067 (rotlsi3_b): New pattern
25068 (rotlsi3_v850e3v5): New pattern.
25069 (doloop_begin): New pattern.
25070 (fix_loop_counter): New pattern.
25071 (doloop_end): New pattern.
25072 (branch_normal): Add e3v5 long branch support.
25073 (branch_invert): Likewise.
25074 (branch_z_normal): Likewise.
25075 (branch_z_invert): Likewise.
25076 (branch_nz_normal): Likewise.
25077 (branch_nz_invert): Likewise.
25078 (call_internal_short): Add e3v5 register-indirect JARL support.
25079 (call_internal_long): Likewise.
25080 (call_value_internal_short): Likewise.
25081 (call_value_internal_long): Likewise.
25082 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25083 (mloop): New option.
25084 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25085 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25086
73861a41
PK
250872013-01-31 Paul Koning <ni1d@arrl.net>
25088
25089 PR debug/55059
25090 PR debug/54508
25091 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25092 children if parent is a class.
25093 (prune_unused_types_prune): Don't add DW_AT_declaration.
25094
e44978dc
RB
250952013-01-31 Richard Biener <rguenther@suse.de>
25096
25097 PR tree-optimization/56157
25098 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25099 match up operand with SLP child.
25100
90b10dec
JM
251012013-01-31 Jason Merrill <jason@redhat.com>
25102
04d2dadd 25103 PR debug/54410
90b10dec
JM
25104 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25105 parameters the first time.
25106 (gen_scheduled_generic_parms_dies): Check completeness here.
25107
6e616110
RB
251082013-01-31 Richard Biener <rguenther@suse.de>
25109
25110 PR middle-end/53073
25111 * common.opt (faggressive-loop-optimizations): New flag,
25112 enabled by default.
25113 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25114 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25115 infer_loop_bounds_from_undefined by it.
25116
636f59cf
RB
251172013-01-31 Richard Biener <rguenther@suse.de>
25118
25119 PR tree-optimization/56150
25120 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25121 visit virtual operands.
25122 (find_uses_to_rename_bb): Likewise.
25123
251242013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25125
25126 PR tree-optimization/56150
25127 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25128 mixed store non-store stmts.
25129
32887460
JJ
251302013-01-30 Jakub Jelinek <jakub@redhat.com>
25131
e60e09a0
JJ
25132 PR sanitizer/55374
25133 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25134 LIBASAN_EARLY_SPEC is defined.
25135 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25136 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25137 before %o.
25138 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25139
32887460
JJ
25140 PR c++/55742
25141 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25142 invalid args instead of ICEing on it.
25143 (ix86_valid_target_attribute_tree): Return error_mark_node if
25144 ix86_valid_target_attribute_inner_p failed.
25145 (ix86_valid_target_attribute_p): Return false only if
25146 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25147 target("default") attribute.
25148 (sorted_attr_string): Change argument from const char * to tree,
25149 merge in all target attribute arguments rather than just one.
25150 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25151 instead of free. Avoid using strcat.
25152 (ix86_mangle_function_version_assembler_name): Mangle
25153 target("default") as if no target attribute is present. Adjust
25154 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25155 instead of xmalloc and XDELETEVEC instead of free.
25156 (ix86_function_versions): Don't return true if one of the decls
25157 doesn't have target attribute. If they don't and one of the decls
25158 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25159 sorted_attr_string caller. Use XDELETEVEC instead of free.
25160 (ix86_supports_function_versions): Remove.
25161 (make_name): Fix up formatting.
25162 (make_dispatcher_decl): Remove resolver_name and its initialization.
25163 Avoid leaking memory.
25164 (is_function_default_version): Return true if there is
25165 target("default") attribute rather than no target attribute at all.
25166 (make_resolver_func): Avoid leaking memory.
25167 (ix86_generate_version_dispatcher_body): Likewise.
25168 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25169 * target.def (supports_function_versions): Remove.
25170 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25171 * doc/tm.texi: Regenerated.
25172
73cca0cc
VM
251732013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25174
25175 PR rtl-optimization/56144
25176 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25177 for values with side effects.
25178
11452e7b
RB
251792013-01-30 Richard Biener <rguenther@suse.de>
25180
25181 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25182 (sparseset_pop): Likewise.
25183 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25184 to be able to use quick_push in the worker loop.
25185
01cb1ef5
MP
251862013-01-30 Marek Polacek <polacek@redhat.com>
25187
25188 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25189
e892936e
RB
251902013-01-30 Richard Biener <rguenther@suse.de>
25191
25192 PR lto/56147
6edc3e32 25193 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25194
cc06c01d
GJL
251952013-01-30 Georg-Johann Lay <avr@gjlay.de>
25196
25197 PR tree-optimization/56064
25198 * fixed-value.c (fixed_from_double_int): New function.
25199 * fixed-value.h (fixed_from_double_int): New prototype.
25200 (const_fixed_from_double_int): New static inline function.
25201 * fold-const.c (native_interpret_fixed): New static function.
25202 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25203 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25204 (native_encode_fixed): New static function.
25205 (native_encode_expr) <FIXED_CST>: Use it.
25206 (native_interpret_int): Move double_int worker code to...
25207 * double-int.c (double_int::from_buffer): ...this new static method.
25208 * double-int.h (double_int::from_buffer): Prototype it.
25209
d394a308
RB
252102013-01-30 Richard Biener <rguenther@suse.de>
25211
25212 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25213 New pointer-map and obstack.
25214 (init_alias_vars): Allocate pointer-map and obstack.
25215 (delete_points_to_sets): Free them.
25216 (find_what_var_points_to): Cache result.
25217 (find_what_p_points_to): Adjust for changed interface of
25218 find_what_var_points_to.
25219 (compute_points_to_sets): Likewise.
25220 (ipa_pta_execute): Likewise.
25221
20804d96
RO
252222013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25223
25224 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25225 * configure: Regenerate.
25226 * config.in: Regenerate.
25227 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25228 #nobits/#progbits if supported.
25229
a7ad88a2
OE
252302013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25231
25232 PR target/56121
25233 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25234 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25235 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25236
7af79f92
GY
252372013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25238
91bfca59
OE
25239 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25240 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25241
753bcf7b
GY
252422013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25243
91bfca59
OE
25244 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25245 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25246
8cbc2ea8
GY
252472013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25248
91bfca59
OE
25249 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25250 declaration.
25251 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25252 * config/arm/cortex-a7.md: New bypasses using
25253 arm_mac_accumulator_is_result.
8cbc2ea8 25254
697a3325
GY
252552013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25256
91bfca59 25257 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25258 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25259 (cortex_a7_fpfmad): New reservation.
25260 (cortex_a7_fpmacs): Use ffmas and update required units.
25261 (cortex_a7_fpmuld): Update required units and latency.
25262 (cortex_a7_fpmacd): Likewise.
25263 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25264 (cortex_a7_neon). Likewise.
25265 (bypass) Update participating units.
697a3325 25266
29637783
GY
252672013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25268
91bfca59
OE
25269 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25270 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25271 from fmac to ffma.
25272 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25273 (vfp_fmul): Use ffmad.
25274 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25275 (cortex_r4_fmacd): Use ffmad.
25276 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25277 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25278 (cortex_a9_fmacd): Use ffmad.
25279 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25280 (cortex_a8_vfp_macd): Use ffmad.
25281 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25282 (cortex_a5_fpmacd): Use ffmad.
25283 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25284 (cortex_a15_vfp_macd): Use ffmad.
25285 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25286
2ee8a2d5
JM
252872013-01-29 Jason Merrill <jason@redhat.com>
25288
25289 PR libstdc++/54314
25290 * varasm.c (default_assemble_visibility): Don't warn about
25291 visibility on artificial decls.
25292
78d087bc
RB
252932013-01-29 Richard Biener <rguenther@suse.de>
25294
25295 PR tree-optimization/56113
25296 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25297 the bitmap leader.
25298 (label_visit): Free duplicate bitmaps and record the leader instead.
25299 (perform_var_substitution): Adjust.
25300
83ba4d6f
RB
253012013-01-29 Richard Biener <rguenther@suse.de>
25302
25303 PR tree-optimization/55270
25304 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25305 the CFG, schedule loops for fixup.
25306
66dfe13f
NC
253072013-01-29 Nick Clifton <nickc@redhat.com>
25308
25309 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25310 SP_REG.
25311
5a579c3b
LE
253122013-01-28 Leif Ekblad <leif@rdos.net>
25313
25314 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25315 * config/i386/i386.h (TARGET_RDOS): New macro.
25316 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25317 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25318 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25319 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25320 DEFAULT_LARGE_SECTION_THRESHOLD.
25321 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25322 * config/i386/rdos.h: New file.
25323 * config/i386/rdos64.h: New file.
25324
51e44392
BS
253252013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25326
25327 PR other/54814
25328 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25329 TEST_HARD_REG_BIT.
25330
db1fb332
JJ
253312013-01-28 Jakub Jelinek <jakub@redhat.com>
25332
25333 PR rtl-optimization/56117
25334 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25335 call cselib_lookup_from_insn on the MEM before calling
25336 add_insn_mem_dependence.
25337
16917761
RB
253382013-01-28 Richard Biener <rguenther@suse.de>
25339
25340 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25341 to a stmt that didn't have one.
25342 (copy_phis_for_bb): Likewise for PHI arguments.
25343 (copy_debug_stmt): Likewise for debug stmts.
25344
b9fc0497
RB
253452013-01-28 Richard Biener <rguenther@suse.de>
25346
25347 PR tree-optimization/56034
6edc3e32 25348 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25349 (partition_builtin_p): Adjust.
25350 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25351 it is the last partition.
25352 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25353 up the vertex for the definition.
25354 (classify_partition): Classify whether a partition is a
25355 PKIND_REDUCTION, thus has uses outside of the loop.
25356 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25357 Merge all PKIND_REDUCTION partitions into the last partition.
25358 (tree_loop_distribution): Seed partitions from reductions as well.
25359
aa710d25
JJ
253602013-01-28 Jakub Jelinek <jakub@redhat.com>
25361
0bfbca58
JJ
25362 PR tree-optimization/56125
25363 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25364 pow(x,c) into sqrt(x) * powi(x, n/2) or
25365 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25366 optimizing for size.
25367 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25368 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25369 integer.
25370
aa710d25
JJ
25371 PR tree-optimization/56094
25372 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25373 to UNKNOWN_LOCATION while gimplifying expr.
25374
77dc5297
UB
253752013-01-27 Uros Bizjak <ubizjak@gmail.com>
25376
25377 PR target/56114
25378 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25379 operand 0 in movabs insn template for -masm=intel asm alternative.
25380 (*movabs<mode>_2): Ditto for operand 1.
25381
0bfbca58 253822013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25383
25384 PR target/54663
25385 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25386 of microblaze-c.o
25387
0bfbca58 253882013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25389
25390 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25391 tm_file.
25392
0bfbca58 253932013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25394
25395 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25396 Undef to avoid warning.
25397
478f60f9
MH
253982013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25399
25400 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25401 * configure: Regenerate.
25402
d7fa6ee2
JJ
254032013-01-25 Jakub Jelinek <jakub@redhat.com>
25404
25405 PR tree-optimization/56098
25406 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25407 for stmts with volatile ops.
25408 (cond_store_replacement): Don't optimize if assign has volatile ops.
25409 (cond_if_else_store_replacement_1): Don't optimize if either
25410 then_assign or else_assign have volatile ops.
25411 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25412 volatile ops.
25413
f8fe87bd
GJL
254142013-01-25 Georg-Johann Lay <avr@gjlay.de>
25415
25416 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25417
28398d0d
GJL
254182013-01-25 Georg-Johann Lay <avr@gjlay.de>
25419
25420 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25421 missing ':' in asm example.
25422
b7d7d917
TB
254232013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25424
25425 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25426 entries into lane and laneq entries.
77dc5297
UB
25427 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25428 Remove AdvSIMD scalar modes.
b7d7d917
TB
25429 (aarch64_sq<r>dmulh_laneq<mode>): New.
25430 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25431 modes.
25432 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25433 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25434 * config/aarch64/iterators.md (VCOND): New.
25435 (VCONQ): New.
25436
556f9906
GJL
254372013-01-25 Georg-Johann Lay <avr@gjlay.de>
25438
25439 PR target/54222
25440 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25441 Add NULL LIBNAME argument to existing definitions.
25442 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25443 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25444 * config/avr/avr.c (DEF_BUILTIN): Same.
25445 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25446 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25447 implementation is available (DECL_ASSEMBLER_NAME is set).
25448 (avr_fold_absfx): New static function.
25449 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25450 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25451 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25452 AVR_BUILTIN_ABSLLK.
25453 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25454 (abshk, absk, abslk, absllk): Provide as static inline functions.
25455
1f546bbb
MP
254562013-01-25 Marek Polacek <polacek@redhat.com>
25457
25458 PR tree-optimization/56035
25459 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25460
7e184bd7
UB
254612012-01-24 Uros Bizjak <ubizjak@gmail.com>
25462
25463 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25464 (*movtf_internal_rex64): Add (!o,C) alternative
25465 (*movxf_internal_rex64): Ditto.
25466 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25467
f5ba49ac
SM
254682013-01-24 Shenghou Ma <minux.ma@gmail.com>
25469
25470 * doc/invoke.texi: fix typo.
25471 * doc/objc.texi: fix typo.
25472
a6343728
RS
254732013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25474
25475 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25476 for the first two alternatives.
25477
cd030c07
DN
254782013-01-24 Diego Novillo <dnovillo@google.com>
25479
77dc5297 25480 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25481 (ggc-zone.o): Remove.
25482 * configure.ac: Remove option --with-gc.
25483 * configure: Re-generate.
25484 * doc/install.texi: Remove documentation for --with-gc.
25485 * gengtype.c (write_enum_defn): Remove. Update all users.
25486 (write_Types_process_field): Remove generation of gt_e_* argument.
25487 (output_type_enum): Remove. Update all users.
25488 (write_enum_defn): Remove. Update all users.
25489 (enum alloc_zone): Remove. Update all users.
77dc5297 25490 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25491 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25492 Update all callers.
25493 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25494 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25495 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25496 Update all users.
aaf1e810 25497 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25498 (struct alloc_zone): Remove.
25499 (ggc_internal_alloc_zone_stat): Remove.
25500 (ggc_internal_cleared_alloc_zone_stat): Remove.
25501 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25502 (ggc_pch_count_object): Remove last argument. Update all users.
25503 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25504 (struct alloc_zone): Remove.
25505 * ggc-zone.c: Remove.
77dc5297 25506 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25507 (struct alloc_zone): Remove.
25508 (ggc_alloc_typed_stat): Remove.
25509 (ggc_alloc_typed): Remove.
25510 (ggc_splay_alloc): Remove first argument.
25511 (rtl_zone): Remove. Update all users.
25512 (tree_zone): Remove. Update all users.
25513 (tree_id_zone): Remove. Update all users.
25514 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25515 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25516 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25517 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25518
a861ffa4
GJL
255192013-01-24 Georg-Johann Lay <avr@gjlay.de>
25520
25521 * config/avr/avr.c (avr_out_fract): Make register numbers that
25522 might be outside of source operand signed.
25523
593c0ddd
UB
255242013-01-24 Uros Bizjak <ubizjak@gmail.com>
25525
25526 * config/i386/constraints.md (Yf): New constraint.
25527 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25528 of f constraint to conditionaly disable x87 register preferences.
25529 (*movdf_internal): Ditto.
25530 (*movsf_internal): Ditto.
25531
e86c0101
SB
255322013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25533
25534 PR inline-asm/55934
25535 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25536 that have operands with impossible constraints.
25537 Add a FIXME for a speed-up opportunity.
25538 * lra-constraints.c (process_alt_operands): Verify that a class
25539 selected from constraints on asms is valid for the operand mode.
25540 (curr_insn_transform): Remove incorrect comment.
25541
f6fee35f
DE
255422013-01-23 David Edelsohn <dje.gcc@gmail.com>
25543
25544 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25545 TOC operand is a valid symbol ref in the constant pool.
25546
255472013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25548
aaf1e810 25549 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25550
dc62d7d1
GJL
255512013-01-23 Georg-Johann Lay <avr@gjlay.de>
25552
25553 PR target/54222
25554 * config/avr/stdfix.h: New file.
25555 * t-avr (stdfix-gcc.h): New rule to build it.
25556 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25557
2660d12d
KS
255582013-01-23 Kostya Serebryany <kcc@google.com>
25559
77dc5297
UB
25560 * config/darwin.h: remove dependency on
25561 CoreFoundation (asan on Mac OS).
2660d12d 25562
a70418fc
JJ
255632013-01-23 Jakub Jelinek <jakub@redhat.com>
25564
25565 PR target/49069
25566 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25567 instead of cmpdi_operand for first comparison operand.
25568 Don't assert that comparison operands aren't both constants.
25569
47876a2a
JW
255702013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25571
25572 * doc/install.texi (Downloading the Source): Update references to
25573 downloading separate components.
25574
255752013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25576
25577 * doc/extend.texi (__int128): Improve grammar.
25578
47876a2a 255792013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25580
25581 PR target/56028
25582 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25583 alternative to (o,r).
25584 (*movdi_internal_rex64): Remove (!o,n) alternative.
25585 (DImode immediate->memory splitter): Remove.
25586 (DImode immediate->memory peephole2): Remove.
25587 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25588 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25589 alternative to (!o,*r).
25590 (*movtf_internal_sse): New pattern.
25591 (*movxf_internal_rex64): New pattern.
25592 (*movxf_internal): Disable for TARGET_64BIT.
25593 (*movdf_internal_rex64): Remove (!o,F) alternative.
25594
3a984f10
JJ
255952013-01-22 Jakub Jelinek <jakub@redhat.com>
25596
502498d5
JJ
25597 PR middle-end/56074
25598 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25599 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25600 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25601 stmt locations where LOCATION_LOCUS of the stmt location is
25602 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25603
3a984f10
JJ
25604 PR target/55686
25605 * config/i386/i386.md (UNSPEC_STOS): New.
25606 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25607 *strsetqi_1): Add UNSPEC_STOS.
25608
fa817f7f
PC
256092013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25610
25611 PR c++/56067
25612 * doc/invoke.texi: Remove left over -Wsynth example.
25613
8f498c1b
JJ
256142013-01-21 Jakub Jelinek <jakub@redhat.com>
25615
25616 PR tree-optimization/56051
25617 * fold-const.c (fold_binary_loc): Don't fold
25618 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25619 a narrowing conversion, or widening conversion from signed
25620 to unsigned.
25621
47876a2a 256222013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25623
25624 PR rtl-optimization/56023
25625 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25626 dependent on debug instruction.
25627
5b9db1bc
MJ
256282013-01-21 Martin Jambor <mjambor@suse.cz>
25629
25630 PR middle-end/56022
25631 * function.c (allocate_struct_function): Call
25632 invoke_set_current_function_hook earlier.
25633
e8bb7d68
JJ
256342013-01-21 Jakub Jelinek <jakub@redhat.com>
25635
25636 * reload1.c (init_reload): Only initialize reload_obstack
25637 during the first call.
25638
616a4e32
MP
256392013-01-21 Marek Polacek <polacek@redhat.com>
25640
25641 * cfgloop.c (verify_loop_structure): Fix up grammar.
25642
4401981b
YHH
256432013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25644
25645 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25646 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25647
8e87740b
RR
256482013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25649
25650 PR target/56058
25651 * config/arm/marvell-pj4.md: Update copyright year.
25652 Fix up use of alu to alu_reg and simple_alu_imm.
25653
47876a2a 256542013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25655
25656 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25657
89d56d79
VM
256582013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25659
25660 PR target/55433
25661 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25662 insn for secondary memory move when memory mode should be different.
89d56d79 25663
fe603553
JDA
256642013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25665
25666 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25667 atomic_storedi_1): New patterns.
25668
01284895
VK
256692013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25670
25671 btver2 pipeline descriptions.
25672 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25673 descriptions.
25674 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25675 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25676 type attributes.
25677 * config/i386/btver2.md: New file describing btver2 pipelines.
25678
5630e3e1
JL
256792013-01-19 Andrew Pinski <apinski@cavium.com>
25680
25681 PR tree-optimization/52631
25682 * tree-ssa-sccvn (visit_use): Before looking up the original
25683 statement, try looking up the simplified expression.
25684
650ae806
AG
256852013-01-19 Anthony Green <green@moxielogic.com>
25686
25687 * config/moxie/moxie.c (moxie_expand_prologue): Set
25688 current_function_static_stack_size.
25689
e300ec2d
JJ
256902013-01-18 Jakub Jelinek <jakub@redhat.com>
25691
25692 PR tree-optimization/56029
25693 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25694 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25695
a3d7af04
SS
256962013-01-18 Sharad Singhai <singhai@google.com>
25697
25698 PR tree-optimization/55995
25699 * dumpfile.c (dump_loc): Print location only if available.
25700 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25701
66aa7879
VM
257022013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25703
25704 PR target/55433
25705 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25706 secondary memory move.
25707 (inherit_reload_reg): Use rclass instead of cl for
25708 check_secondary_memory_needed_p.
25709
3f0fee7b
JJ
257102013-01-18 Jakub Jelinek <jakub@redhat.com>
25711
25712 PR middle-end/56015
25713 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 25714 the case where writing real complex part of target modifies op1.
3f0fee7b 25715
70c67693
JG
257162013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25717
25718 * config/aarch64/aarch64-simd.md
25719 (aarch64_vcond_internal<mode>): Handle unordered cases.
25720 * config/aarch64/iterators.md (v_cmp_result): New.
25721
df8de9b3
YHH
257222013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25723 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25724
25725 * config/arm/marvell-pj4.md: New file.
25726 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25727 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25728 (generic_vfp): Likewise.
25729 * config/arm/arm-cores.def: Add marvell-pj4.
25730 * config/arm/arm-tune.md: Regenerate.
25731 * config/arm/arm-tables.opt: Regenerate.
25732 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25733 * doc/invoke.texi: Document marvell-pj4.
25734
be30c356
TB
257352013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25736
25737 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25738
0bfbca58 257392013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
25740
25741 PR debug/54114
25742 PR debug/54402
25743 PR debug/49888
25744 * var-tracking.c (negative_power_of_two_p): New.
25745 (global_get_addr_cache, local_get_addr_cache): New.
25746 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25747 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25748 heading comment.
25749 (vt_stack_offset_p): Remove.
25750 (vt_canon_true_dep): Always canonicalize loc's address.
25751 (clobber_overlapping_mems): Make sure we have a MEM.
25752 (local_get_addr_clear_given_value): New.
25753 (val_reset): Clear local cached entries.
25754 (compute_bb_dataflow): Create and release the local cache.
25755 Disable duplicate MEMs clobbering.
25756 (emit_notes_in_bb): Clobber MEMs likewise.
25757 (vt_emit_notes): Create and release the local cache.
25758 (vt_initialize, vt_finalize): Create and release the global
25759 cache, respectively.
1f6bc337 25760 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 25761
0bfbca58 257622013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
25763
25764 PR libmudflap/53359
25765 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
25766 not found in the symtab.
25767
0bfbca58 257682013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 25769
c350ba53 25770 PR debug/56006
3aa03517
AO
25771 PR rtl-optimization/55547
25772 PR rtl-optimization/53827
25773 PR debug/53671
25774 PR debug/49888
25775 * alias.c (offset_overlap_p): New, factored out of...
25776 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
25777 the conservative special case for symbolic constants. Don't
25778 adjust zero sizes on alignment.
25779
c664546f
JL
257802013-01-18 Bernd Schmidt <bernds@codesourcery.com>
25781
25782 PR rtl-optimization/52573
25783 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
25784 REG_UNUSED for the same register.
25785
1bd3f750
MP
257862013-01-17 Richard Biener <rguenther@suse.de>
25787 Marek Polacek <polacek@redhat.com>
25788
25789 PR rtl-optimization/55833
25790 * loop-unswitch.c (unswitch_loops): Move loop verification...
25791 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
25792 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
25793 Set it to true when we're removing a loop from hierarchy tree in
25794 an irreducible region.
25795 (fix_bb_placements): Adjust caller.
25796 (fix_loop_placements): Likewise.
25797
e52a8b71
GJL
257982013-01-17 Georg-Johann Lay <avr@gjlay.de>
25799
25800 * config/avr/builtins.def (DEF_BUILTIN): Factor out
25801 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
25802 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
25803 Remove ID. Adjust comments.
25804 * config/avr/avr-c.c (avr_builtin_name): Remove.
25805 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
25806 * config/avr/avr.c (avr_tolower): New static function.
25807 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
25808 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
25809 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
25810 default expansion.
25811
8386a7ea
JH
258122013-01-17 Jan Hubicka <jh@suse.cz>
25813
610fb637 25814 PR tree-optimization/55273
8386a7ea
JH
25815 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
25816
47876a2a 258172013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
25818
25819 PR target/55981
25820 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
25821 store through atomic_store<mode>_1.
25822 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
25823
8222c37e
MJ
258242013-01-17 Martin Jambor <mjambor@suse.cz>
25825
25826 PR tree-optimizations/55264
25827 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
25828 for virtual methods.
25829 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
25830 virtual methods before inlining is over.
25831 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
25832 virtual functions.
25833 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
25834 non-virtual.
25835
79f01c76
VM
258362013-01-16 Vladimir Makarov <vmakarov@redhat.com>
25837
25838 PR rtl-optimization/56005
25839 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
25840 pending reads for prefetch.
25841
d0b6bb1b
IB
258422013-01-16 Ian Bolton <ian.bolton@arm.com>
25843
aaf1e810 25844 * config/aarch64/aarch64.md
d0b6bb1b
IB
25845 (*cstoresi_neg_uxtw): New pattern.
25846 (*cmovsi_insn_uxtw): New pattern.
25847 (*<optab>si3_uxtw): New pattern.
25848 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
25849 (*<optab>si3_insn_uxtw): New pattern.
25850 (*bswapsi2_uxtw): New pattern.
25851
cb9cf03b
RB
258522013-01-16 Richard Biener <rguenther@suse.de>
25853
25854 * tree-inline.c (tree_function_versioning): Remove set but
25855 never used variable.
25856
2cfc56b9
RB
258572013-01-16 Richard Biener <rguenther@suse.de>
25858
25859 PR tree-optimization/55964
25860 * tree-flow.h (rename_variables_in_loop): Remove.
25861 (rename_variables_in_bb): Likewise.
25862 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
25863 (copy_loop_before): Adjust and delete update-ssa status.
25864 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 25865 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
25866 (rename_variables_in_loop): Remove.
25867 (slpeel_update_phis_for_duplicate_loop): Likewise.
25868 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
25869 use available cfg machinery instead of duplicating it.
25870 Update PHI nodes and perform poor-mans SSA update here.
25871 (slpeel_tree_peel_loop_to_edge): Adjust.
25872
c25a0c60
RB
258732013-01-16 Richard Biener <rguenther@suse.de>
25874
25875 PR tree-optimization/54767
25876 PR tree-optimization/53465
25877 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
25878 (vrp_visit_phi_node): For PHI arguments coming via backedges
25879 drop all symbolical range information.
25880 (execute_vrp): Compute backedges.
25881
04b535af
RB
258822013-01-16 Richard Biener <rguenther@suse.de>
25883
25884 * doc/install.texi: Update CLooG and ISL requirements to
25885 0.18.0 and 0.11.1.
25886
8b0a1e0b
CB
258872013-01-16 Christian Bruel <christian.bruel@st.com>
25888
25889 PR target/55301
25890 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
25891 (broken_move): Handle UNSPECV_SP_SWITCH_B.
25892 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
25893
258942013-01-16 DJ Delorie <dj@redhat.com>
25895
25896 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
25897 (UNSPECV_SP_SWITCH_E): New.
25898 (sp_switch_1): Change to an unspec.
25899 (sp_switch_2): Change to an unspec. Don't use post-inc when we
25900 replace $r15.
25901
259022013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
25903
25904 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
25905 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
25906 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
25907 (expand_mem_thread_fence): Ditto.
25908 (expand_mem_signal_fence): Ditto.
25909 (expand_atomic_load): Ditto.
25910 (expand_atomic_store): Ditto.
25911
0bfbca58 259122013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
25913
25914 PR rtl-optimization/55547
25915 PR rtl-optimization/53827
25916 PR debug/53671
25917 PR debug/49888
25918 * alias.c (memrefs_conflict_p): Set sizes to negative after
25919 AND adjustments.
25920
305e3ac1
JJ
259212013-01-15 Jakub Jelinek <jakub@redhat.com>
25922
25923 PR target/55940
25924 * function.c (thread_prologue_and_epilogue_insns): Always
25925 add crtl->drap_reg to set_up_by_prologue.set, even if
25926 stack_realign_drap is false.
25927
f78ac4f2
JBG
259282013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25929
25930 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
25931 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
25932 *call): Fix indention.
25933
a78a8cc4
TV
259342013-01-15 Tom de Vries <tom@codesourcery.com>
25935
25936 PR target/55876
25937 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
25938 Update comment.
25939
0e80383f
VM
259402013-01-15 Vladimir Makarov <vmakarov@redhat.com>
25941
305e3ac1 25942 PR rtl-optimization/55153
0e80383f
VM
25943 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
25944
207b5956
MJ
259452013-01-15 Martin Jambor <mjambor@suse.cz>
25946
25947 PR tree-optimization/55920
25948 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
25949 accesses as grp_to_be_debug_replaced.
25950
a7818b54
JJ
259512013-01-15 Jakub Jelinek <jakub@redhat.com>
25952
25953 PR tree-optimization/55920
25954 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
25955 there is non-useless type conversion needed from debug rhs to lhs,
25956 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
25957
b0fe107e
JM
259582013-01-15 Joseph Myers <joseph@codesourcery.com>
25959 Mikael Pettersson <mikpe@it.uu.se>
25960
25961 PR target/43961
25962 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
25963 Thumb.
25964 (ASM_OUTPUT_CASE_LABEL): Remove.
25965 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
25966 * final.c (shorten_branches): Update alignment of labels before
25967 jump tables if CASE_VECTOR_SHORTEN_MODE.
25968
34ab62ee
RB
259692013-01-15 Richard Biener <rguenther@suse.de>
25970
25971 PR bootstrap/55961
25972 * system.h: Do not include gmp.h for building host tools.
25973
783a3a05
RB
259742013-01-15 Richard Biener <rguenther@suse.de>
25975
25976 PR middle-end/55882
25977 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
25978 account for bitpos when computing alignment.
25979
3a579e09
VY
259802013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
25981
25982 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
25983 (ix86_target_macros_internal): Likewise.
25984
25985 * config/i386/i386.c (m_CORE2I7): Removed.
25986 (m_CORE_HASWELL): New macro.
25987 (m_CORE_ALL): Likewise.
25988 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
25989 (initial_ix86_arch_features): Likewise.
25990 (processor_target_table): Initializations for Core avx2.
25991 (cpu_names): New names "core-avx2".
25992 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
25993 PROCESSOR_CORE_HASWELL.
25994 (ix86_issue_rate): New case.
25995 (ia32_multipass_dfa_lookahead): Likewise.
25996 (ix86_sched_init_global): Likewise.
25997
25998 * config/i386/i386.h (TARGET_HASWELL): New macro.
25999 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26000 (processor_type): New PROCESSOR_HASWELL.
26001
955f5a07
JJ
260022013-01-15 Jakub Jelinek <jakub@redhat.com>
26003
ff784829
JJ
26004 PR tree-optimization/55955
26005 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26006 *SHIFT_EXPR and *ROTATE_EXPR codes.
26007
955f5a07
JJ
26008 PR tree-optimization/48766
26009 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26010 -ftrapv disable -fwrapv.
26011
aeb8b4e9
GJL
260122013-01-14 Georg-Johann Lay <avr@gjlay.de>
26013
26014 PR target/55974
26015 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26016 etc. to 1 and not to __flash.
26017 Use LL suffix for __INT24_MAX__ with -mint8.
26018 Use ULL suffix for __UINT24_MAX__ with -mint8.
26019
1c494c6a
GJL
260202013-01-14 Georg-Johann Lay <avr@gjlay.de>
26021
26022 * config/avr/avr-arch.h
26023 (struct base_arch_s): Use typedef avr_arch_t instead.
26024 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26025 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26026 * config/avr/avr.c: Same.
26027 * config/avr/avr-devices.c: Same.
26028 * config/avr/driver-avr.c: Same.
26029 * config/avr/gen-avr-mmcu-texi.c: Same.
26030 * config/avr/avr-mcus.def: Adjust comment.
26031
a50344cb
TB
260322013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26033
88e784e6
UB
26034 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26035 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26036
47876a2a 260372013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26038 Andi Kleen <ak@linux.intel.com>
26039
26040 PR target/55948
26041 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26042 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26043 memmodel flag.
26044
00892272
GJL
260452013-01-14 Georg-Johann Lay <avr@gjlay.de>
26046
26047 * config/avr/avr-stdint.h: Remove trailing blanks.
26048 * config/avr/avr-log.h: Same.
26049 * config/avr/avr-arch.h: Same.
26050 * config/avr/avr-devices.c: Same.
26051 * config/avr/avr-dimode.md: Same.
26052 * config/avr/predicates.md: Same.
26053 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26054
00892272
GJL
26055 * config/avr/avr-protos.h: Same. And:
26056 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26057 (init_cumulative_args): Rename to avr_init_cumulative_args.
26058 (expand_prologue): Rename to avr_expand_prologue.
26059 (expand_epilogue): Rename to avr_expand_epilogue.
26060 (adjust_insn_length): Rename to avr_adjust_insn_length.
26061 (notice_update_cc): Rename to avr_notice_update_cc.
26062 (final_prescan_insn): Rename to avr_final_prescan_insn.
26063 * config/avr/avr.c: Same.
26064 * config/avr/avr.h: Same.
26065 * config/avr/avr.md: Remove trailing blanks.
26066 (prologue): Use avr_expand_prologue.
26067 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26068
7bb01996
RB
260692013-01-14 Richard Biener <rguenther@suse.de>
26070
26071 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26072 verify_location, collect_subblocks): New functions.
26073 (verify_gimple_in_cfg): Verify that locations only reference
26074 BLOCKs in the functions BLOCK tree.
26075
2724573f
RB
260762013-01-14 Richard Biener <rguenther@suse.de>
26077
26078 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26079 PHI argument.
26080 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26081 unshare reference.
26082 (insert_out_of_ssa_copy_on_edge): Likewise.
26083 (rewrite_close_phi_out_of_ssa): Likewise.
26084 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26085 debug expressions.
26086 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26087 propagated constants.
26088 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26089 can not be shared.
26090
9a0bbab6
GJL
260912013-01-14 Georg-Johann Lay <avr@gjlay.de>
26092
26093 * config/avr/avr-modes.def: Add GPL copyright notice.
26094
45805f17
UB
260952013-01-13 Uros Bizjak <ubizjak@gmail.com>
26096
26097 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26098 MEMMODEL_MASK to determine memory model.
26099 (atomic_store<mode>): Ditto from operands[2].
26100 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26101
9d60be38
JJ
261022013-01-13 Jakub Jelinek <jakub@redhat.com>
26103
26104 PR fortran/55935
45805f17 26105 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26106 (fold_gimple_assign): Don't call unshare_expr here.
26107 (fold_ctor_reference): Call unshare_expr.
26108
e7f49d92
TG
261092013-01-13 Terry Guo <terry.guo@arm.com>
26110
aaf1e810
EB
26111 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26112 * doc/fragments.texi: Document MULTILIB_REUSE.
26113 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26114 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26115 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26116 (tmpmultilib4): Ditto.
26117 (multilib_reuse): New multilib argument.
26118
fbd03a27
RS
261192013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26120
26121 * Makefile.in: Update copyright.
26122
b3681f13
TV
261232013-01-12 Tom de Vries <tom@codesourcery.com>
26124
26125 PR middle-end/55890
26126 * calls.c (expand_call): Check if arg_nr is valid.
26127
3f287e4b
MM
261282013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26129
26130 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26131 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26132 documentation. Add missing '__' in front of
26133 __builtin_ia32_packssdw256.
3f287e4b 26134
1abcd5eb
AK
261352013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26136
26137 PR target/55719
26138 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26139 NO_REGS for larl operands.
26140 (s390_reload_larl_operand): Use s390_load_address instead of
26141 emit_move_insn.
26142
980d0812
RB
261432013-01-11 Richard Biener <rguenther@suse.de>
26144
26145 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26146 (verify_node_sharing): ... here.
26147 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26148
7cb9fd07
EB
261492013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26150
26151 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26152 Substitute TREECHECKING.
26153 * configure: Regenerate.
26154 * Makefile.in (TREECHECKING): New.
26155
47876a2a 261562013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26157
26158 PR tree-optimization/44061
26159 * tree-vrp.c (extract_range_basic): Compute zero as
26160 value-range for __builtin_constant_p of function parameters.
26161
d1e082c2
RS
261622013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26163
45805f17 26164 Update copyright years.
d1e082c2 26165
f85021b0
VM
261662013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26167
9d60be38 26168 PR rtl-optimization/55672
0160442c
VM
26169 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26170 const to be eliminable.
f85021b0 26171
7a8b1ec4
DE
261722013-01-10 David Edelsohn <dje.gcc@gmail.com>
26173
26174 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26175 * configure: Regenerate.
26176
ad2e5b71
RB
261772013-01-10 Richard Biener <rguenther@suse.de>
26178
ddf9322d 26179 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26180
ffc5b2bb
RB
261812013-01-10 Richard Biener <rguenther@suse.de>
26182
26183 PR bootstrap/55792
26184 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26185 locations for virtual PHI arguments.
26186 (rewrite_update_phi_arguments): Likewise.
26187
e1f674e4
JS
261882013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26189
26190 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26191 on to assembler.
26192
a57fc743
JJ
261932013-01-10 Jakub Jelinek <jakub@redhat.com>
26194
26195 PR tree-optimization/55921
26196 * tree-complex.c (expand_complex_asm): New function.
26197 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26198
0ff4390d
AK
261992013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26200
26201 PR target/55718
26202 * config/s390/s390.c (s390_symref_operand_p)
26203 (s390_loadrelative_operand_p): Merge the two functions.
26204 (s390_check_qrst_address, print_operand_address): Add parameters
26205 to s390_loadrelative_operand_p invokation.
26206 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26207 (s390_reload_larl_operand, s390_secondary_reload): Use
26208 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26209 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26210
6f557e0e
MS
262112013-01-09 Mike Stump <mikestump@comcast.net>
26212
26213 * dse.c (record_store): Remove unnecessary assert.
26214
7770c9e9
JH
262152013-01-09 Jan Hubicka <jh@suse.cz>
26216
26217 PR tree-optimization/55569
26218 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26219 * cfgloop.h (scale_loop_profile): Likewise.
26220
a19b1432
JH
262212013-01-09 Jan Hubicka <jh@suse.cz>
26222
26223 PR lto/45375
ddf9322d
UB
26224 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26225 functions.
a19b1432
JH
26226 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26227
9a002da8
RS
262282013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26229
26230 PR middle-end/55114
26231 * expr.h (maybe_emit_group_store): Declare.
26232 * expr.c (maybe_emit_group_store): New function.
26233 * builtins.c (expand_builtin_int_roundingfn): Call it.
26234 (expand_builtin_int_roundingfn_2): Likewise.
26235
511dcace
VM
262362013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26237
e1f2b729 26238 PR rtl-optimization/55829
511dcace
VM
26239 * lra-constraints.c (match_reload): Add code for absent output.
26240 (curr_insn_transform): Add code for reloads of matched inputs
26241 without output.
26242
7b0fe4f4
UB
262432013-01-09 Uros Bizjak <ubizjak@gmail.com>
26244
26245 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26246 attribute of movddup insn to DF.
26247 (*vec_interleave_lowv2df): Ditto.
26248 (vec_dupv2df): Ditto.
26249
870ca331
JH
262502013-01-09 Jan Hubicka <jh@suse.cz>
26251
26252 PR tree-optimiation/55875
26253 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26254 EVERY_ITERATION parameter.
7b0fe4f4 26255 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26256 (idx_infer_loop_bounds): Similarly here.
26257 (n_of_executions_at_most): Simplify
26258 to only test for cases where statement is dominated by the
7b0fe4f4 26259 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26260 (scev_probably_wraps_p): Use max loop iterations info
26261 as a global bound first.
26262
6f575fe4 262632013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26264 Nick Clifton <nickc@redhat.com>
26265
26266 * config/v850/v850.md (cbranchsf4): New pattern.
26267 (cstoresf4): New pattern.
26268 (cbranchdf4): New pattern.
26269 (cstoredf4): New pattern.
26270 (movsicc): Disallow floating point comparisons.
26271 (cmpsf_le_insn): Fix order of operators.
26272 (cmpsf_lt_insn): Likewise.
26273 (cmpsf_eq_insn): Likewise.
26274 (cmpdf_le_insn): Likewise.
26275 (cmpdf_lt_insn): Likewise.
26276 (cmpdf_eq_insn): Likewise.
26277 (cmpsf_ge_insn): Use LE comparison.
26278 (cmpdf_ge_insn): Likewise.
26279 (cmpsf_gt_insn): Use LT comparison.
26280 (cmpdf_gt_insn): Likewise.
26281 (cmpsf_ne_insn): Delete pattern.
26282 (cmpdf_ne_insn): Delete pattern.
26283 * config/v850/v850.c (v850_gen_float_compare): Use
26284 gen_cmpdf_eq_insn for NE comparison.
26285 (v850_float_z_comparison_operator)
26286 (v850_float_nz_comparison_operator): Move from here ...
26287 * config/v850/predicates.md: ... to here. Move GT and GE
26288 comparisons into v850_float_z_comparison_operator.
26289 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26290 Delete prototype.
26291 (v850_float_nz_comparison_operator): Likewise.
26292
f0d54148
JDA
262932013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26294
26295 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26296 with calls to gen_insvsi/gen_insvdi.
26297
8f01beca
VK
262982013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26299
26300 * config/i386/i386.c (initial_ix86_tune_features): Set up
26301 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26302
2aa579ad
JJ
263032013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26304 Jakub Jelinek <jakub@redhat.com>
26305
26306 PR tree-optimization/48189
26307 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26308 If nitercst is 0, don't predict the exit edge.
26309
6edc3e32 263102013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26311
26312 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26313 in asm_fprintf with reg_names.
26314 (aarch64_print_operand_address): Likewise.
26315 (aarch64_return_addr): Likewise.
26316 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26317
f6f94d94
JDA
263182013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26319
26320 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26321 (INT_U6_BITS): Likewise.
26322 * config/pa/predicates.md (uint6_operand): New predicate.
26323 (shift5_operand, shift6_operand): Likewise.
26324 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26325 arith32_operand.
26326 (lshrdi3): Use shift6_operand.
26327 (shrpsi4, shrpdi4): New insn patterns.
26328 (extzv): Delete expander.
26329 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26330 predicates in unamed zero extract patterns. Tighten common constraint.
26331 (extv): Delete expander.
26332 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26333 predicates in unamed sign extract patterns. Tighten common constraint.
26334 (insv): Delete expander.
26335 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26336 predicates in unamed insert patterns. Tighten common constraint.
26337 Change uint32_operand predicate to uint6_operand predicate in unamed
26338 DImode pattern to insert constant values of type 1...1xxxx.
26339
36b72910
JH
263402013-01-04 Jan Hubicka <jh@suse.cz>
26341
26342 PR tree-optimization/55823
7b0fe4f4
UB
26343 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26344 issue.
36b72910 26345
47876a2a 263462013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26347 Uros Bizjak <ubizjak@gmail.com>
26348
26349 PR rtl-optimization/55845
26350 * df-problems.c (can_move_insns_across): Stop scanning at
26351 volatile_insn_p source instruction or give up if
26352 across_from .. across_to range contains any volatile_insn_p
26353 instructions.
26354
4369c11e
TB
263552013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26356
7b0fe4f4
UB
26357 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26358 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26359 Declare.
4369c11e 26360 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26361 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26362
aeb7e7c1
JJ
263632013-01-08 Jakub Jelinek <jakub@redhat.com>
26364
26365 PR fortran/55341
26366 * asan.c (asan_clear_shadow): New function.
26367 (asan_emit_stack_protection): Use it.
26368
a02ad1aa
TB
263692013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26370
26371 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26372 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26373 with tab instead of space.
26374
f90d87f5
NC
263752013-01-08 Nick Clifton <nickc@redhat.com>
26376
26377 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26378 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26379 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26380 MDBH registers.
f90d87f5 26381
385eb93d
JG
263822013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26383
26384 * config/aarch64/aarch64-simd.md
26385 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26386 (aarch64_simd_bsl): Likewise.
26387 (aarch64_vcond_internal<mode>): Likewise.
26388 (vcond<mode><mode>): Likewise.
26389 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26390 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26391
4dcd1054
JG
263922013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26393
26394 * config/aarch64/aarch64-builtins.c
26395 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26396
4267a4a6
MJ
263972013-01-08 Martin Jambor <mjambor@suse.cz>
26398
26399 PR debug/55579
26400 * tree-sra.c (analyze_access_subtree): Return true also after
26401 potentially creating a debug-only replacement.
26402
5f4e6de3
JJ
264032013-01-08 Jakub Jelinek <jakub@redhat.com>
26404
3138f224
JJ
26405 PR middle-end/55890
26406 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26407
5f4e6de3
JJ
26408 PR tree-optimization/54120
26409 * tree-vrp.c (range_fits_type_p): Don't allow
26410 src_precision < precision from signed vr to unsigned_p
26411 if vr->min or vr->max is negative.
26412 (simplify_float_conversion_using_ranges): Test can_float_p
26413 against CODE_FOR_nothing.
26414
f3ef18ff
JJ
264152013-01-08 Jakub Jelinek <jakub@redhat.com>
26416 Richard Biener <rguenther@suse.de>
26417
26418 PR middle-end/55851
26419 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26420 types instead of just INTEGER_TYPE types.
26421
25c210f9
MK
264222013-01-07 Mark Kettenis <kettenis@openbsd.org>
26423
26424 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26425 TF_SIZE): Define.
f90d87f5 26426
81826a7b
SE
264272013-01-07 Steve Ellcey <sellcey@mips.com>
26428
26429 PR target/42661
26430 * config/mips/mips.opt: Change mad to mmad to match documentation.
26431
35678514
GJL
264322013-01-07 Georg-Johann Lay <avr@gjlay.de>
26433
26434 PR target/55897
26435 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26436 .progmemx.data now.
26437
e5669488
GJL
264382013-01-07 Georg-Johann Lay <avr@gjlay.de>
26439
26440 PR target/55897
26441 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26442 (avr_addrspace_t): Add .section_name field.
26443 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26444 array size.
26445 (avr_addrspace): Same. Initialize .section_name. Remove last
26446 NULL entry. Put __memx into .progmemx.data.
26447 (progmem_section_prefix): Remove.
26448 (avr_asm_init_sections): No need to initialize progmem_section.
26449 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26450 section name prefix.
26451 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26452 retrieve the progmem section.
26453 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26454 boundary to run over avr_addrspace[].
26455 (avr_register_target_pragmas): Ditto.
26456
656e6f37
JJ
264572013-01-06 Jakub Jelinek <jakub@redhat.com>
26458
26459 * varasm.c (output_constant_def_contents): For asan_protect_global
26460 protected strings, adjust DECL_ALIGN if needed, before testing for
26461 anchored symbols.
26462 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26463 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26464 normal decls.
26465 (output_object_block): For asan protected decls, emit asan padding
26466 after their contents.
26467 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26468 (asan_finish_file): Test it here instead.
26469
6edc3e32
UB
264702013-01-07 Nick Clifton <nickc@redhat.com>
26471 Matthias Klose <doko@debian.org>
26472 Doug Kwan <dougkwan@google.com>
26473 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26474
26475 PR driver/55470
26476 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26477
26478 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26479
26480 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26481
7b0fe4f4 26482 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26483
26484 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26485
2a095093
GJL
264862013-01-07 Georg-Johann Lay <avr@gjlay.de>
26487
f3b503f4 26488 PR target/54461
2a095093
GJL
26489 * doc/install.texi (Cross-Compiler-Specific Options): Document
26490 --with-avrlibc.
26491
383f9b34
TB
264922013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26493
26494 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26495 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26496 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26497 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26498 vqmovun_high_s64): Fix source operand number and update copyright.
26499
3626621a
RB
265002013-01-07 Richard Biener <rguenther@suse.de>
26501
26502 PR middle-end/55890
26503 * gimple.h (gimple_call_builtin_p): New overload.
26504 * gimple.c (validate_call): New function.
26505 (gimple_call_builtin_p): Likewise.
26506 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26507 Use gimple_call_builtin_p.
26508 (find_func_clobbers): Likewise.
26509 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26510 (strlen_optimize_stmt): Likewise.
26511
8b2ea410
JG
265122013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26513
26514 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26515 (vld1q_dup_*): Likewise.
26516 (vld1_*): Likewise.
26517 (vld1q_*): Likewise.
26518 (vld1_lane_*): Likewise.
26519 (vld1q_lane_*): Likewise.
26520
9713d329
RB
265212013-01-07 Richard Biener <rguenther@suse.de>
26522
26523 * lto-streamer.h (LTO_minor_version): Bump to 2.
26524
3520f7cc
JG
265252013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26526
26527 * config/aarch64/aarch64-protos.h
26528 (aarch64_const_double_zero_rtx_p): Rename to...
26529 (aarch64_float_const_zero_rtx_p): ...this.
26530 (aarch64_float_const_representable_p): New.
26531 (aarch64_output_simd_mov_immediate): Likewise.
26532 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26533 move immediate case.
26534 * config/aarch64/aarch64.c
26535 (aarch64_const_double_zero_rtx_p): Rename to...
26536 (aarch64_float_const_zero_rtx_p): ...this.
26537 (aarch64_print_operand): Allow printing of new constants.
26538 (aarch64_valid_floating_const): New.
26539 (aarch64_legitimate_constant_p): Check for valid floating-point
26540 constants.
26541 (aarch64_simd_valid_immediate): Likewise.
26542 (aarch64_vect_float_const_representable_p): New.
26543 (aarch64_float_const_representable_p): Likewise.
26544 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26545 (aarch64_output_simd_mov_immediate): New.
26546 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26547 (*movdf_aarch64): Likewise.
26548 * config/aarch64/constraints.md (Ufc): New.
26549 (Y): call aarch64_float_const_zero_rtx.
26550 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26551
e167c04d
RB
265522013-01-07 Richard Biener <rguenther@suse.de>
26553
26554 PR tree-optimization/55888
26555 PR tree-optimization/55862
26556 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26557 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26558 not if it is contained therein.
26559
0139aaab
GJL
265602013-01-07 Georg-Johann Lay <avr@gjlay.de>
26561
26562 * config/avr/t-avr: Typo.
26563
4a176b23
GJL
265642013-01-07 Georg-Johann Lay <avr@gjlay.de>
26565
26566 PR55243
26567 * config/avr/t-avr: Don't automatically rebuild
26568 $(srcdir)/config/avr/t-multilib
26569 $(srcdir)/config/avr/avr-tables.opt
26570 $(srcdir)/doc/avr-mmcu.texi
26571 (avr-mcus): New phony target to build them on request.
26572 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26573 * avr/avr-mcus.def: Adjust comments.
26574
c7afdc98
UB
265752013-01-07 Uros Bizjak <ubizjak@gmail.com>
26576
26577 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26578
1ab05c31
RS
265792013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26580
26581 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26582
488e3acc
RS
265832013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26584
26585 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26586
a89599d2
DE
265872013-01-05 David Edelsohn <dje.gcc@gmail.com>
26588
26589 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26590 to generate profiling.
26591 * config/rs6000/aix64.h (LIB_SPEC): Same.
26592
70f09188
AP
265932013-01-04 Andrew Pinski <apinski@cavium.com>
26594
26595 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26596 New function.
26597 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26598
918d445f
UB
265992013-01-04 Uros Bizjak <ubizjak@gmail.com>
26600
26601 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26602 unconditionally.
26603 (ix86_expand_move): Ditto.
26604 (ix86_zero_extend_to_Pmode): Ditto.
26605 (ix86_expand_call): Ditto.
26606 (ix86_expand_special_args_builtin): Ditto.
26607 (ix86_expand_builtin): Ditto.
26608
361618ec
RB
266092013-01-04 Richard Biener <rguenther@suse.de>
26610
26611 PR tree-optimization/55862
26612 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26613 translating them through PHI nodes.
26614
87eab554
MJ
266152013-01-04 Martin Jambor <mjambor@suse.cz>
26616
26617 PR tree-optimization/55755
26618 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26619 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26620
33879b9f
MP
266212013-01-04 Marek Polacek <polacek@redhat.com>
26622
26623 PR middle-end/55859
26624 * opts.c (default_options_optimization): Clarify error message.
26625
3068819a
RB
266262013-01-04 Richard Biener <rguenther@suse.de>
26627
26628 PR middle-end/55863
26629 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26630 reassociation.
26631
0e4ae794
JDA
266322013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26633
26634 PR target/53789
26635 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26636 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26637 references.
0e4ae794 26638
65c88cef
RH
266392013-01-03 Richard Henderson <rth@redhat.com>
26640
26641 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26642 after eliminating TLS symbols.
26643
8ac16127
MG
266442013-01-03 Marc Glisse <marc.glisse@inria.fr>
26645
26646 PR bootstrap/50167
26647 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26648 * graphite-poly.c (debug_gmp_value): Likewise.
26649
bb664f09
UB
266502013-01-03 Uros Bizjak <ubizjak@gmail.com>
26651
26652 PR target/55712
26653 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26654 selected code model, define __code_mode_small__, __code_model_medium__,
26655 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26656 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26657 xchg temporary register with %k. Declare temporary register as
26658 early clobbered.
26659 [__x86_64__]: For medium and large code models, preserve %rbx register.
26660
bcf1ef00
RB
266612013-01-03 Richard Biener <rguenther@suse.de>
26662
0506634a 26663 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26664 (dump_subscript): Adjust.
26665 (finalize_ddr_dependent): Do not dump redundant info.
26666 (analyze_siv_subscript): Adjust.
26667 (subscript_dependence_tester): Likewise.
26668 (compute_affine_dependence): Likewise.
26669
59fd17e3
RB
266702013-01-03 Richard Biener <rguenther@suse.de>
26671
26672 Revert
26673 2013-01-03 Richard Biener <rguenther@suse.de>
26674
26675 PR tree-optimization/55857
26676 * tree-vect-stmts.c (vectorizable_load): Do not setup
26677 re-alignment for invariant loads.
26678
26679 2013-01-02 Richard Biener <rguenther@suse.de>
26680
26681 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26682 invariant load do not generate a vector load from the scalar location.
59fd17e3 26683
595c2679
RB
266842013-01-03 Richard Biener <rguenther@suse.de>
26685
26686 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26687 for not vectorizing.
26688 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26689 not build INDIRECT_REFs, call get_name once only.
26690 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26691 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26692
90bb7d7a
RB
266932013-01-03 Richard Biener <rguenther@suse.de>
26694
26695 PR tree-optimization/55857
26696 * tree-vect-stmts.c (vectorizable_load): Do not setup
26697 re-alignment for invariant loads.
26698
f09b77ca
RB
266992013-01-03 Richard Biener <rguenther@suse.de>
26700
26701 PR lto/55848
26702 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26703 prefer a built-in decl.
26704
3461a16e
JJ
267052013-01-03 Jakub Jelinek <jakub@redhat.com>
26706
df8e2b4f
JJ
26707 * gcc.c (process_command): Update copyright notice dates.
26708 * gcov.c (print_version): Likewise.
26709 * gcov-dump.c (print_version): Likewise.
26710
3461a16e
JJ
26711 PR rtl-optimization/55838
26712 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26713 iv0.step, iv1.step and step.
26714
8b5546d6
JJ
267152013-01-03 Jakub Jelinek <jakub@redhat.com>
26716 Marc Glisse <marc.glisse@inria.fr>
26717
26718 PR tree-optimization/55832
26719 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26720 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26721 integer_{one,zero}_node.
26722
8ab1d2e9
JJ
267232013-01-03 Jakub Jelinek <jakub@redhat.com>
26724
26725 PR debug/54402
26726 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26727 * var-tracking.c (reverse_op): Don't add reverse ops to
26728 VALUEs that have already
0506634a 26729 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 26730
5b9ad1d4
GP
267312013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26732
26733 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26734
e25a6711
TJ
267352013-01-02 Teresa Johnson <tejohnson@google.com>
26736
26737 * dumpfile.c (dump_loc): Print filename with location.
26738 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26739 new location_t parameter to emit complete unroll message with
26740 new dump framework.
26741 (canonicalize_loop_induction_variables): Compute loops location
26742 and pass to try_unroll_loop_completely.
26743 * loop-unroll.c (report_unroll_peel): New function.
26744 (peel_loops_completely): Use new dump format with location
26745 for main dumpfile message, and invoke report_unroll_peel on success.
26746 (decide_unrolling_and_peeling): Ditto.
26747 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26748 by report_unroll_peel.
26749 (decide_peel_completely): Ditto.
26750 (decide_unroll_constant_iterations): Ditto.
26751 (decide_unroll_runtime_iterations): Ditto.
26752 (decide_peel_simple): Ditto.
26753 (decide_unroll_stupid): Ditto.
26754 * cfgloop.c (get_loop_location): New function.
26755 * cfgloop.h (get_loop_location): Declare.
26756
77878621
ST
267572013-01-02 Sriraman Tallam <tmsriram@google.com>
26758
26759 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26760 NULL.
26761
9e65d03e
JDA
267622013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26763
26764 PR middle-end/55198
26765 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
26766 BLKmode objects when EXPAND_MEMORY is specified.
26767
6a7da30f
ST
267682013-01-02 Sriraman Tallam <tmsriram@google.com>
26769
26770 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
26771 in loop predicate.
26772 (fold_builtin_cpu): Do not share cpu model decls across statements.
26773
e78167f2
JM
267742013-01-02 Jason Merrill <jason@redhat.com>
26775
26776 PR c++/55804
26777 * tree.c (build_array_type_1): Revert earlier change.
26778
8c075fb4
YZ
267792013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
26780
26781 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
26782 "cortex-a57".
26783 * config/aarch64/aarch64-tune.md: Re-generate.
26784
0682ed3e
RB
267852013-01-02 Richard Biener <rguenther@suse.de>
26786
26787 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26788 invariant load do not generate a vector load from the scalar location.
0682ed3e 26789
b8f6a302
RB
267902013-01-02 Richard Biener <rguenther@suse.de>
26791
26792 PR bootstrap/55784
26793 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
26794 * configure: Regenerate.
26795
04b80dbb
RS
267962013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26797
26798 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
26799 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
26800 (expand_builtin_int_roundingfn_2): Keep the original target around
26801 for the fallback case.
26802
635b0b0c
RS
268032013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26804
26805 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
26806 to be clear for sign changes.
26807
42d57399
JH
268082013-01-01 Jan Hubicka <jh@suse.cz>
26809
26810 * ipa-inline-analysis.c: Fix formatting.
26811
5bb6669d
JJ
268122013-01-01 Jakub Jelinek <jakub@redhat.com>
26813
26814 PR tree-optimization/55831
26815 * tree-vect-loop.c (get_initial_def_for_induction): Use
26816 gsi_after_labels instead of gsi_start_bb.
ad41bd84 26817\f
86a2db33 26818Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
26819
26820Copying and distribution of this file, with or without modification,
26821are permitted in any medium without royalty provided the copyright
26822notice and this notice are preserved.