]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
rs6000.c (enum rs6000_reload_reg_type): Add new fields to the reg_addr array that...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5845f602
MM
12013-10-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2
3 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
4 fields to the reg_addr array that describes the valid addressing
5 mode for any register, general purpose registers, floating point
6 registers, and Altivec registers.
7 (FIRST_RELOAD_REG_CLASS): Likewise.
8 (LAST_RELOAD_REG_CLASS): Likewise.
9 (struct reload_reg_map_type): Likewise.
10 (reload_reg_map_type): Likewise.
11 (RELOAD_REG_VALID): Likewise.
12 (RELOAD_REG_MULTIPLE): Likewise.
13 (RELOAD_REG_INDEXED): Likewise.
14 (RELOAD_REG_OFFSET): Likewise.
15 (RELOAD_REG_PRE_INCDEC): Likewise.
16 (RELOAD_REG_PRE_MODIFY): Likewise.
17 (reg_addr): Likewise.
18 (mode_supports_pre_incdec_p): New helper functions to say whether
19 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
20 (mode_supports_pre_modify_p): Likewise.
21 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
22 print the valid address mode bits for each mode.
23 (rs6000_debug_print_mode): Likewise.
24 (rs6000_debug_reg_global): Likewise.
25 (rs6000_setup_reg_addr_masks): New function to set up the address
26 mask bits for each type.
27 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
28 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
29 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
30 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
31 PRE_MODIFY are supported.
32 (rs6000_print_options_internal): Tweak the debug output slightly.
33
82e33890
UB
342013-10-17 Uros Bizjak <ubizjak@gmail.com>
35
36 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
37 isa attribute.
38
0645c1a2
AM
392013-10-17 Andrew MacLeod <amacleod@redhat.com>
40
41 * tree-flow.h (struct omp_region): Move to omp-low.c.
42 Remove omp_ prototypes and variables.
43 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
44 (copy_var_decl): Relocate prototype from tree-flow.h.
45 * gimple.c (copy_var_decl): Relocate from omp-low.c.
46 * tree.h: Move prototype to omp-low.h.
47 * omp-low.h: New File. Relocate prototypes here.
48 * omp-low.c (struct omp_region): Make local here.
49 (root_omp_region): Make static.
50 (copy_var_decl) Move to gimple.c.
51 (new_omp_region): Make static.
52 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
53 * tree-cfg.c: Include omp-low.h.
54 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
55 * gimplify.c: Include omp-low.h.
56 * tree-parloops.c: Likewise.
57
82e33890
UB
582013-10-17 Uros Bizjak <ubizjak@gmail.com>
59
60 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
61 isa attribute.
62
6f1abb55
UB
632013-10-17 Uros Bizjak <ubizjak@gmail.com>
64
65 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
66 operands are in memory, prefer to force non-matched operand 1 to
67 the register.
68
1ddbbbc0
MM
692013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
70
71 PR target/58673
72 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
73 restrict TImode addresses to single indirect registers if both
74 -mquad-memory and -mvsx-timode are used.
75 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
76 we should emit load/store quad. Remove using %y for quad memory
77 addresses.
78
79 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
80 constraints to allow load/store quad on machines where TImode is
81 not allowed in VSX registers. Use 'n' instead of 'F' constraint
82 for TImode to load integer constants.
83
f541a481
KT
842013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
85
86 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
87
51bb310d
MS
882013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
89
90 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
91 handling of STACK_REG.
92
f4bed77b
RB
932013-10-17 Richard Biener <rguenther@suse.de>
94
95 PR tree-optimization/58143
96 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
97 New function.
98 (rewrite_to_defined_overflow): Likewise.
99 (move_computations_dom_walker::before_dom): Rewrite stmts
100 with undefined signed overflow that are not always executed
101 into unsigned arithmetic.
102
d358fb9d
MM
1032013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
104
105 PR target/57756
106 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
107 explicit isa flag to be an options variable, instead of using
108 global_options_set. Remove define from rs6000.h.
109 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
110
111 * config/rs6000/rs6000.c (rs6000_option_override_internal):
112 Initialize rs6000_isa_flags_explicit.
113 (rs6000_function_specific_save): Add gcc_options* parameter, so
114 that the powerpc builds after the 2013-10-15 changes.
115 (rs6000_function_specific_restore): Likewise.
116
c71aed47
DD
1172013-10-16 DJ Delorie <dj@redhat.com>
118
119 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
120 op is a REG before checking REGNO.
121 (rl78_alloc_physical_registers): Verify pattern is a SET before
122 checking SET_SRC.
123
90d3bd51
BS
1242013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
125
126 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
127 endianness.
128 (vec_unpacks_lo_v4sf): Likewise.
129 (vec_unpacks_float_hi_v4si): Likewise.
130 (vec_unpacks_float_lo_v4si): Likewise.
131 (vec_unpacku_float_hi_v4si): Likewise.
132 (vec_unpacku_float_lo_v4si): Likewise.
133
de75c876
BS
1342013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
135
136 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
137 (vsx_concat_v2sf): Likewise.
138
21216998
JG
1392013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
140
141 * config/aarch64/aarch64.md
142 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
143
1ef88893 1442013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 145
1ef88893 146 PR tree-optimization/58697
7ab4168e 147 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
148 estimated_loop_iterations_int.
149 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 150 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
151 get_max_loop_iterations.
152 * cfgloop.h: Add prototypes.
153 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 154 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
155 get_estimated_loop_iterations_int.
156 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
157 * tree-ssa-loop-niter.h: Tweak prototypes.
158
c22df64f
DM
1592013-10-16 David Malcolm <dmalcolm@redhat.com>
160
161 * gengtype-parse.c (struct_field_seq): Ignore access-control
162 keywords ("public:" etc).
163
f24bb080
MS
1642013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
165
166 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
167 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
168
c281bf26
YR
1692013-10-16 Yvan Roux <yvan.roux@linaro.org>
170
171 * config/arm/arm.opt (mlra): New option.
172 * config/arm/arm.c (arm_lra_p): New function.
173 (TARGET_LRA_P): Define.
174
5806f481
PM
1752013-10-16 Paulo Matos <pmatos@broadcom.com>
176
177 * tree-core.h (tree_code_name): Remove.
178 * tree.h (get_tree_code_name): New prototype.
179 * tree.c (tree_code_name): Make static.
180 (get_tree_code_name): New function.
181 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
182 tree_class_check_failed, tree_range_check_failed,
183 tree_not_class_check_failed, omp_clause_check_failed,
184 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
185 wrapper get_tree_code_name instead of calling tree_code_name directly.
186 * tree-vrp.c (dump_asserts_for): Likewise.
187 * tree-dump.c (dequeue_and_dump): Likewise.
188 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
189 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
190 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
191 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
192 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
193 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
194 dump_gimple_omp_for): Likewise.
195 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
196 * tree-ssa-pre.c (print_pre_expr): Likewise.
197 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
198 * print-tree.c (print_node_brief, print_node): Likewise.
199 * gimple.c (gimple_check_failed): Likewise.
200 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
201 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
202 * config/mep/mep.c (mep_validate_vliw): Likewise.
203 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
204 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
205
82c9df56
GG
2062013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
207
208 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
209 for AMD bdver3.
210
b82d0df9
HPN
2112013-10-16 Hans-Peter Nilsson <hp@axis.com>
212
213 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
214 (MULTILIB_MATCHES): Add multilib for -march=v8.
215
bf7b5747
ST
2162013-10-15 Sriraman Tallam <tmsriram@google.com>
217
218 PR target/57756
219 * optc-save-gen.awk: Add extra parameter to the save and restore
220 target calls.
221 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
222 * tree.c (build_optimization_node): New parameter. Add extra parameter
223 to call to cl_optimization_save.
224 (build_target_option_node): New parameter. Add extra parameter
225 to call to cl_target_option_save.
226 * tree.h (build_optimization_node): New parameter.
227 (build_target_option_node): New parameter.
228 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
229 build_optimization_node and build_target_option_node.
230 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
231 (handle_pragma_push_options): Ditto.
232 * toplev.c (process_options): Ditto.
233 * opts.c (init_options_struct): Check for opts_set non-null.
234 * target.def (target_option.save): New parameter.
235 (target_option.restore): New parameter.
236 * tm.texi: Generate.
237 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
238 (ix86_pragma_target_parse): Ditto.
239 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
240 parameters.
241 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
242 to build_optimization_node and build_target_option_node.
243 (rs6000_valid_attribute_p): Ditto.
244 (rs6000_pragma_target_parse): Ditto.
245 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
246 data.
247 * config/i386/i386.h:
248 TARGET_64BIT_P: New Macro
249 TARGET_MMX_P: New Macro.
250 TARGET_3DNOW_P: New Macro.
251 TARGET_3DNOW_A_P: New Macro.
252 TARGET_SSE_P: New Macro.
253 TARGET_SSE2_P: New Macro.
254 TARGET_SSE3_P: New Macro.
255 TARGET_SSSE3_P: New Macro.
256 TARGET_SSE4_1_P: New Macro.
257 TARGET_SSE4_2_P: New Macro.
258 TARGET_AVX_P: New Macro.
259 TARGET_AVX2_P: New Macro.
260 TARGET_AVX512F_P: New Macro.
261 TARGET_AVX512PF_P: New Macro.
262 TARGET_AVX512ER_P: New Macro.
263 TARGET_AVX512CD_P: New Macro.
264 TARGET_FMA_P: New Macro.
265 TARGET_SSE4A_P: New Macro.
266 TARGET_FMA4_P: New Macro.
267 TARGET_XOP_P: New Macro.
268 TARGET_LWP_P: New Macro.
269 TARGET_ABM_P: New Macro.
270 TARGET_BMI_P: New Macro.
271 TARGET_BMI2_P: New Macro.
272 TARGET_LZCNT_P: New Macro.
273 TARGET_TBM_P: New Macro.
274 TARGET_POPCNT_P: New Macro.
275 TARGET_SAHF_P: New Macro.
276 TARGET_MOVBE_P: New Macro.
277 TARGET_CRC32_P: New Macro.
278 TARGET_AES_P: New Macro.
279 TARGET_PCLMUL_P: New Macro.
280 TARGET_CMPXCHG16B_P: New Macro.
281 TARGET_FSGSBASE_P: New Macro.
282 TARGET_RDRND_P: New Macro.
283 TARGET_F16C_P: New Macro.
284 TARGET_RTM_P: New Macro.
285 TARGET_HLE_P: New Macro.
286 TARGET_RDSEED_P: New Macro.
287 TARGET_PRFCHW_P: New Macro.
288 TARGET_ADX_P: New Macro.
289 TARGET_FXSR_P: New Macro.
290 TARGET_XSAVE_P: New Macro.
291 TARGET_XSAVEOPT_P: New Macro.
292 TARGET_LP64_P: New Macro.
293 TARGET_X32_P: New Macro.
294 TARGET_FPMATH_DEFAULT_P: New Macro.
295 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
296 * config/i386/i386.c (ix86_option_override_internal): New parameters.
297 opts and opts_set.
298 Change ix86_tune_string to access opts->x_ix86_tune_string.
299 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
300 Change ix86_arch_string to access opts->x_ix86_arch_string.
301 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
302 Change ix86_pmode to access opts->x_ix86_pmode.
303 Change ix86_abi to access opts->x_ix86_abi.
304 Change ix86_cmodel to access opts->x_ix86_cmodel.
305 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
306 Change ix86_isa_flags_explicit to access
307 opts->x_ix86_isa_flags_explicit.
308 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
309 Change ix86_regparm to access opts->x_ix86_regparm.
310 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
311 Change ix86_preferred_stack_boundary_arg to access
312 opts->x_ix86_preferred_stack_boundary_arg.
313 Change ix86_force_align_arg_pointer to access
314 opts->x_ix86_force_align_arg_pointer.
315 Change ix86_incoming_stack_boundar_arg to access
316 opts->x_ix86_incoming_stack_boundar_arg.
317 Change ix86_fpmath to access opts->x_ix86_fpmath.
318 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
319 Change ix86_recip_name to access opts->x_ix86_recip_name.
320 Change ix86_stack_protector_guard to access
321 opts->x_ix86_stack_protector_guard.
322 Change ix86_tune_memcpy_strategy to access
323 opts->x_ix86_tune_memcpy_strategy.
324 Change ix86_tune_memset_strategy to access
325 opts->x_ix86_tune_memset_strategy.
326 Change global_options to access opts.
327 Change global_options_set to access opts_set.
6f1abb55
UB
328 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
329 Change TARGET_MMX to TARGET_MMX_P (opts->...).
330 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
331 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
332 Change TARGET_SSE to TARGET_SSE_P (opts->...).
333 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
334 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
335 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
336 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
337 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
338 Change TARGET_AVX to TARGET_AVX_P (opts->...).
339 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
340 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
341 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
342 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
343 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
344 Change TARGET_FMA to TARGET_FMA_P (opts->...).
345 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
346 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
347 Change TARGET_XOP to TARGET_XOP_P (opts->...).
348 Change TARGET_LWP to TARGET_LWP_P (opts->...).
349 Change TARGET_ABM to TARGET_ABM_P (opts->...).
350 Change TARGET_BMI to TARGET_BMI_P (opts->...).
351 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
352 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
353 Change TARGET_TBM to TARGET_TBM_P (opts->...).
354 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
355 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
356 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
357 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
358 Change TARGET_AES to TARGET_AES_P (opts->...).
359 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
360 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
361 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
362 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
363 Change TARGET_F16C to TARGET_F16C_P (opts->...).
364 Change TARGET_RTM to TARGET_RTM_P (opts->...).
365 Change TARGET_HLE to TARGET_HLE_P (opts->...).
366 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
367 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
368 Change TARGET_ADX to TARGET_ADX_P (opts->...).
369 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
370 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
371 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
372 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
373 Change TARGET_X32 to TARGET_X32_P (opts->...).
374 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
375 Change TARGET_FLOAT_RETURNS_IN_80387 to
376 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
bf7b5747
ST
377 (ix86_function_specific_save): New parameter. Use opts-> fields
378 to replace global fields.
379 (ix86_function_specific_restore): Ditto.
380 (ix86_valid_target_attribute_inner_p): New parameters.
381 Fix recursive call.
382 Fix call to ix86_handle_option and set_option.
383 (ix86_valid_target_attribute_tree): New parameters.
384 Change global_options to access opts.
385 Change global_options_set to access opts_set.
386 Fix call to ix86_valid_target_attribute_inner_p.
387 Change ix86_tune_string to access opts->x_ix86_tune_string.
388 Change ix86_arch_string to access opts->x_ix86_arch_string.
389 Change ix86_fpmath to access opts->x_ix86_fpmath
390 Fix call to ix86_option_override_internal.
391 Fix call to ix86_add_new_builtins.
392 Fix calls to build_optimization_node and build_target_option_node.
393 (ix86_valid_target_attribute_p): Remove access to global_options.
394 Use new gcc_options structure func_options.
395 Fix call to ix86_valid_target_attribute_tree.
396 Fix call to build_optimization_node.
397 (get_builtin_code_for_version): Fix call to
398 ix86_valid_target_attribute_tree.
399
459260ec
DM
4002013-10-15 David Malcolm <dmalcolm@redhat.com>
401
402 * Makefile.in (PICFLAG): New.
403 (enable_host_shared): New.
404 (INTERNAL_CFLAGS): Use PICFLAG.
405 (LIBIBERTY): Use pic build of libiberty.a if configured with
406 --enable-host-shared.
407 * configure.ac: Add --enable-host-shared, setting up new
408 PICFLAG variable.
409 * configure: Regenerate.
6f1abb55 410 * doc/install.texi (--enable-shared): Add note contrasting it with ...
459260ec
DM
411 (--enable-host-shared): New option.
412
16022041
RS
4132013-10-15 Richard Biener <rguenther@suse.de>
414
415 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
416 for built-in functions.
417
b114bfb4
ZC
4182013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
419
420 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
421 (optimize_range_tests_1): New function,
422 extracted from optimize_range_tests.
423 (optimize_range_tests_xor): Similarly.
424 (optimize_range_tests_diff): New function.
425 (optimize_range_tests): Use optimize_range_tests_1.
426
69b8f2f9
CH
4272013-10-15 Cong Hou <congh@google.com>
428
7ab4168e
MS
429 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
430 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
431 reduction operation can come from outside of the loop.
432
8ff5a4e4
JG
4332013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
434
435 * config/arm/neon-schedgen.ml: Remove.
436 * config/arm/cortex-a9-neon.md: Remove comment regarding
437 neon-schedgen.ml.
438
52b69ad2
JG
4392013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
440
441 * config/arm/types: Remove old neon types.
442
e7c6a556
JG
4432013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
444
445 * config/arm/cortex-a7.md
446 (cortex_a7_neon_type): New.
447 (cortex_a7_neon_mul): Update for new types.
448 (cortex_a7_neon_mla): Likewise.
449 (cortex_a7_neon): Likewise.
450
795dd8d5
JG
4512013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
452
453 * config/arm/cortex-a15-neon.md
454 (cortex_a15_neon_type): New,
455
456 (cortex_a15_neon_int_1): Remove.
457 (cortex_a15_neon_int_2): Likewise.
458 (cortex_a15_neon_int_3): Likewise.
459 (cortex_a15_neon_int_4): Likewise.
460 (cortex_a15_neon_int_5): Likewise.
461 (cortex_a15_neon_vqneg_vqabs): Likewise.
462 (cortex_a15_neon_vmov): Likewise.
463 (cortex_a15_neon_vaba): Likewise.
464 (cortex_a15_neon_vaba_qqq): Likewise.
465 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
466 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
467 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
468 Likewise.
469 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
470 (cortex_a15_neon_mla_qqq_8_16): Likewise.
471 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
472 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
473 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
474 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
475 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
476 (cortex_a15_neon_shift_1): Likewise.
477 (cortex_a15_neon_shift_2): Likewise.
478 (cortex_a15_neon_shift_3): Likewise.
479 (cortex_a15_neon_vshl_ddd): Likewise.
480 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
481 (cortex_a15_neon_vsra_vrsra): Likewise.
482 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
483 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
484 (cortex_a15_neon_bp_3cycle): Likewise.
485 (cortex_a15_neon_ldm_2): Likewise.
486 (cortex_a15_neon_stm_2): Likewise.
487 (cortex_a15_neon_mcr): Likewise.
488 (cortex_a15_neon_mrc): Likewise.
489 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
490 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
491 (cortex_a15_neon_fp_vmul_ddd): Likewise.
492 (cortex_a15_neon_fp_vmul_qqd): Likewise.
493 (cortex_a15_neon_fp_vmla_ddd): Likewise.
494 (cortex_a15_neon_fp_vmla_qqq): Likewise.
495 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
496 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
497 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
498 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
499 (cortex_a15_neon_bp_simple): Likewise.
500 (cortex_a15_neon_bp_2cycle): Likewise.
501 (cortex_a15_neon_bp_3cycle): Likewise.
502 (cortex_a15_neon_vld1_1_2_regs): Likewise.
503 (cortex_a15_neon_vld1_3_4_regs): Likewise.
504 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
505 (cortex_a15_neon_vld2_4_regs): Likewise.
506 (cortex_a15_neon_vld3_vld4): Likewise.
507 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
508 (cortex_a15_neon_vst1_3_4_regs): Likewise.
509 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
510 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
511 (cortex_a15_neon_vst3_vst4): Rename to...
512 (cortex_a15_neon_vst4): This, update for new attributes.
513 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
514 (cortex_a15_neon_vld3_vld4_lane): Likewise.
515 (cortex_a15_neon_vst1_vst2_lane): Likewise.
516 (cortex_a15_neon_vst3_vst4_lane): Likewise.
517 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
518 (cortex_a15_neon_ldm_2): Likewise.
519 (cortex_a15_neon_stm_2): Likewise.
520 (cortex_a15_neon_mcr): Likewise.
521 (cortex_a15_neon_mcr_2_mcrr): Likewise.
522 (cortex_a15_neon_mrc): Likewise.
523 (cortex_a15_neon_mrrc): Likewise.
524
525 (cortex_a15_neon_abd): New.
526 (cortex_a15_neon_abd_q): Likewise.
527 (cortex_a15_neon_aba): Likewise.
528 (cortex_a15_neon_aba_q): Likewise.
529 (cortex_a15_neon_acc): Likewise.
530 (cortex_a15_neon_acc_q): Likewise.
531 (cortex_a15_neon_arith_basic): Likewise.
532 (cortex_a15_neon_arith_complex): Likewise.
533 (cortex_a15_neon_multiply): Likewise.
534 (cortex_a15_neon_multiply_q): Likewise.
535 (cortex_a15_neon_mla): Likewise.
536 (cortex_a15_neon_mla_q): Likewise.
537 (cortex_a15_neon_sat_mla_long): Likewise.
538 (cortex_a15_neon_shift_acc): Likewise.
539 (cortex_a15_neon_shift_imm_basic): Likewise.
540 (cortex_a15_neon_shift_imm_complex): Likewise.
541 (cortex_a15_neon_shift_reg_basic): Likewise.
542 (cortex_a15_neon_shift_reg_basic_q): Likewise.
543 (cortex_a15_neon_shift_reg_complex): Likewise.
544 (cortex_a15_neon_shift_reg_complex_q): Likewise.
545 (cortex_a15_neon_fp_negabs): Likewise
546 (cortex_a15_neon_fp_arith): Likewise
547 (cortex_a15_neon_fp_arith_q): Likewise
548 (cortex_a15_neon_fp_cvt_int): Likewise
549 (cortex_a15_neon_fp_cvt_int_q): Likewise
550 (cortex_a15_neon_fp_cvt_16): Likewise
551 (cortex_a15_neon_fp_mul): Likewise
552 (cortex_a15_neon_fp_mul_q): Likewise
553 (cortex_a15_neon_fp_mla): Likewise
554 (cortex_a15_neon_fp_mla_q): Likewise
555 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
556 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
557 (cortex_a15_neon_bitops): Likewise.
558 (cortex_a15_neon_bitops_q): Likewise.
559 (cortex_a15_neon_from_gp): Likewise.
560 (cortex_a15_neon_from_gp_q): Likewise.
561 (cortex_a15_neon_tbl3_tbl4): Likewise.
562 (cortex_a15_neon_zip_q): Likewise.
563 (cortex_a15_neon_to_gp): Likewise.
564 (cortex_a15_neon_load_a): Likewise.
565 (cortex_a15_neon_load_b): Likewise.
566 (cortex_a15_neon_load_c): Likewise.
567 (cortex_a15_neon_load_d): Likewise.
568 (cortex_a15_neon_load_e): Likewise.
569 (cortex_a15_neon_load_f): Likewise.
570 (cortex_a15_neon_store_a): Likewise.
571 (cortex_a15_neon_store_b): Likewise.
572 (cortex_a15_neon_store_c): Likewise.
573 (cortex_a15_neon_store_d): Likewise.
574 (cortex_a15_neon_store_e): Likewise.
575 (cortex_a15_neon_store_f): Likewise.
576 (cortex_a15_neon_store_g): Likewise.
577 (cortex_a15_neon_store_h): Likewise.
578 (cortex_a15_vfp_to_from_gp): Likewise.
579
bc5e57e3
JG
5802013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
581
582 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
583
584 (cortex_a9_neon_vshl_ddd): Remove.
585 (cortex_a9_neon_vst3_vst4): Likewise.
586 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
587
588 (cortex_a9_neon_bit_ops_q): New.
589
590 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
591 (cortex_a9_neon_int_2): Likewise.
592 (cortex_a9_neon_int_3): Likewise.
593 (cortex_a9_neon_int_4): Likewise.
594 (cortex_a9_neon_int_5): Likewise.
595 (cortex_a9_neon_vqneg_vqabs): Likewise.
596 (cortex_a9_neon_vmov): Likewise.
597 (cortex_a9_neon_vaba): Likewise.
598 (cortex_a9_neon_vaba_qqq): Likewise.
599 (cortex_a9_neon_shift_1): Likewise.
600 (cortex_a9_neon_shift_2): Likewise.
601 (cortex_a9_neon_shift_3): Likewise.
602 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
603 (cortex_a9_neon_vsra_vrsra): Likewise.
604 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
605 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
606 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
607 Likewise.
608 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
609 (cortex_a9_neon_mla_qqq_8_16): Likewise.
610 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
611 Likewise.
612 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
613 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
614 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
615 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
616 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
617 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
618 (cortex_a9_neon_fp_vsum): Likewise.
619 (cortex_a9_neon_fp_vmul_ddd): Likewise.
620 (cortex_a9_neon_fp_vmul_qqd): Likewise.
621 (cortex_a9_neon_fp_vmla_ddd): Likewise.
622 (cortex_a9_neon_fp_vmla_qqq): Likewise.
623 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
624 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
625 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
626 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
627 (cortex_a9_neon_bp_simple): Likewise.
628 (cortex_a9_neon_bp_2cycle): Likewise.
629 (cortex_a9_neon_bp_3cycle): Likewise.
630 (cortex_a9_neon_ldr): Likewise.
631 (cortex_a9_neon_str): Likewise.
632 (cortex_a9_neon_vld1_1_2_regs): Likewise.
633 (cortex_a9_neon_vld1_3_4_regs): Likewise.
634 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
635 (cortex_a9_neon_vld2_4_regs): Likewise.
636 (cortex_a9_neon_vld3_vld4): Likewise.
637 (cortex_a9_neon_vld1_vld2_lane): Likewise.
638 (cortex_a9_neon_vld3_vld4_lane): Likewise.
639 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
640 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
641 (cortex_a9_neon_vst1_3_4_regs): Likewise.
642 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
643 (cortex_a9_neon_vst1_vst2_lane): Likewise.
644 (cortex_a9_neon_vst3_vst4_lane): Likewise.
645 (cortex_a9_neon_mcr): Likewise.
646 (cortex_a9_neon_mcr_2_mcrr): Likewise.
647 (cortex_a9_neon_mrc): Likewise.
648 (cortex_a9_neon_mrrc): Likewise.
649
9deda8cb
JG
6502013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
651
652 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
653
654 (cortex_a8_neon_vshl_ddd): Remove.
655 (cortex_a8_neon_vst3_vst4): Likewise.
656 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
657
658 (cortex_a8_neon_bit_ops_q): New.
659
660 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
661 (cortex_a8_neon_int_2): Likewise..
662 (cortex_a8_neon_int_3): Likewise.
663 (cortex_a8_neon_int_5): Likewise.
664 (cortex_a8_neon_vqneg_vqabs): Likewise.
665 (cortex_a8_neon_int_4): Likewise.
666 (cortex_a8_neon_vaba): Likewise.
667 (cortex_a8_neon_vaba_qqq): Likewise.
668 (cortex_a8_neon_shift_1): Likewise.
669 (cortex_a8_neon_shift_2): Likewise.
670 (cortex_a8_neon_shift_3): Likewise.
671 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
672 (cortex_a8_neon_vsra_vrsra): Likewise.
673 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
674 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
675 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
676 Likewise.
677 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
678 (cortex_a8_neon_mla_qqq_8_16): Likewise.
679 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
680 Likewise.
681 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
682 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
683 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
684 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
685 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
686 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
687 (cortex_a8_neon_fp_vsum): Likewise.
688 (cortex_a8_neon_fp_vmul_ddd): Likewise.
689 (cortex_a8_neon_fp_vmul_qqd): Likewise.
690 (cortex_a8_neon_fp_vmla_ddd): Likewise.
691 (cortex_a8_neon_fp_vmla_qqq): Likewise.
692 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
693 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
694 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
695 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
696 (cortex_a8_neon_bp_simple): Likewise.
697 (cortex_a8_neon_bp_2cycle): Likewise.
698 (cortex_a8_neon_bp_3cycle): Likewise.
699 (cortex_a8_neon_ldr): Likewise.
700 (cortex_a8_neon_str): Likewise.
701 (cortex_a8_neon_vld1_1_2_regs): Likewise.
702 (cortex_a8_neon_vld1_3_4_regs): Likewise.
703 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
704 (cortex_a8_neon_vld2_4_regs): Likewise.
705 (cortex_a8_neon_vld3_vld4): Likewise.
706 (cortex_a8_neon_vld1_vld2_lane): Likewise.
707 (cortex_a8_neon_vld3_vld4_lane): Likewise.
708 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
709 (cortex_a8_neon_vst1_3_4_regs): Likewise.
710 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
711 (cortex_a8_neon_vst1_vst2_lane): Likewise.
712 (cortex_a8_neon_vst3_vst4_lane): Likewise.
713 (cortex_a8_neon_mcr): Likewise.
714 (cortex_a8_neon_mcr_2_mcrr): Likewise.
715 (cortex_a8_neon_mrc): Likewise.
716 (cortex_a8_neon_mrrc): Likewise.
717
0f686aa9
JG
7182013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
719
720 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
721 (fp): New.
722 * config/aarch64/aarch64-simd.md (neon_type): Remove.
723 (aarch64_simd_dup<mode>): Add "type" attribute.
724 (aarch64_dup_lane<mode>): Likewise.
725 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
726 (*aarch64_simd_mov<mode>): Likewise.
727 (aarch64_simd_mov_from_<mode>low): Likewise.
728 (aarch64_simd_mov_from_<mode>high): Likewise.
729 (orn<mode>3): Likewise.
730 (bic<mode>3): Likewise.
731 (add<mode>3): Likewise.
732 (sub<mode>3): Likewise.
733 (mul<mode>3): Likewise.
734 (*aarch64_mul3_elt<mode>): Likewise.
735 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
736 (*aarch64_mul3_elt_to_128df): Likewise.
737 (*aarch64_mul3_elt_to_64v2df): Likewise.
738 (neg<mode>2): Likewise.
739 (abs<mode>2): Likewise.
740 (abd<mode>_3): Likewise.
741 (aba<mode>_3): Likewise.
742 (fabd<mode>_3): Likewise.
743 (*fabd_scalar<mode>3): Likewise.
744 (and<mode>3): Likewise.
745 (ior<mode>3): Likewise.
746 (xor<mode>3): Likewise.
747 (one_cmpl<mode>2): Likewise.
748 (aarch64_simd_vec_set<mode>): Likewise.
749 (aarch64_simd_lshr<mode>): Likewise.
750 (aarch64_simd_ashr<mode>): Likewise.
751 (aarch64_simd_imm_shl<mode>): Likewise.
752 (aarch64_simd_reg_sshl<mode): Likewise.
753 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
754 (aarch64_simd_reg_shl<mode>_signed): Likewise.
755 (aarch64_simd_vec_setv2di): Likewise.
756 (aarch64_simd_vec_set<mode>): Likewise.
757 (aarch64_mla<mode>): Likewise.
758 (*aarch64_mla_elt<mode>): Likewise.
759 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
760 (aarch64_mls<mode>): Likewise.
761 (*aarch64_mls_elt<mode>): Likewise.
762 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
763 (<su><maxmin><mode>3): Likewise.
764 (move_lo_quad_<mode>): Likewise.
765 (aarch64_simd_move_hi_quad_<mode>): Likewise.
766 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
767 (vec_pack_trunc_<mode>): Likewise.
768 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
769 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
770 (*aarch64_<su>mlal_lo<mode>): Likewise.
771 (*aarch64_<su>mlal_hi<mode>): Likewise.
772 (*aarch64_<su>mlsl_lo<mode>): Likewise.
773 (*aarch64_<su>mlsl_hi<mode>): Likewise.
774 (*aarch64_<su>mlal<mode>): Likewise.
775 (*aarch64_<su>mlsl<mode>): Likewise.
776 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
777 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
778 (add<mode>3): Likewise.
779 (sub<mode>3): Likewise.
780 (mul<mode>3): Likewise.
781 (div<mode>3): Likewise.
782 (neg<mode>2): Likewise.
783 (abs<mode>2): Likewise.
784 (fma<mode>4): Likewise.
785 (*aarch64_fma4_elt<mode>): Likewise.
786 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
787 (*aarch64_fma4_elt_to_128df): Likewise.
788 (*aarch64_fma4_elt_to_64v2df): Likewise.
789 (fnma<mode>4): Likewise.
790 (*aarch64_fnma4_elt<mode>): Likewise.
791 (*aarch64_fnma4_elt_<vswap_width_name><mode>
792 (*aarch64_fnma4_elt_to_128df): Likewise.
793 (*aarch64_fnma4_elt_to_64v2df): Likewise.
794 (<frint_pattern><mode>2): Likewise.
795 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
796 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
797 (vec_unpacks_lo_v4sf): Likewise.
798 (aarch64_float_extend_lo_v2df): Likewise.
799 (vec_unpacks_hi_v4sf): Likewise.
800 (aarch64_float_truncate_lo_v2sf): Likewise.
801 (aarch64_float_truncate_hi_v4sf): Likewise.
802 (aarch64_vmls<mode>): Likewise.
803 (<su><maxmin><mode>3): Likewise.
804 (<maxmin_uns><mode>3): Likewise.
805 (reduc_<sur>plus_<mode>): Likewise.
806 (reduc_<sur>plus_v2di): Likewise.
807 (reduc_<sur>plus_v2si): Likewise.
808 (reduc_<sur>plus_<mode>): Likewise.
809 (aarch64_addpv4sf): Likewise.
810 (clz<mode>2): Likewise.
811 (reduc_<maxmin_uns>_<mode>): Likewise.
812 (reduc_<maxmin_uns>_v2di): Likewise.
813 (reduc_<maxmin_uns>_v2si): Likewise.
814 (reduc_<maxmin_uns>_<mode>): Likewise.
815 (reduc_<maxmin_uns>_v4sf): Likewise.
816 (aarch64_simd_bsl<mode>_internal): Likewise.
817 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
818 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
819 (aarch64_get_lane<mode>): Likewise.
820 (*aarch64_combinez<mode>): Likewise.
821 (aarch64_combine<mode>): Likewise.
822 (aarch64_simd_combine<mode>): Likewise.
823 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
824 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
825 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
826 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
827 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
828 (aarch64_<sur>h<addsub><mode>): Likewise.
829 (aarch64_<sur><addsub>hn<mode>): Likewise.
830 (aarch64_<sur><addsub>hn2<mode>): Likewise.
831 (aarch64_pmul<mode>): Likewise.
832 (aarch64_<su_optab><optab><mode>): Likewise.
833 (aarch64_<sur>qadd<mode>): Likewise.
834 (aarch64_sqmovun<mode>): Likewise.
835 (aarch64_<sur>qmovn<mode>): Likewise.
836 (aarch64_s<optab><mode>): Likewise.
837 (aarch64_sq<r>dmulh<mode>): Likewise.
838 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
839 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
840 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
841 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
842 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
843 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
844 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
845 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
846 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
847 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
848 (aarch64_sqdmull<mode>): Likewise.
849 (aarch64_sqdmull_lane<mode>_internal): Likewise.
850 (aarch64_sqdmull_n<mode>): Likewise.
851 (aarch64_sqdmull2<mode>_internal): Likewise.
852 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
853 (aarch64_sqdmull2_n<mode>_internal): Likewise.
854 (aarch64_<sur>shl<mode>): Likewise.
855 (aarch64_<sur>q<r>shl<mode>
856 (aarch64_<sur>shll_n<mode>): Likewise.
857 (aarch64_<sur>shll2_n<mode>): Likewise.
858 (aarch64_<sur>shr_n<mode>): Likewise.
859 (aarch64_<sur>sra_n<mode>): Likewise.
860 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
861 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
862 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
863 (aarch64_cm<optab><mode>): Likewise.
864 (aarch64_cm<optab>di): Likewise.
865 (aarch64_cm<optab><mode>): Likewise.
866 (aarch64_cm<optab>di): Likewise.
867 (aarch64_cmtst<mode>): Likewise.
868 (aarch64_cmtstdi): Likewise.
869 (aarch64_cm<optab><mode>): Likewise.
870 (*aarch64_fac<optab><mode>): Likewise.
871 (aarch64_addp<mode>): Likewise.
872 (aarch64_addpdi): Likewise.
873 (sqrt<mode>2): Likewise.
874 (vec_load_lanesoi<mode>): Likewise.
875 (vec_store_lanesoi<mode>): Likewise.
876 (vec_load_lanesci<mode>): Likewise.
877 (vec_store_lanesci<mode>): Likewise.
878 (vec_load_lanesxi<mode>): Likewise.
879 (vec_store_lanesxi<mode>): Likewise.
880 (*aarch64_mov<mode>): Likewise.
881 (aarch64_ld2<mode>_dreg): Likewise.
882 (aarch64_ld2<mode>_dreg): Likewise.
883 (aarch64_ld3<mode>_dreg): Likewise.
884 (aarch64_ld3<mode>_dreg): Likewise.
885 (aarch64_ld4<mode>_dreg): Likewise.
886 (aarch64_ld4<mode>_dreg): Likewise.
887 (aarch64_tbl1<mode>): Likewise.
888 (aarch64_tbl2v16qi): Likewise.
889 (aarch64_combinev16qi): Likewise.
890 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
891 (aarch64_st2<mode>_dreg): Likewise.
892 (aarch64_st2<mode>_dreg): Likewise.
893 (aarch64_st3<mode>_dreg): Likewise.
894 (aarch64_st3<mode>_dreg): Likewise.
895 (aarch64_st4<mode>_dreg): Likewise.
896 (aarch64_st4<mode>_dreg): Likewise.
897 (*aarch64_simd_ld1r<mode>): Likewise.
898 (aarch64_frecpe<mode>): Likewise.
899 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
900 (aarch64_frecps<mode>): Likewise.
901
f7379e5e
JG
9022013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
903
904 * config/arm/iterators.md (V_elem_ch): New.
905 (q): Likewise.
906 (VQH_type): Likewise.
907 * config/arm/arm.md (is_neon_type): New.
908 (conds): Use is_neon_type.
909 (anddi3_insn): Update type attribute.
910 (xordi3_insn): Likewise.
911 (one_cmpldi2): Likewise.
912 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
913 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
914 (*movmisalign<mode>_neon_store): Likewise.
915 (*movmisalign<mode>_neon_load): Likewise.
916 (vec_set<mode>_internal): Likewise.
917 (vec_set<mode>_internal): Likewise.
918 (vec_setv2di_internal): Likewise.
919 (vec_extract<mode>): Likewise.
920 (vec_extract<mode>): Likewise.
921 (vec_extractv2di): Likewise.
922 (*add<mode>3_neon): Likewise.
923 (adddi3_neon): Likewise.
924 (*sub<mode>3_neon): Likewise.
925 (subdi3_neon): Likewise.
926 (fma<VCVTF:mode>4): Likewise.
927 (fma<VCVTF:mode>4_intrinsic): Likewise.
928 (*fmsub<VCVTF:mode>4): Likewise.
929 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
930 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
931 (ior<mode>3): Likewise.
932 (and<mode>3): Likewise.
933 (orn<mode>3_neon): Likewise.
934 (orndi3_neon): Likewise.
935 (bic<mode>3_neon): Likewise.
936 (bicdi3_neon): Likewise.
937 (xor<mode>3): Likewise.
938 (one_cmpl<mode>2): Likewise.
939 (abs<mode>2): Likewise.
940 (neg<mode>2): Likewise.
941 (negdi2_neon): Likewise.
942 (*umin<mode>3_neon): Likewise.
943 (*umax<mode>3_neon): Likewise.
944 (*smin<mode>3_neon): Likewise.
945 (*smax<mode>3_neon): Likewise.
946 (vashl<mode>3): Likewise.
947 (vashr<mode>3_imm): Likewise.
948 (vlshr<mode>3_imm): Likewise.
949 (ashl<mode>3_signed): Likewise.
950 (ashl<mode>3_unsigned): Likewise.
951 (neon_load_count): Likewise.
952 (ashldi3_neon_noclobber): Likewise.
953 (ashldi3_neon): Likewise.
954 (signed_shift_di3_neon): Likewise.
955 (unsigned_shift_di3_neon): Likewise.
956 (ashrdi3_neon_imm_noclobber): Likewise.
957 (lshrdi3_neon_imm_noclobber): Likewise.
958 (<shift>di3_neon): Likewise.
959 (widen_ssum<mode>3): Likewise.
960 (widen_usum<mode>3): Likewise.
961 (quad_halves_<code>v4si): Likewise.
962 (quad_halves_<code>v4sf): Likewise.
963 (quad_halves_<code>v8hi): Likewise.
964 (quad_halves_<code>v16qi): Likewise.
965 (reduc_splus_v2di): Likewise.
966 (neon_vpadd_internal<mode>): Likewise.
967 (neon_vpsmin<mode>): Likewise.
968 (neon_vpsmax<mode>): Likewise.
969 (neon_vpumin<mode>): Likewise.
970 (neon_vpumax<mode>): Likewise.
971 (*ss_add<mode>_neon): Likewise.
972 (*us_add<mode>_neon): Likewise.
973 (*ss_sub<mode>_neon): Likewise.
974 (*us_sub<mode>_neon): Likewise.
975 (neon_vadd<mode>_unspec): Likewise.
976 (neon_vaddl<mode>): Likewise.
977 (neon_vaddw<mode>): Likewise.
978 (neon_vhadd<mode>): Likewise.
979 (neon_vqadd<mode>): Likewise.
980 (neon_vaddhn<mode>): Likewise.
981 (neon_vmul<mode>): Likewise.
982 (neon_vfms<VCVTF:mode>): Likewise.
983 (neon_vmlal<mode>): Likewise.
984 (neon_vmls<mode>): Likewise.
985 (neon_vmlsl<mode>): Likewise.
986 (neon_vqdmulh<mode>): Likewise.
987 (neon_vqdmlal<mode>): Likewise.
988 (neon_vqdmlsl<mode>): Likewise.
989 (neon_vmull<mode>): Likewise.
990 (neon_vqdmull<mode>): Likewise.
991 (neon_vsub<mode>_unspec): Likewise.
992 (neon_vsubl<mode>): Likewise.
993 (neon_vsubw<mode>): Likewise.
994 (neon_vqsub<mode>): Likewise.
995 (neon_vhsub<mode>): Likewise.
996 (neon_vsubhn<mode>): Likewise.
997 (neon_vceq<mode>): Likewise.
998 (neon_vcge<mode>): Likewise.
999 (neon_vcgeu<mode>): Likewise.
1000 (neon_vcgt<mode>): Likewise.
1001 (neon_vcgtu<mode>): Likewise.
1002 (neon_vcle<mode>): Likewise.
1003 (neon_vclt<mode>): Likewise.
1004 (neon_vcage<mode>): Likewise.
1005 (neon_vcagt<mode>): Likewise.
1006 (neon_vtst<mode>): Likewise.
1007 (neon_vabd<mode>): Likewise.
1008 (neon_vabdl<mode>): Likewise.
1009 (neon_vaba<mode>): Likewise.
1010 (neon_vabal<mode>): Likewise.
1011 (neon_vmax<mode>): Likewise.
1012 (neon_vmin<mode>): Likewise.
1013 (neon_vpaddl<mode>): Likewise.
1014 (neon_vpadal<mode>): Likewise.
1015 (neon_vpmax<mode>): Likewise.
1016 (neon_vpmin<mode>): Likewise.
1017 (neon_vrecps<mode>): Likewise.
1018 (neon_vrsqrts<mode>): Likewise.
1019 (neon_vqabs<mode>): Likewise.
1020 (neon_vqneg<mode>): Likewise.
1021 (neon_vcls<mode>): Likewise.
1022 (clz<mode>2): Likewise.
1023 (popcount<mode>2): Likewise.
1024 (neon_vrecpe<mode>): Likewise.
1025 (neon_vrsqrte<mode>): Likewise.
1026 (neon_vget_lane<mode>_sext_internal): Likewise.
1027 (neon_vget_lane<mode>_zext_internal): Likewise.
1028 (neon_vdup_n<mode>): Likewise.
1029 (neon_vdup_n<mode>): Likewise.
1030 (neon_vdup_nv2di): Likewise.
1031 (neon_vdup_lane<mode>_interal): Likewise.
1032 (*neon_vswp<mode>): Likewise.
1033 (neon_vcombine<mode>): Likewise.
1034 (float<mode><V_cvtto>2): Likewise.
1035 (floatuns<mode><V_cvtto>2): Likewise.
1036 (fix_trunc<mode><V_cvtto>2): Likewise.
1037 (fixuns_trunc<mode><V_cvtto>2
1038 (neon_vcvt<mode>): Likewise.
1039 (neon_vcvt<mode>): Likewise.
1040 (neon_vcvtv4sfv4hf): Likewise.
1041 (neon_vcvtv4hfv4sf): Likewise.
1042 (neon_vcvt_n<mode>): Likewise.
1043 (neon_vcvt_n<mode>): Likewise.
1044 (neon_vmovn<mode>): Likewise.
1045 (neon_vqmovn<mode>): Likewise.
1046 (neon_vqmovun<mode>): Likewise.
1047 (neon_vmovl<mode>): Likewise.
1048 (neon_vmul_lane<mode>): Likewise.
1049 (neon_vmul_lane<mode>): Likewise.
1050 (neon_vmull_lane<mode>): Likewise.
1051 (neon_vqdmull_lane<mode>): Likewise.
1052 (neon_vqdmulh_lane<mode>): Likewise.
1053 (neon_vqdmulh_lane<mode>): Likewise.
1054 (neon_vmla_lane<mode>): Likewise.
1055 (neon_vmla_lane<mode>): Likewise.
1056 (neon_vmlal_lane<mode>): Likewise.
1057 (neon_vqdmlal_lane<mode>): Likewise.
1058 (neon_vmls_lane<mode>): Likewise.
1059 (neon_vmls_lane<mode>): Likewise.
1060 (neon_vmlsl_lane<mode>): Likewise.
1061 (neon_vqdmlsl_lane<mode>): Likewise.
1062 (neon_vext<mode>): Likewise.
1063 (neon_vrev64<mode>): Likewise.
1064 (neon_vrev32<mode>): Likewise.
1065 (neon_vrev16<mode>): Likewise.
1066 (neon_vbsl<mode>_internal): Likewise.
1067 (neon_vshl<mode>): Likewise.
1068 (neon_vqshl<mode>): Likewise.
1069 (neon_vshr_n<mode>): Likewise.
1070 (neon_vshrn_n<mode>): Likewise.
1071 (neon_vqshrn_n<mode>): Likewise.
1072 (neon_vqshrun_n<mode>): Likewise.
1073 (neon_vshl_n<mode>): Likewise.
1074 (neon_vqshl_n<mode>): Likewise.
1075 (neon_vqshlu_n<mode>): Likewise.
1076 (neon_vshll_n<mode>): Likewise.
1077 (neon_vsra_n<mode>): Likewise.
1078 (neon_vsri_n<mode>): Likewise.
1079 (neon_vsli_n<mode>): Likewise.
1080 (neon_vtbl1v8qi): Likewise.
1081 (neon_vtbl2v8qi): Likewise.
1082 (neon_vtbl3v8qi): Likewise.
1083 (neon_vtbl4v8qi): Likewise.
1084 (neon_vtbl1v16qi): Likewise.
1085 (neon_vtbl2v16qi): Likewise.
1086 (neon_vcombinev16qi): Likewise.
1087 (neon_vtbx1v8qi): Likewise.
1088 (neon_vtbx2v8qi): Likewise.
1089 (neon_vtbx3v8qi): Likewise.
1090 (neon_vtbx4v8qi): Likewise.
1091 (*neon_vtrn<mode>_insn): Likewise.
1092 (*neon_vzip<mode>_insn): Likewise.
1093 (*neon_vuzp<mode>_insn): Likewise.
1094 (neon_vld1<mode>): Likewise.
1095 (neon_vld1_lane<mode>): Likewise.
1096 (neon_vld1_lane<mode>): Likewise.
1097 (neon_vld1_dup<mode>): Likewise.
1098 (neon_vld1_dup<mode>): Likewise.
1099 (neon_vld1_dupv2di): Likewise.
1100 (neon_vst1<mode>): Likewise.
1101 (neon_vst1_lane<mode>): Likewise.
1102 (neon_vst1_lane<mode>): Likewise.
1103 (neon_vld2<mode>): Likewise.
1104 (neon_vld2<mode>): Likewise.
1105 (neon_vld2_lane<mode>): Likewise.
1106 (neon_vld2_lane<mode>): Likewise.
1107 (neon_vld2_dup<mode>): Likewise.
1108 (neon_vst2<mode>): Likewise.
1109 (neon_vst2<mode>): Likewise.
1110 (neon_vst2_lane<mode>): Likewise.
1111 (neon_vst2_lane<mode>): Likewise.
1112 (neon_vld3<mode>): Likewise.
1113 (neon_vld3qa<mode>): Likewise.
1114 (neon_vld3qb<mode>): Likewise.
1115 (neon_vld3_lane<mode>): Likewise.
1116 (neon_vld3_lane<mode>): Likewise.
1117 (neon_vld3_dup<mode>): Likewise.
1118 (neon_vst3<mode>): Likewise.
1119 (neon_vst3qa<mode>): Likewise.
1120 (neon_vst3qb<mode>): Likewise.
1121 (neon_vst3_lane<mode>): Likewise.
1122 (neon_vst3_lane<mode>): Likewise.
1123 (neon_vld4<mode>): Likewise.
1124 (neon_vld4qa<mode>): Likewise.
1125 (neon_vld4qb<mode>): Likewise.
1126 (neon_vld4_lane<mode>): Likewise.
1127 (neon_vld4_lane<mode>): Likewise.
1128 (neon_vld4_dup<mode>): Likewise.
1129 (neon_vst4<mode>): Likewise.
1130 (neon_vst4qa<mode>): Likewise.
1131 (neon_vst4qb<mode>): Likewise.
1132 (neon_vst4_lane<mode>): Likewise.
1133 (neon_vst4_lane<mode>): Likewise.
1134 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1135 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1136 (neon_vec_<US>mult_lo_<mode>): Likewise.
1137 (neon_vec_<US>mult_hi_<mode>): Likewise.
1138 (neon_vec_<US>shiftl_<mode>): Likewise.
1139 (neon_unpack<US>_<mode>): Likewise.
1140 (neon_vec_<US>mult_<mode>): Likewise.
1141 (vec_pack_trunc_<mode>): Likewise.
1142 (neon_vec_pack_trunc_<mode>): Likewise.
1143 (neon_vabd<mode>_2): Likewise.
1144 (neon_vabd<mode>_3): Likewise.
1145
a9e66678
JG
11462013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1147
1148 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1149 (load_pair): Update type attribute.
1150 (store_pair): Update type attribute.
1151 * config/aarch64/iterators.md (q): New.
1152
20445ed6
JG
11532013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1154
1155 * config/arm/types.md: Add new types for Neon insns.
1156
afb4ac68
AI
11572013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1158 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1159 Sergey Lega <sergey.s.lega@intel.com>
1160 Anna Tikhonova <anna.tikhonova@intel.com>
1161 Ilya Tocar <ilya.tocar@intel.com>
1162 Andrey Turetskiy <andrey.turetskiy@intel.com>
1163 Ilya Verbin <ilya.verbin@intel.com>
1164 Kirill Yukhin <kirill.yukhin@intel.com>
1165 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1166
1167 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1168 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1169 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1170 (rcp14<mode>): New.
1171 (srcp14<mode>): Ditto.
1172 (rsqrt14<mode>): Ditto.
1173 (rsqrt14<mode>): Ditto.
1174 (avx512f_vmscalef<mode>): Ditto.
1175 (avx512f_scalef<mode>): Ditto.
1176 (avx512f_getexp<mode>): Ditto.
1177 (avx512f_sgetexp<mode>): Ditto.
1178 (avx512f_fixupimm<mode>): Ditto.
1179 (avx512f_sfixupimm<mode>): Ditto.
1180 (avx512f_rndscale<mode>): Ditto.
1181 (*avx512er_exp2<mode>): Ditto.
1182 (*avx512er_rcp28<mode>): Ditto.
1183 (avx512er_rsqrt28<mode>): Ditto.
1184 (avx512f_getmant<mode>): Ditto.
1185 (avx512f_getmant<mode>): Ditto.
1186 (avx512f_rndscale<mode>): Fix formatting.
1187
a1b499a3
JL
11882013-10-15 Martin Jambor <mjambor@suse.cz>
1189
1190 * ipa-utils.h (ipa_edge_within_scc): Declare.
1191 * ipa-cp.c (edge_within_scc): Moved...
1192 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1193
2e2206fa
AI
11942013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1195 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1196 Sergey Lega <sergey.s.lega@intel.com>
1197 Anna Tikhonova <anna.tikhonova@intel.com>
1198 Ilya Tocar <ilya.tocar@intel.com>
1199 Andrey Turetskiy <andrey.turetskiy@intel.com>
1200 Ilya Verbin <ilya.verbin@intel.com>
1201 Kirill Yukhin <kirill.yukhin@intel.com>
1202 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1203
1204 * config/i386/predicates.md (const_8_to_15_operand): New.
1205 (const_16_to_31_operand): Ditto.
1206 * config/i386/sse.md (V8FI): New.
1207 (V16FI): Ditto.
1208 (reduc_splus_v8df): Ditto.
1209 (reduc_splus_v16sf): Ditto.
1210 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1211 (vec_extract_hi_<mode>): Ditto.
1212 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1213 (vec_set_lo_<mode>): Ditto.
1214 (vec_set_hi_<mode>): Ditto.
1215 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1216 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1217 (avx512f_pshufd_1): Ditto.
1218 (avx512f_broadcast<mode>): Ditto.
1219 (avx512f_broadcast<mode>): Ditto.
1220 (define_split): Split vec_extract_lo into move.
1221 (ssequartermode): Ditto.
1222 (ssedoublemode): Extened with wider modes.
1223 (vec_extract_lo_<mode>): Ditto.
1224
0fe65b75
AI
12252013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1226 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1227 Sergey Lega <sergey.s.lega@intel.com>
1228 Anna Tikhonova <anna.tikhonova@intel.com>
1229 Ilya Tocar <ilya.tocar@intel.com>
1230 Andrey Turetskiy <andrey.turetskiy@intel.com>
1231 Ilya Verbin <ilya.verbin@intel.com>
1232 Kirill Yukhin <kirill.yukhin@intel.com>
1233 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1234
1235 * config/i386/predicates.md (register_or_constm1_operand): New.
1236 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1237 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1238 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1239 UNSPEC_SCATTER_PREFETCH
1240 (VI48_512): New.
1241 (avx512f_ucmp<mode>3): Ditto.
1242 (avx512f_vternlog<mode>): Ditto.
1243 (avx512f_align<mode>): Ditto.
1244 (<shift_insn><mode>3): Ditto.
1245 (avx512f_<rotate>v<mode>): Ditto.
1246 (avx512f_<rotate><mode>): Ditto.
1247 (avx512f_eq<mode>3): Ditto.
1248 (avx512f_eq<mode>3_1): Ditto.
1249 (avx512f_gt<mode>3): Ditto.
1250 (avx512f_testm<mode>3): Ditto.
1251 (avx512f_testnm<mode>3): Ditto.
1252 (avx512pf_gatherpf<mode>): Ditto.
1253 (*avx512pf_gatherpf<mode>_mask): Ditto.
1254 (*avx512pf_gatherpf<mode>): Ditto.
1255 (avx512pf_scatterpf<mode>): Ditto.
1256 (*avx512pf_scatterpf<mode>_mask): Ditto.
1257 (*avx512pf_scatterpf<mode>): Ditto.
1258 (avx512f_vec_dup_gpr<mode>): Ditto.
1259 (clz<mode>2): Ditto.
1260 (conflict<mode>): Ditto.
1261 (REDUC_SMINMAX_MODE): Extened with wider modes.
1262 (reduc_<code>_<mode>): Ditto.
1263 (vlshr<mode>3): Ditto.
1264 (vashl<mode>3): Ditto.
1265
ab931c71
AI
12662013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1267 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1268 Sergey Lega <sergey.s.lega@intel.com>
1269 Anna Tikhonova <anna.tikhonova@intel.com>
1270 Ilya Tocar <ilya.tocar@intel.com>
1271 Andrey Turetskiy <andrey.turetskiy@intel.com>
1272 Ilya Verbin <ilya.verbin@intel.com>
1273 Kirill Yukhin <kirill.yukhin@intel.com>
1274 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1275
1276 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1277 UNSPEC_SCATTER.
1278 (VI48F_512): New.
1279 (avx512fmaskmode): Ditto.
1280 (bcstscalarsuff): Ditto.
1281 (avx512f_blendm<mode>): Ditto.
1282 (cmp_imm_predicate): Ditto.
1283 (avx512f_cmp<mode>3): Ditto.
1284 (avx512f_vec_dup<mode>): Ditto.
1285 (avx512f_vec_dup_mem<mode>): Ditto.
1286 (avx512f_vpermi2var<mode>3): Ditto.
1287 (avx512f_vpermt2var<mode>3): Ditto.
1288 (vec_init<mode>): Ditto.
1289 (avx512f_gathersi<mode>): Ditto.
1290 (*avx512f_gathersi<mode>): Ditto.
1291 (*avx512f_gathersi<mode>_2): Ditto.
1292 (avx512f_gatherdi<mode>): Ditto.
1293 (*avx512f_gatherdi<mode>): Ditto.
1294 (*avx512f_gatherdi<mode>_2): Ditto.
1295 (avx512f_scattersi<mode>): Ditto.
1296 (*avx512f_scattersi<mode>): Ditto.
1297 (avx512f_scatterdi<mode>): Ditto.
1298 (*avx512f_scatterdi<mode>): Ditto.
1299 (sseintprefix): Extened with wider modes.
1300 (VEC_GATHER_IDXSI): Ditto.
1301 (VEC_GATHER_IDXDI): Ditto.
1302 (VEC_GATHER_SRCDI): Ditto.
1303
c9acb877
MGD
13042013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1305 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1306
1307 * config/arm/t-aprofile: New file.
1308 * config.gcc: Handle --with-multilib-list option.
1309
ecbda484
BS
13102013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1311
6f1abb55
UB
1312 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
1313 the input for r2.
ecbda484 1314
24f161fd
RB
13152013-10-15 Richard Biener <rguenther@suse.de>
1316
1317 * tree-loop-distribution.c (build_empty_rdg): Inline into
1318 single user.
1319 (rdg_flag_vertex): Inline into single user.
1320 (rdg_flag_vertex_and_dependent): Likewise.
1321 (build_rdg_partition_for_vertex): Remove processed bitmap.
1322 (rdg_build_partitions): Simplify.
1323
5de989ed
RB
13242013-10-15 Richard Biener <rguenther@suse.de>
1325
1326 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1327 Restructure forwarding through conversions and copies to
1328 avoid performing copy-propagation the wrong way. Adjust
1329 recursion invocations.
1330 (forward_propagate_addr_expr): Add argument stating if we
1331 are recursing from a single-use.
1332 (ssa_forward_propagate_and_combine): Adjust.
1333
47e0da37
DM
13342013-10-14 David Malcolm <dmalcolm@redhat.com>
1335
1336 * dumpfile.h (gcc::dump_manager): New class, to hold state
1337 relating to dumpfile management.
1338 (get_dump_file_name): Remove in favor of method of dump_manager.
1339 (dump_initialized_p): Likewise.
1340 (dump_start): Likewise.
1341 (dump_finish): Likewise.
1342 (dump_switch_p): Likewise.
1343 (dump_register): Likewise.
1344 (get_dump_file_info): Likewise.
1345 * context.c (gcc::context::context): Construct the dump_manager
1346 instance.
1347 * context.h (gcc::context::get_dumps): New.
1348 (gcc::context::m_dumps): New.
1349 * coverage.c (coverage_init): Port to dump_manager API.
6f1abb55 1350 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
47e0da37
DM
1351 (extra_dump_files_in_use): Likewise.
1352 (extra_dump_files_alloced): Likewise.
1353 (gcc::dump_manager::dump_manager): New.
1354 (dump_register): Convert to...
1355 (gcc::dump_manager::dump_register): ...method, replacing
1356 function-static next_dump with m_next_dump field.
1357 (get_dump_file_info): Convert to...
1358 (gcc::dump_manager::get_dump_file_info): ...method.
1359 (get_dump_file_name): Convert to...
1360 (gcc::dump_manager::get_dump_file_name): ...method.
1361 (dump_start): Convert to...
1362 (gcc::dump_manager::dump_start): ...method.
1363 (dump_finish): Convert to...
1364 (gcc::dump_manager::dump_finish): ...method.
1365 (dump_begin): Replace body with...
1366 (gcc::dump_manager::dump_begin): ...new method.
1367 (dump_phase_enabled_p): Convert to...
1368 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1369 (dump_phase_enabled_p): Convert to...
1370 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1371 (dump_initialized_p): Convert to...
1372 (gcc::dump_manager::dump_initialized_p): ...method.
1373 (dump_flag_name): Replace body with...
1374 (gcc::dump_manager::dump_flag_name): ...new method.
1375 (dump_enable_all): Convert to...
1376 (gcc::dump_manager::dump_enable_all): ...new method.
1377 (opt_info_enable_passes): Convert to...
1378 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1379 (dump_switch_p_1): Convert to...
1380 (gcc::dump_manager::dump_switch_p_1): ...new method.
1381 (dump_switch_p): Convert to...
1382 (gcc::dump_manager::dump_switch_p): ...new method.
1383 (opt_info_switch_p): Port to dump_manager API.
1384 (enable_rtl_dump_file): Likewise.
1385 * opts-global.c (handle_common_deferred_options): Port to new
1386 dump_manager API.
1387 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1388 (pass_manager::register_one_dump_file): Likewise.
1389 (pass_manager::register_pass): Likewise.
1390 (pass_init_dump_file): Likewise.
1391 (pass_fini_dump_file): Likewise.
1392 * statistics.c (statistics_early_init): Likewise.
1393
83fd5d11
RB
13942013-10-14 Richard Biener <rguenther@suse.de>
1395
1396 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1397 iterative_hash_canonical_type, gimple_canonical_type_hash,
1398 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1399 gimple_register_canonical_type, print_gimple_types_stats,
1400 free_gimple_type_tables): Move to lto/lto.c
1401 (gt-gimple.h): Do not include.
1402 * gimple.h (gimple_register_canonical_type,
1403 print_gimple_types_stats, free_gimple_type_tables): Remove.
1404 * Makefile.in (GTFILES): Remove gimple.c.
1405
a6dbd0f7
TS
14062013-10-14 Travis Snoozy <quandary@remstate.com>
1407
1408 PR target/58716
1409 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1410 scanning for msp430x targets.
1411
b5ccb9ed
EB
14122013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1413
1414 PR bootstrap/58509
1415 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1416 (registers_ok_for_ldd_peep): Move around.
1417 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1418 * config/sparc/sparc.md (widening peepholes): Use it.
1419
fd7e5084
RB
14202013-10-14 Richard Biener <rguenther@suse.de>
1421
1422 PR middle-end/58712
1423 PR middle-end/55358
1424 * gimple.c (iterative_hash_canonical_type): Make sure to
1425 record the hash into the correct hashtable slot.
1426
3246afaa
EB
14272013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1428
1429 PR rtl-optimization/58662
1430 * combine.c (try_combine): Take into account death nodes on I2 when
1431 splitting a PARALLEL of two independent SETs. Fix dump message.
1432
5d30dc5b
OE
14332013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1434
1435 PR target/51244
1436 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1437 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1438 * config/sh/t-sh (sh_treg_combine.o): New entry.
1439 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1440 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1441 (register_sh_passes): New function. Register sh_treg_combine pass.
1442 (sh_option_override): Invoke it.
1443 (sh_canonicalize_comparison): Handle op0_preserve_value.
1444 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1445 opportunities. Canonicalize branch condition.
1446 (nott): Allow only if pseudos can be created for non-SH2A.
1447
37d1c5db
L
14482013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1449
1450 PR target/58690
1451 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1452 (ix86_expand_movmem): Replace copy_addr_to_reg with
1453 ix86_copy_addr_to_reg.
1454 (ix86_expand_setmem): Likewise.
1455
b86a70ff
AM
14562013-10-12 Alexander Monakov <amonakov@ispras.ru>
1457
1458 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1459 provided by ix86_fp_compare_mode instead of CCFPUmode.
1460
6e1d5961
JG
14612013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1462
1463 * config/aarch64/arm_neon.h
1464 (vtbx<1,3>_<psu>8): Fix register constriants.
1465
ef3cfba2
JL
14662013-10-11 Jeff Law <law@redhat.com>
1467
1468 PR tree-optimization/58640
adcfd489
UB
1469 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1470 threading paths that cross over two loop entry points.
ef3cfba2 1471
6e8b7d9c
BS
14722013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1473
1474 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1475 handle vector float as well.
1476 (*vsx_le_perm_load_v4si): Likewise.
1477 (*vsx_le_perm_store_v2di): Likewise.
1478 (*vsx_le_perm_store_v4si): Likewise.
1479
f200869a
BS
14802013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1481
1482 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1483 directly to circumvent subtract from splat{31} workaround.
1484 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1485 prototype.
1486 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1487 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1488 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1489 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1490 separate big and little endian logic.
1491 (*altivec_vperm_<mode>_internal): New define_insn.
1492 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1493 separate big and little endian logic.
1494 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1495 (vec_permv16qi): Add little endian logic.
1496
8d28e3fc
MG
14972013-10-11 Marc Glisse <marc.glisse@inria.fr>
1498
1499 * doc/extend.texi (returns_nonnull): Remove arguments.
1500
3c87b77b
AI
15012013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1502 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1503 Sergey Lega <sergey.s.lega@intel.com>
1504 Anna Tikhonova <anna.tikhonova@intel.com>
1505 Ilya Tocar <ilya.tocar@intel.com>
1506 Andrey Turetskiy <andrey.turetskiy@intel.com>
1507 Ilya Verbin <ilya.verbin@intel.com>
1508 Kirill Yukhin <kirill.yukhin@intel.com>
1509 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1510
1511 * config/i386/sse.md (VI48F_256_512): New.
1512 (avx2_permvar<mode>): Change to ...
1513 (<avx2_avx512f>_permvar<mode>): This.
1514
50e60d7d
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
6f1abb55 1525 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
50e60d7d
AI
1526 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1527 * config/i386/sse.md (VI4_AVX): New.
1528 (sf2simodelower): Ditto.
1529 (sse2_cvtps2dq): Change to ...
1530 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1531
f62ce24f
AI
15322013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1533 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1534 Sergey Lega <sergey.s.lega@intel.com>
1535 Anna Tikhonova <anna.tikhonova@intel.com>
1536 Ilya Tocar <ilya.tocar@intel.com>
1537 Andrey Turetskiy <andrey.turetskiy@intel.com>
1538 Ilya Verbin <ilya.verbin@intel.com>
1539 Kirill Yukhin <kirill.yukhin@intel.com>
1540 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1541
1542 * config/i386/sse.md (V_512): New.
1543 (VI_512): Ditto.
1544 (vcond<V_512:mode><VF_512:mode>): Ditto.
1545 (vcond<V_512:mode><VI_512:mode>): Ditto.
1546 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1547
558d9f79
AI
15482013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1549 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1550 Sergey Lega <sergey.s.lega@intel.com>
1551 Anna Tikhonova <anna.tikhonova@intel.com>
1552 Ilya Tocar <ilya.tocar@intel.com>
1553 Andrey Turetskiy <andrey.turetskiy@intel.com>
1554 Ilya Verbin <ilya.verbin@intel.com>
1555 Kirill Yukhin <kirill.yukhin@intel.com>
1556 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1557
1558 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1559 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1560 (FMAMODE): Ditto.
1561 (fma<mode>4): Removed condition.
1562 (fms<mode>4): Ditto.
1563 (fnma<mode>4): Ditto.
1564 (fnms<mode>4): Ditto.
1565 (fma4i_fmadd_<mode>): Ditto.
1566 (*fma_fmadd_<mode>): Ditto.
1567 (*fma_fmsub_<mode>): Ditto.
1568 (*fma_fnmadd_<mode>): Ditto.
1569 (*fma_fnmsub_<mode>): Ditto.
1570 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1571 (*fma_fmaddsub_<mode>): Ditto.
1572 (*fma_fmsubadd_<mode>): Ditto.
1573 (*fmai_fmadd_<mode>): Ditto.
1574 (*fmai_fmsub_<mode>): Ditto.
1575 (*fmai_fnmadd_<mode>): Ditto.
1576 (*fmai_fnmsub_<mode>): Ditto.
1577
e8d08206
AI
15782013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1579 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1580 Sergey Lega <sergey.s.lega@intel.com>
1581 Anna Tikhonova <anna.tikhonova@intel.com>
1582 Ilya Tocar <ilya.tocar@intel.com>
1583 Andrey Turetskiy <andrey.turetskiy@intel.com>
1584 Ilya Verbin <ilya.verbin@intel.com>
1585 Kirill Yukhin <kirill.yukhin@intel.com>
1586 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1587
1588 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1589 (VI124_256): Changed to ...
1590 (VI124_256_48_512): This.
1591 (ssepackmode): Extended with wider modes.
1592 (<code><mode>3): Changed iterator.
1593 (*avx2_<code><mode>3): Ditto.
1594 (vec_pack_trunc_<mode>): Ditto.
1595
16821545
AI
15962013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1597 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1598 Sergey Lega <sergey.s.lega@intel.com>
1599 Anna Tikhonova <anna.tikhonova@intel.com>
1600 Ilya Tocar <ilya.tocar@intel.com>
1601 Andrey Turetskiy <andrey.turetskiy@intel.com>
1602 Ilya Verbin <ilya.verbin@intel.com>
1603 Kirill Yukhin <kirill.yukhin@intel.com>
1604 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1605
1606 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1607 (VI8F_256_512): Ditto.
1608 (abs<mode>2): Changed iterator.
1609 (avx2_perm<mode>): Changed to ...
1610 (<avx2_avx512f>_perm<mode>): This.
1611 (avx2_perm<mode>_1): Changed to ...
1612 (<avx2_avx512f>_perm<mode>_1): This.
1613
5348cff8
AI
16142013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1615 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1616 Sergey Lega <sergey.s.lega@intel.com>
1617 Anna Tikhonova <anna.tikhonova@intel.com>
1618 Ilya Tocar <ilya.tocar@intel.com>
1619 Andrey Turetskiy <andrey.turetskiy@intel.com>
1620 Ilya Verbin <ilya.verbin@intel.com>
1621 Kirill Yukhin <kirill.yukhin@intel.com>
1622 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1623
1624 * config/i386/sse.md (VI48_AVX512F): New.
1625 (VI48_AVX2): Changed to ...
1626 (VI48_AVX2_48_AVX512F): This.
1627 (avx2_ashrv<mode>): Changed to ...
1628 (<avx2_avx512f>_ashrv<mode>): This.
1629 (avx2_<shift_insn>v<mode>): Changed to ...
1630 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1631
f5f41d88
AI
16322013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1633 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1634 Sergey Lega <sergey.s.lega@intel.com>
1635 Anna Tikhonova <anna.tikhonova@intel.com>
1636 Ilya Tocar <ilya.tocar@intel.com>
1637 Andrey Turetskiy <andrey.turetskiy@intel.com>
1638 Ilya Verbin <ilya.verbin@intel.com>
1639 Kirill Yukhin <kirill.yukhin@intel.com>
1640 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1641
1642 * config/i386/sse.md (VI4_AVX512F): New.
1643 (VI8_AVX2_AVX512F): Ditto.
1644 (mul<mode>3): Extended with wider modes.
1645 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1646 (mul<mode>3): Ditto.
1647 (vec_widen_<s>mult_odd_<mode>): Ditto.
1648
3bdf6340
AI
16492013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1650 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1651 Sergey Lega <sergey.s.lega@intel.com>
1652 Anna Tikhonova <anna.tikhonova@intel.com>
1653 Ilya Tocar <ilya.tocar@intel.com>
1654 Andrey Turetskiy <andrey.turetskiy@intel.com>
1655 Ilya Verbin <ilya.verbin@intel.com>
1656 Kirill Yukhin <kirill.yukhin@intel.com>
1657 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1658
1659 * config/i386/sse.md (VI2_AVX512F): New.
1660 (VI124_AVX512F): Ditto.
1661 (sseunpackmode): Extended with wider modes.
1662 (sseunpackfltmode): Ditto.
1663 (vec_unpacks_float_hi_<mode>): Ditto.
1664 (vec_unpacks_float_lo_<mode>): Ditto.
1665 (vec_unpacku_float_hi_<mode>): Ditto.
1666 (vec_unpacku_float_lo_<mode>): Ditto.
1667 (vec_unpacks_lo_<mode>): Ditto.
1668 (vec_unpacks_hi_<mode>): Ditto.
1669 (vec_unpacku_lo_<mode>): Ditto.
1670 (vec_unpacku_hi_<mode>): Ditto.
1671
67f783cb
AI
16722013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1673 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1674 Sergey Lega <sergey.s.lega@intel.com>
1675 Anna Tikhonova <anna.tikhonova@intel.com>
1676 Ilya Tocar <ilya.tocar@intel.com>
1677 Andrey Turetskiy <andrey.turetskiy@intel.com>
1678 Ilya Verbin <ilya.verbin@intel.com>
1679 Kirill Yukhin <kirill.yukhin@intel.com>
1680 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1681
1682 * config/i386/i386.md (multdiv): New.
1683 (multdiv_mnemonic): Ditto.
1684 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1685 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1686 (<sse>_vmdiv<mode>3): Removed.
1687
ec5e777c
AI
16882013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1689 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1690 Sergey Lega <sergey.s.lega@intel.com>
1691 Anna Tikhonova <anna.tikhonova@intel.com>
1692 Ilya Tocar <ilya.tocar@intel.com>
1693 Andrey Turetskiy <andrey.turetskiy@intel.com>
1694 Ilya Verbin <ilya.verbin@intel.com>
1695 Kirill Yukhin <kirill.yukhin@intel.com>
1696 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1697
1698 * config/i386/sse.md (V): Extended with wider modes.
1699 (VF2): Ditto.
1700 (ssehalfvecmode): Ditto.
1701 (i128): Ditto.
1702 (ssepackfltmode): Ditto.
1703 (avx_vec_concat<mode>): Ditto.
1704 (V_256_512): New iterator.
1705 (VF2_512_256): Ditto.
1706 (si2dfmode): New attribute.
1707 (si2dfmodelower): Ditto.
1708 (sf2dfmode): Ditto.
1709 (concat_tg_mode): Ditto.
1710 (floatv4siv4df2): Changed to ...
1711 (float<si2dfmodelower><mode>2): This.
1712 (avx_cvtps2pd256): Changed to ...
1713 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1714 (vec_pack_trunc_v4df): Changed to ...
1715 (vec_pack_trunc_<mode>): This.
1716 (avx_vpermil<mode>): Changed to ...
1717 (<sse2_avx_avx512f>_vpermil<mode>): This.
1718 (<fixsuffix>fix_truncv8dfv8si2): New.
1719 (vec_pack_sfix_trunc_v8df): Ditto.
1720 (avx512f_rndscale<mode>): Ditto.
1721 (avx512f_roundpd512): Ditto.
1722 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1723
a9ccbba2
AI
17242013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1725 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1726 Sergey Lega <sergey.s.lega@intel.com>
1727 Anna Tikhonova <anna.tikhonova@intel.com>
1728 Ilya Tocar <ilya.tocar@intel.com>
1729 Andrey Turetskiy <andrey.turetskiy@intel.com>
1730 Ilya Verbin <ilya.verbin@intel.com>
1731 Kirill Yukhin <kirill.yukhin@intel.com>
1732 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1733
1734 * config/i386/i386.md (any_fix): New iterator.
1735 (fixsuffix): New attribute.
1736 * config/i386/sse.md (VF1): Extened with wider modes.
1737 (VI): Ditto.
1738 (VI_AVX2): Ditto.
1739 (VI8): Ditto.
1740 (sseintvecmodelower): Ditto.
1741 (ssescalarmode): Ditto.
1742 (ssescalarnum): Ditto.
1743 (VF1_128_256): New.
1744 (ssexmmmode): Ditto.
1745 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1746 (<sse>_rcp<mode>2): Change iterator.
1747 (rsqrt<mode>2): Ditto.
1748 (<sse>_rsqrt<mode>2): Ditto.
1749 (avx2_vec_dup<mode>): Ditto.
1750 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1751 (round<mode>2_sfix): Ditto.
1752 (avx2_pbroadcast<mode>): Ditto.
1753 (*andnot<mode>3): Handle XI mode.
1754 (*<code><mode>3): Ditto.
1755 (AVXTOSSEMODE): Removed.
1756 (avx_vpermil<mode>): Changed to ...
1757 (<sse2_avx_avx512f>_vpermil<mode>): This.
1758
2b1ebb0c
AI
17592013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1760 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1761 Sergey Lega <sergey.s.lega@intel.com>
1762 Anna Tikhonova <anna.tikhonova@intel.com>
1763 Ilya Tocar <ilya.tocar@intel.com>
1764 Andrey Turetskiy <andrey.turetskiy@intel.com>
1765 Ilya Verbin <ilya.verbin@intel.com>
1766 Kirill Yukhin <kirill.yukhin@intel.com>
1767 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1768
1769 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1770 (<sse>_comi): Ditto.
1771 (<sse>_ucomi): Ditto.
1772 (sse_cvtss2siq_2): Ditto.
1773 (sse2_cvtsd2si): Ditto.
1774 (sse2_cvtsd2siq): Ditto.
1775 (sse2_cvttsd2si): Ditto.
1776 (sse2_cvttsd2siq): Ditto.
1777 (<shift_insn><mode>3): Ditto.
1778 (sse2_cvtsi2sdq): Update constraint and prefix.
1779 (sse_cvtsi2ss): Update prefix.
1780 (sse_cvtsi2ssq): Ditto.
1781
d89124ed
JJ
17822013-10-11 Jakub Jelinek <jakub@redhat.com>
1783
1784 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1785 ignore internal calls.
1786
e6ad28c3
RB
17872013-10-11 Richard Biener <rguenther@suse.de>
1788
6f1abb55
UB
1789 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
1790 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
1791 TREE_OVERFLOW is set.
e6ad28c3 1792
d1227447
TS
17932013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1794
1ac4b8e4
TS
1795 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1796
7d05cebb
TS
1797 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1798 * gimple.h: Likewise.
1799
adcfd489 1800 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 1801
1a79fb8a
TS
1802 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1803 macros.
1804
3afd2873
TS
1805 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1806
adcfd489 1807 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
1808 * configure: Regenerate.
1809
acf0174b
JJ
18102013-10-11 Jakub Jelinek <jakub@redhat.com>
1811
1812 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1813 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1814 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1815 similarly pp_right_paren.
1816 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1817 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1818 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1819 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1820 clauses.
1821 (omp_declare_simd_clauses_equal,
1822 omp_remove_redundant_declare_simd_attrs): New functions.
1823 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1824 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1825 * tree.h (OMP_LOOP_CHECK): Define.
1826 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1827 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1828 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1829 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1830 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1831 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1832 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1833 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1834 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1835 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1836 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1837 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1838 (omp_remove_redundant_declare_simd_attrs): New prototype.
1839 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
1840 GIMPLE_OMP_TEAMS): New codes.
1841 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
1842 * omp-low.c (struct omp_context): Add cancel_label and cancellable
1843 fields.
1844 (target_nesting_level): New variable.
1845 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
1846 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
1847 for collapse > 1 static schedule unless ordered.
1848 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
1849 (determine_parallel_type): Adjust get_ws_args_for caller.
1850 (install_var_field): Handle mask & 4 for double indirection.
1851 (scan_sharing_clauses): Ignore shared clause on teams construct.
1852 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
1853 (create_omp_child_function): If inside target or declare target
adcfd489 1854 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
1855 (find_combined_for): New function.
1856 (scan_omp_parallel): Handle combined loops.
1857 (scan_omp_target, scan_omp_teams): New functions.
1858 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
1859 restrictions and set ctx->cancellable for cancellable constructs.
1860 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
1861 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
1862 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 1863 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b 1864 (omp_clause_aligned_alignment): New function.
6f1abb55 1865 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
acf0174b
JJ
1866 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
1867 on teams constructs. Handle user defined reductions and new
1868 OpenMP 4.0 clauses.
1869 (lower_reduction_clauses): Don't set placeholder to address of ref
1870 if it has already the right type.
1871 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
1872 (expand_parallel_call): Use the new non-_start suffixed builtins,
1873 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
1874 and GOMP_parallel_end after the call.
1875 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
1876 (expand_omp_for_init_counts): Handle combined loops.
1877 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
1878 loops.
1879 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
1880 end of cancellable loops.
1881 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1882 Likewise. Handle collapse > 1 loops.
1883 (expand_omp_simd): Handle combined loops.
1884 (expand_omp_for): Add inner_stmt argument, adjust callers of
1885 expand_omp_for* functions, use expand_omp_for_static*chunk even
1886 for collapse > 1 unless ordered.
1887 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
1888 of cancellable sections.
1889 (expand_omp_single): Remove need_barrier variable, just rely on
1890 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
1891 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
1892 (expand_omp_atomic_load, expand_omp_atomic_store,
1893 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
1894 (expand_omp_target): New function.
1895 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
1896 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
1897 (build_omp_regions_1): Immediately close region for
1898 GF_OMP_TARGET_KIND_UPDATE.
1899 (maybe_add_implicit_barrier_cancel): New function.
1900 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
1901 cancellation.
1902 (lower_omp_single): Likewise. Add clobber after the barrier.
1903 (lower_omp_taskgroup): New function.
1904 (lower_omp_for): Handle combined loops. Adjust
1905 lower_rec_input_clauses caller. Handle cancellation.
1906 (lower_depend_clauses): New function.
1907 (lower_omp_taskreg): Lower depend clauses. Adjust
1908 lower_rec_input_clauses caller. Add clobber after the call. Handle
1909 cancellation.
1910 (lower_omp_target, lower_omp_teams): New functions.
1911 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
1912 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
1913 and GOMP_cancellation_point calls.
1914 (lower_omp): Fold stmts inside of target region.
1915 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
1916 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1917 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
1918 (BT_FN_VOID_OMPFN_PTR_UINT,
1919 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1920 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
1921 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
1922 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
1923 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
1924 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
1925 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
1926 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1927 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1928 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
1929 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1930 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
1931 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
1932 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
1933 BUILT_IN_GOMP_PARALLEL_END.
1934 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
1935 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1936 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1937 GF_OMP_FOR_KIND_DISTRIBUTE.
1938 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
1939 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
1940 (dump_gimple_omp_return): Print lhs if it has any.
1941 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
1942 gimple_omp_atomic_seq_cst_p.
1943 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
1944 and GIMPLE_OMP_TEAMS.
1945 * langhooks.c (lhd_omp_mappable_type): New function.
1946 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
1947 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
1948 hook.
1949 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
1950 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
6f1abb55 1951 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
acf0174b
JJ
1952 (struct gimplify_omp_ctx): Add combined_loop field.
1953 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
1954 on stmts inside of target region.
1955 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
1956 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
1957 ORT_TARGET and ORT_TARGET_DATA.
1958 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
1959 Handle GOVD_MAP.
1960 (omp_notice_threadprivate_variable): Complain about threadprivate
1961 variables in target region.
1962 (omp_notice_variable): Complain about vars with non-mappable type
1963 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
1964 (omp_check_private): Ignore ORT_TARGET* regions.
1965 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
1966 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
1967 (find_combined_omp_for): New function.
1968 (gimplify_omp_for): Handle gimplification of combined loops.
1969 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
1970 OMP_TEAMS.
1971 (gimplify_omp_target_update): New function.
1972 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
1973 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
1974 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
1975 (gimplify_body): If fndecl has "omp declare target" attribute, add
1976 implicit ORT_TARGET context around it.
1977 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
1978 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
1979 * tree-nested.c (convert_nonlocal_reference_stmt,
1980 convert_local_reference_stmt, convert_gimple_call): Handle
1981 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1982 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
1983 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
1984 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
1985 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
1986 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
1987 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
1988 BUILT_IN_GOMP_LOOP_END_CANCEL,
1989 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
1990 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
1991 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
1992 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
1993 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
1994 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
1995 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
1996 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
1997 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1998 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1999 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2000 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2001 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2002 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
2003 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
2004 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2005 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
2006 gimple_build_omp_teams): New functions.
2007 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
2008 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
2009 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
2010 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2011 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
2012 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
2013 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
2014 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
2015 GF_OMP_ATOMIC_SEQ_CST): New.
2016 (gimple_build_omp_taskgroup, gimple_build_omp_target,
2017 gimple_build_omp_teams): New prototypes.
2018 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
2019 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2020 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
2021 GIMPLE_OMP_SINGLE as end of range.
2022 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
2023 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
2024 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
2025 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
2026 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
2027 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
2028 gimple_omp_target_kind, gimple_omp_target_set_kind,
2029 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
2030 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
2031 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
2032 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
2033 gimple_omp_teams_set_clauses): New inlines.
2034 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
2035 and GIMPLE_OMP_TASKGROUP.
adcfd489 2036 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
2037 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
2038 enum omp_clause_proc_bind_kind): New.
2039 (union omp_clause_subcode): Add depend_kind, map_kind and
2040 proc_bind_kind fields.
2041 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
2042 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2043 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
2044 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
2045 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2046
67fa7880
TJ
20472013-10-10 Teresa Johnson <tejohnson@google.com>
2048
2049 * predict.c (tree_estimate_probability): Add new parameter
2050 for estimate_bb_frequencies.
2051 (estimate_bb_frequencies): Add new parameter to force estimation.
2052 (rebuild_frequencies): When max frequency in function is small,
2053 recompute counts from frequencies.
2054 * predict.h (estimate_bb_frequencies): New parameter.
2055
b591a8b7
DM
20562013-10-10 David Malcolm <dmalcolm@redhat.com>
2057
2058 * ipa-inline.c (ipa_inline): Fix leak of "order" when
2059 optimizations are disabled.
2060
782f0db2
DM
20612013-10-10 David Malcolm <dmalcolm@redhat.com>
2062
2063 * coverage.c (coverage_finish): Fix leak of da_file_name.
2064
13ef00fa
JH
20652013-10-10 Jan Hubicka <jh@suse.cz>
2066
2067 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
2068 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
2069 Bobcat and generic.
2070
a1d50386
JJ
20712013-10-10 Jakub Jelinek <jakub@redhat.com>
2072
2073 PR middle-end/58670
2074 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
2075 if any labels are in FALLTHRU_BB, use a special label emitted
2076 immediately after the asm goto insn rather than label_rtx
2077 of the LABEL_DECL.
2078 (expand_asm_stmt): Adjust caller.
2079 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2080 edge if the last insn in predecessor is a jump with single successor,
2081 but it isn't simplejump_p.
2082
e2c2fde2
RB
20832013-10-10 Richard Biener <rguenther@suse.de>
2084
2085 PR tree-optimization/58656
6f1abb55 2086 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
e2c2fde2 2087
de6a5608
AM
20882013-10-10 Andrew MacLeod <amacleod@redhat.com>
2089
adcfd489
UB
2090 * gimplify.c: Include expr.h and tm_p.h for targets with special
2091 va-arg padding requirements.
de6a5608 2092
b184c8f1
AM
20932013-10-10 Andrew MacLeod <amacleod@redhat.com>
2094
2095 * tree-flow.h: Move some prototypes to gimple.h.
2096 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2097 * gimple.h: Relocate some prototypes from tree-flow.h
2098 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2099 Move to gimplify.c.
2100 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2101 (build_va_arg_indirect_ref): Relocate and make static.
2102 (std_gimplify_va_arg_expr): Relocate here.
2103 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2104 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2105
13b72c22
AK
21062013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2107
2108 * doc/md.texi: Document the mnemonic attribute.
2109
5db40447
AK
21102013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2111
2112 PR target/57377
2113 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2114 (set_attr_alternative x ...) when searching for user defined
2115 mnemonic attribute.
2116
ed018d4b
AM
21172013-10-10 Andrew MacLeod <amacleod@redhat.com>
2118
2119 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2120
4d5b5e9f
ER
21212013-10-09 Easwaran Raman <eraman@google.com>
2122
2123 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2124 * cfgexpand.c (defer_stack_allocation): ...use here
2125 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2126
c9ef86a1
ZC
21272013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2128
2129 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2130 (operand_equal_for_value_replacement): New function, extracted from
2131 value_replacement and enhanced to catch more cases.
2132 (value_replacement): Use operand_equal_for_value_replacement.
2133
2431114f
AM
21342013-10-09 Andrew MacLeod <amacleod@redhat.com>
2135
adcfd489 2136 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2137 get_max_loop_iterations.
2138
1dd2a9a0
KT
21392013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2140
2141 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2142 Place comment above function.
2143
c1bf2a39
AM
21442013-10-09 Andrew MacLeod <amacleod@redhat.com>
2145
2146 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2147 are not related to tree-cfg.c.
2148 * tree-ssa-address.h: New file. Relocate prototypes.
2149 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2150 (addr_for_mem_ref): New. Combine call to get_address_description and
2151 return addr_for_mem_ref.
2152 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2153 * tree-ssa-live.h: Adjust prototypes.
2154 * passes.c: Include tree-ssa-live.h.
2155 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2156 * graphite.c (graphite_transform_loops): Make static.
2157 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2158 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2159 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2160 * ipa-pure-const.c (warn_function_noreturn): Make static.
2161 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2162 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2163 Relocate from tree-cfg.c
2164 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2165 static.
2166 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2167 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2168 Move to ipa-pure-const.c.
adcfd489
UB
2169 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2170 Relocate from tree-optimize.c.
c1bf2a39
AM
2171 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2172 make_pass_fixup_cfg): Move to tree-cfg.c.
2173 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2174 Relocate some prototypes.
2175 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2176 * tree-dump.c (dump_function_to_file): Remove prototype.
2177 Add tree-flow.h to the include file.
2178 * tree-dump.h: Remove prototype.
2179 * tree-parloops.h: New File. Add prototypes.
2180 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2181 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2182 from tree-ssa-loop.c.
2183 * tree-predcom.c (run_tree_predictive_commoning,
2184 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2185 Relocate here from tree-ssa-loop.c.
adcfd489 2186 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2187 ssa_name_values.release ().
2188 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2189 (ssa_name_values): Relocate from tree-flow.h.
2190 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2191 * tree-ssa-loop.c (run_tree_predictive_commoning,
2192 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2193 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2194 make_pass_graphite, pass_data_graphite_transforms,
2195 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2196 tree_parallelize_loops, pass_data_parallelize_loops,
2197 make_pass_parallelize_loops): Move to other files.
2198 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2199 moved here.
2200 * tree.h: Remove prototypes from tree-address.c.
2201
cc524fc7
AM
22022013-10-09 Andrew MacLeod <amacleod@redhat.com>
2203
2204 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2205 (struct int_tree_map): Move to tree-hasher.h
2206 (SCALE, LABEL, PERCENT): Move to gimple.h
2207 * tree-flow-inline.h: Delete. Move functions to other files.
2208 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2209 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2210 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2211 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2212 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2213 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2214 * tree-hasher.h: Don't include tree-flow.h.
2215 (struct int_tree_map): Relocate from tree-flow.h.
2216 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2217 tree-flow-inline.h and make static.
adcfd489
UB
2218 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2219 tree-flow-inline.h.
cc524fc7
AM
2220 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2221 tree-flow-inline.h and make static.
2222 * tree.h (is_global_var, may_be_aliased): Relocate from
2223 tree-flow-inline.h.
2224 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2225 * value-prof.c: No longer include tree-flow-inline.h.
2226 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2227
71343877
AM
22282013-10-09 Andrew MacLeod <amacleod@redhat.com>
2229
2230 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2231 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2232 (enum move_pos): Move to tree-ssa-loop-im.h
2233 * cfgloop.h: Move some prototypes.
2234 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2235 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2236 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2237 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2238 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2239 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2240 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2241 (enum move_pos): Relocate here.
2242 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2243 tree-ssa-loop.c.
2244 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2245 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2246 make_pass_lim): Relocate here from tree-ssa-loop.c.
2247 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2248 tree-ssa-loop.c.
2249 (loop_edge_to_cancel, unloop_loops): Make static.
2250 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2251 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2252 (tree_complete_unroll, gate_tree_complete_unroll,
2253 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2254 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2255 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2256 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2257 (stmt_invariant_in_loop_p): Remove unused function.
2258 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2259 * tree-ssa-loop-manip.h: New file. Add prototypes.
2260 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2261 (gcov_type_to_double_int): Move to cfgloop.h.
2262 (double_int_cmp, bound_index,
2263 estimate_numbers_of_iterations_loop): Make static.
2264 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2265 (max_loop_iterations): Factor out get_max_loop_iterations.
2266 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2267 cfgloop.c.
2268 * tree-ssa-loop-niter.h: New file. Add prototypes.
2269 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2270 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2271 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2272 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2273 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2274 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2275 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2276 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2277 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2278 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2279 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2280 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2281 pass_data_complete_unroll, make_pass_complete_unroll,
2282 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2283 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2284 tree-ssa-loop-ivcanon.c.
2285 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2286 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2287 tree-ssa-loop-prefetch.c.
2288 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2289 tree-ssa-loop-im.c.
2290 (get_lsm_tmp_name): Relocate and add suffix parameter.
2291 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2292 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2293 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2294 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2295 (get_estimated_loop_iterations): Factor out accessor from
71343877 2296 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2297 (get_max_loop_iterations): Factor out accessor from
2298 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2299 * loop-unroll.c (decide_unroll_constant_iterations,
2300 decide_unroll_runtime_iterations, decide_peel_simple,
2301 decide_unroll_stupid): Use new get_* accessors.
2302
826cacfe
MG
23032013-10-09 Marc Glisse <marc.glisse@inria.fr>
2304
2305 PR tree-optimization/20318
2306 * doc/extend.texi (returns_nonnull): New function attribute.
2307 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2308 attribute.
2309 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2310 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2311
378f8976
EB
23122013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2313
2314 PR middle-end/58570
2315 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2316 false if both components are bitfields.
2317
0fe04f5c
AV
23182013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2319
2320 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2321 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2322 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2323 * config/aarch64/aarch64.h
2324 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2325 * config/aarch64/aarch64-simd-builtins.def
2326 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2327
bed9bae4
AV
23282013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2329
2330 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2331
7f3d8b19
AV
23322013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2333
2334 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2335
7df625a6
AV
23362013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2337
2338 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2339 (vneg_f64): New intrinsic.
2340 (vneg_s8): Asm replaced with C.
2341 (vneg_s16): Likewise.
2342 (vneg_s32): Likewise.
2343 (vneg_s64): New intrinsic.
2344 (vnegq_f32): Asm replaced with C.
2345 (vnegq_f64): Likewise.
2346 (vnegq_s8): Likewise.
2347 (vnegq_s16): Likewise.
2348 (vnegq_s32): Likewise.
2349 (vnegq_s64): Likewise.
2350
2b86fca7
RL
23512013-10-09 Renlin Li <Renlin.Li@arm.com>
2352
2353 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2354
e179df83
AK
23552013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2356
2357 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2358 packed stack special handling.
2359 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2360 back to fixed stack slots for FPRs saved due to stdarg.
2361
74129172
AK
23622013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2363
2364 * config/s390/s390.c (s390_frame_info): Restructure function.
2365
6455a49e
AK
23662013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2367
2368 * config/s390/s390.c (struct s390_frame_layout): New field
2369 gpr_save_slots.
2370 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2371 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2372 regs_ever_clobbered to char*.
adcfd489
UB
2373 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2374 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2375 (s390_register_info): Enable FPR save slots. Move/Copy some
2376 functionality into ...
2377 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2378 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2379 function.
2380 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2381 not imply a stack frame.
2382 (s390_init_frame_layout): Remove variable clobbered_regs.
2383 (s390_update_register_info): Remove function.
2384 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2385 cannot be used for register renaming.
2386 (s390_hard_regno_scratch_ok): New function.
2387 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2388 (s390_initial_elimination_offset): Change offset calculation of
2389 the return address pointer.
adcfd489 2390 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2391 (restore_gprs): Set frame related flag.
adcfd489 2392 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2393 (s390_emit_prologue): Call s390_register_info instead of
2394 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2395 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2396 (s390_optimize_prologue): Call s390_optimize_register_info.
2397 Try to remove also FPR slot save/restore INSNs. Remove frame
2398 related flags from restore INSNs.
2399
59d96342
DD
24002013-10-08 DJ Delorie <dj@redhat.com>
2401
0dc7adad
DD
2402 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2403 (movhi): Likewise.
2404
59d96342
DD
2405 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2406 avoid conflict with the MI use of %c.
2407 * config/rl78/rl78-real.md: change %c to %C throughout.
2408 * config/rl78/rl78-virt.md: Likewise.
2409
a81169d8
JH
24102013-10-08 Jan Hubicka <jh@suse.cz>
2411
2412 * config/i386/i386.c (ix86_option_override_internal): Switch
2413 to SSE math for -ffast-math when target ISA supports SSE2.
2414
481d1b81
AM
24152013-10-08 Andrew MacLeod <amacleod@redhat.com>
2416
2417 * tree-flow.h: Remove some prototypes.
2418 * tree.h: Remove some protypes, add a couple.
2419 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2420 using_eh_for_cleanups_p): Add interface routines for front ends.
2421 * tree-eh.h: New file. Add protoptyes.
2422 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2423 (add_stmt_to_eh_lp_fn): Make static.
2424 (lower_try_finally): Use new using_eh_for_cleanups_p.
2425 * emit-rtl.c: Include tree-eh.h.
2426 * gimple.h: Include tree-eh.h.
2427
0e6a0e48
MG
24282013-10-08 Marc Glisse <marc.glisse@inria.fr>
2429
2430 PR tree-optimization/58480
2431 * tree-vrp.c (infer_nonnull_range): New function.
2432 (infer_value_range): Call infer_nonnull_range.
2433
ef6179d1
DC
24342013-10-08 Dehao Chen <dehao@google.com>
2435
2436 PR tree-optimization/58619
2437 * tree-inline.c (copy_phis_for_bb): Combine location data
2438 only if non-null.
2439
07d964d5
ZC
24402013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2441
2442 PR target/58423
2443 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2444 RTX_FRAME_RELATED_P on INSN.
2445
19e9b2a3
BS
24462013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2447
2448 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2449 (altivec_expand_vec_perm_const): Call it.
2450
0cf68694
BS
24512013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2452
2453 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2454 sequences for LE VSX loads and stores at expand time.
2455 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2456 prototype.
2457 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2458 (rs6000_gen_le_vsx_permute): New.
2459 (rs6000_gen_le_vsx_load): New.
2460 (rs6000_gen_le_vsx_store): New.
2461 (rs6000_gen_le_vsx_move): New.
2462 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2463 (*vsx_le_perm_load_v4si): New.
2464 (*vsx_le_perm_load_v8hi): New.
2465 (*vsx_le_perm_load_v16qi): New.
2466 (*vsx_le_perm_store_v2di): New.
2467 (*vsx_le_perm_store_v4si): New.
2468 (*vsx_le_perm_store_v8hi): New.
2469 (*vsx_le_perm_store_v16qi): New.
2470 (*vsx_xxpermdi2_le_<mode>): New.
2471 (*vsx_xxpermdi4_le_<mode>): New.
2472 (*vsx_xxpermdi8_le_V8HI): New.
2473 (*vsx_xxpermdi16_le_V16QI): New.
2474 (*vsx_lxvd2x2_le_<mode>): New.
2475 (*vsx_lxvd2x4_le_<mode>): New.
2476 (*vsx_lxvd2x8_le_V8HI): New.
2477 (*vsx_lxvd2x16_le_V16QI): New.
2478 (*vsx_stxvd2x2_le_<mode>): New.
2479 (*vsx_stxvd2x4_le_<mode>): New.
2480 (*vsx_stxvd2x8_le_V8HI): New.
2481 (*vsx_stxvd2x16_le_V16QI): New.
2482
9520e1eb
RL
24832013-10-07 Renlin Li <Renlin.Li@arm.com>
2484
2485 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2486
36c0bd4f
AK
24872013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2488
2489 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2490 loop to work also for 31bit ABI.
2491 Save the stack pointer for frame_size > 0.
2492
ee163e72
AK
24932013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2494
2495 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2496 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2497 constraint letters from expanders.
2498 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2499 retry count to general_operand.
2500 ("tabort"): Give operand 0 a mode.
2501 ("tabort_1"): Add mode and constraint letter for operand 0.
2502 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2503
45d99234
JL
25042013-10-04 Jeff Law <law@redhat.com>
2505
2506 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2507
adcfd489
UB
2508 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2509 out of ...
45d99234
JL
2510 (thread_across_edge): Here. Call it.
2511
7c327f7b
CC
25122013-10-04 Cary Coutant <ccoutant@google.com>
2513
2514 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2515 discarding a location list expression (or a piece of one).
7c327f7b 2516
6867e128
JH
25172013-10-03 Jan Hubicka <jh@suse.cz>
2518
65efa7e7
UB
2519 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2520 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2521 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2522
c7f36d55
JH
25232013-10-03 Jan Hubicka <jh@suse.cz>
2524
65efa7e7 2525 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2526 accumulate-outgoing-args when producing unwind info.
2527
4f0bee4c
WM
25282013-10-03 Wei Mi <wmi@google.com>
2529
2530 * lra-constraints.c (insert_move_for_subreg): New function
2531 extracted from simplify_operand_subreg.
2532 (simplify_operand_subreg): Add reload for paradoxical subreg.
2533
111c3f39
RX
25342013-10-03 Rong Xu <xur@google.com>
2535
65efa7e7
UB
2536 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2537 the candidate of builtin_expect such that we should fix the
2538 size/time estimation.
2539 (estimate_function_body_sizes): Do the acutally size/time fix-up
2540 for builtin_expect.
111c3f39 2541
942df739
RX
25422013-10-03 Rong Xu <xur@google.com>
2543
65efa7e7
UB
2544 * predict.c (tree_predict_by_opcode): Get the probability
2545 for builtin_expect from param builtin_expect_probability.
2546 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2547 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2548 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2549
2284b034
MG
25502013-10-03 Marc Glisse <marc.glisse@inria.fr>
2551
2552 PR c++/19476
2553 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2554 * calls.c (alloca_call_p): Use get_callee_fndecl.
2555 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2556 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2557 Likewise.
2558 (vrp_visit_stmt): Remove duplicated code.
2559
0609bdf2
MM
25602013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2561
2562 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2563 ceildf2, btruncdf2, instead of vsx_* name.
2564
2565 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2566 iterators to only do V2DF and V4SF here. Move the DF code to
2567 rs6000.md where it is combined with SF mode. Replace <VSv> with
2568 just 'v' since only vector operations are handled with these insns
2569 after moving the DF support to rs6000.md.
2570 (vsx_sub<mode>3): Likewise.
2571 (vsx_mul<mode>3): Likewise.
2572 (vsx_div<mode>3): Likewise.
2573 (vsx_fre<mode>2): Likewise.
2574 (vsx_neg<mode>2): Likewise.
2575 (vsx_abs<mode>2): Likewise.
2576 (vsx_nabs<mode>2): Likewise.
2577 (vsx_smax<mode>3): Likewise.
2578 (vsx_smin<mode>3): Likewise.
2579 (vsx_sqrt<mode>2): Likewise.
2580 (vsx_rsqrte<mode>2): Likewise.
2581 (vsx_fms<mode>4): Likewise.
2582 (vsx_nfma<mode>4): Likewise.
2583 (vsx_copysign<mode>3): Likewise.
2584 (vsx_btrunc<mode>2): Likewise.
2585 (vsx_floor<mode>2): Likewise.
2586 (vsx_ceil<mode>2): Likewise.
2587 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2588 (vsx_sminsf3): Likewise.
2589 (vsx_fmadf4): Likewise.
2590 (vsx_fmsdf4): Likewise.
2591 (vsx_nfmadf4): Likewise.
2592 (vsx_nfmsdf4): Likewise.
2593 (vsx_cmpdf_internal1): Likewise.
2594
2595 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2596 simpler to select whether a target has SPE or traditional floating
2597 point support in iterators.
2598 (TARGET_DF_SPE): Likewise.
2599 (TARGET_SF_FPR): Likewise.
2600 (TARGET_DF_FPR): Likewise.
2601 (TARGET_SF_INSN): Macros to say whether floating point support
2602 exists for a given operation for expanders.
2603 (TARGET_DF_INSN): Likewise.
2604
2605 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2606 combining of SF/DF mode operations, using both traditional and VSX
2607 registers.
2608 (Fvsx): Likewise.
2609 (Ff): Likewise.
2610 (Fv): Likewise.
2611 (Fs): Likewise.
2612 (Ffre): Likewise.
2613 (FFRE): Likewise.
2614 (abs<mode>2): Combine SF/DF modes using traditional floating point
2615 instructions. Add support for using the upper DF registers with
2616 VSX support, and SF registers with power8-vector support. Update
2617 expanders for operations supported by both the SPE and traditional
2618 floating point units.
2619 (abs<mode>2_fpr): Likewise.
2620 (nabs<mode>2): Likewise.
2621 (nabs<mode>2_fpr): Likewise.
2622 (neg<mode>2): Likewise.
2623 (neg<mode>2_fpr): Likewise.
2624 (add<mode>3): Likewise.
2625 (add<mode>3_fpr): Likewise.
2626 (sub<mode>3): Likewise.
2627 (sub<mode>3_fpr): Likewise.
2628 (mul<mode>3): Likewise.
2629 (mul<mode>3_fpr): Likewise.
2630 (div<mode>3): Likewise.
2631 (div<mode>3_fpr): Likewise.
2632 (sqrt<mode>3): Likewise.
2633 (sqrt<mode>3_fpr): Likewise.
2634 (fre<Fs>): Likewise.
2635 (rsqrt<mode>2): Likewise.
2636 (cmp<mode>_fpr): Likewise.
2637 (smax<mode>3): Likewise.
2638 (smin<mode>3): Likewise.
2639 (smax<mode>3_vsx): Likewise.
2640 (smin<mode>3_vsx): Likewise.
2641 (negsf2): Delete SF operations that are merged with DF.
2642 (abssf2): Likewise.
2643 (addsf3): Likewise.
2644 (subsf3): Likewise.
2645 (mulsf3): Likewise.
2646 (divsf3): Likewise.
2647 (fres): Likewise.
2648 (fmasf4_fpr): Likewise.
2649 (fmssf4_fpr): Likewise.
2650 (nfmasf4_fpr): Likewise.
2651 (nfmssf4_fpr): Likewise.
2652 (sqrtsf2): Likewise.
2653 (rsqrtsf_internal1): Likewise.
2654 (smaxsf3): Likewise.
2655 (sminsf3): Likewise.
2656 (cmpsf_internal1): Likewise.
2657 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2658 (negdf2): Delete DF operations that are merged with SF.
2659 (absdf2): Likewise.
2660 (nabsdf2): Likewise.
2661 (adddf3): Likewise.
2662 (subdf3): Likewise.
2663 (muldf3): Likewise.
2664 (divdf3): Likewise.
2665 (fred): Likewise.
2666 (rsqrtdf_internal1): Likewise.
2667 (fmadf4_fpr): Likewise.
2668 (fmsdf4_fpr): Likewise.
2669 (nfmadf4_fpr): Likewise.
2670 (nfmsdf4_fpr): Likewise.
2671 (sqrtdf2): Likewise.
2672 (smaxdf3): Likewise.
2673 (smindf3): Likewise.
2674 (cmpdf_internal1): Likewise.
2675 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2676 (btrunc<mode>2): Delete separate expander, and combine with the
2677 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2678 (btrunc<mode>2_fpr): Likewise.
2679 (ceil<mode>2): Likewise.
2680 (ceil<mode>2_fpr): Likewise.
2681 (floor<mode>2): Likewise.
2682 (floor<mode>2_fpr): Likewise.
2683 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2684 Add support for using the upper registers with VSX and
2685 power8-vector. Move insns to be closer to the define_expands. On
2686 VSX systems, prefer the traditional form of FMA over the VSX
2687 version, since the traditional form allows the target not to
2688 overlap with the inputs.
2689 (fms<mode>4_fpr): Likewise.
2690 (nfma<mode>4_fpr): Likewise.
2691 (nfms<mode>4_fpr): Likewise.
2692
5bea0c6c 26932013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2694 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2695
2696 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2697 (struct mult_cost_table): Likewise.
2698 (struct mem_cost_table): Likewise.
2699 (struct fp_cost_table): Likewise.
2700 (struct vector_cost_table): Likewise.
2701 (cpu_cost_table): Likewise.
2702 * config/arm/arm.opt (mold-rts-costs): New option.
2703 (mnew-generic-costs): Likewise.
2704 * config/arm/arm.c (generic_extra_costs): New table.
2705 (cortexa15_extra_costs): Likewise.
2706 (arm_slowmul_tune): Use NULL as new costs.
2707 (arm_fastmul_tune): Likewise.
2708 (arm_strongarm_tune): Likewise.
2709 (arm_xscale_tune): Likewise.
2710 (arm_9e_tune): Likewise.
2711 (arm_v6t2_tune): Likewise.
2712 (arm_cortex_a5_tune): Likewise.
2713 (arm_cortex_a9_tune): Likewise.
2714 (arm_v6m_tune): Likewise.
2715 (arm_fa726te_tune): Likewise.
2716 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2717 (arm_cortex_tune): Use generict_extra_costs.
2718 (shifter_op_p): New function.
2719 (arm_unspec_cost): Likewise.
2720 (LIBCALL_COST): Define.
2721 (arm_new_rtx_costs): New function.
2722 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2723 table is available. Use old costs otherwise unless mnew-generic-costs
2724 is specified.
2725 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2726 (cpu_cost_table): Declare.
2727
24c56925
MS
27282013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2729
2730 PR target/58460
2731 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2732 (*subs_mul_imm_<mode>)
2733 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2734 (*sub_<shift>_<mode>)
2735 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2736 Remove k constraint.
2737
2ab8f063
IB
27382013-10-03 Ian Bolton <ian.bolton@arm.com>
2739
2740 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2741 code.
2742 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2743
79221839
TJ
27442013-10-02 Teresa Johnson <tejohnson@google.com>
2745
2746 * predict.c (probably_never_executed): New function.
2747 (probably_never_executed_bb_p): Invoke probably_never_executed.
2748 (probably_never_executed_edge_p): Ditto.
2749 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2750 Treat profile insanities conservatively.
2751
d441afe0
JDA
27522013-10-02 John David Anglin <danglin@gcc.gnu.org>
2753
2754 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2755
80f466c4
VM
27562013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2757
2758 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2759 use it. Use smaller increase for scratch. Don't increase reject
2760 for early clobber scratch.
2761 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2762 setting eliminated regs except setting fp from hfp.
2763 (lra_eliminate): Check lra_insn_recog_data on NULL.
2764
6e228b4b
MM
27652013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2766
2767 PR target/58587
2768 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 2769 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
2770 (RS6000_CPU, power7 defaults): Likewise.
2771
11b54a5a
UB
27722013-10-02 Uros Bizjak <ubizjak@gmail.com>
2773
2774 * config/x-linux (host-linux.o): Remove header dependencies.
2775 Use $(COMPILE) and $(POSTCOMPILE).
2776 * config/t-linux-android (linux-android.o): Ditto.
2777
bbc02b69
UB
27782013-10-02 Uros Bizjak <ubizjak@gmail.com>
2779
2780 * Makefile.in (expmed.o-warn): Remove.
2781
440917de
AM
27822013-10-02 Andrew MacLeod <amacleod@redhat.com>
2783
2784 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2785 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2786
99206ca9
TJ
27872013-10-02 Teresa Johnson <tejohnson@google.com>
2788
2789 * dojump.c (do_jump_1): Divide probability between
2790 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2791
56e82b14
TT
27922013-10-02 Tom Tromey <tromey@redhat.com>
2793
2794 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2795
3d9c733e
AM
27962013-10-02 Andrew MacLeod <amacleod@redhat.com>
2797
2798 * tree-flow.h: Remove some prototypes.
2799 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2800 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2801 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2802 mark_virtual_phi_result_for_renaming): Relocate here.
2803 * tree-into-ssa.h: Add prototypes.
bbc02b69 2804 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
2805 single_pred_before_succ_order.
2806 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2807 (nonfreeing_call_p) Move to gimple.c.
2808 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2809 tree-ssa-phiopt.c.
2810 * basic-block.h (single_pred_before_succ_order): Add prototype.
2811 * gimple.c (nonfreeing_call_p): Relocate here.
2812 * gimple.h: Add prototype.
2813 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2814 * tree-ssa-dom.h: New file. Relocate prototypes here.
2815 * tree-ssa.h: Include tree-ssa-dom.h.
2816
78cedfb1
UB
28172013-10-02 Uros Bizjak <ubizjak@gmail.com>
2818
2819 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2820 Use $(COMPILE) and $(POSTCOMPILE).
2821
2822 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2823
744730a4
AM
28242013-10-02 Andrew MacLeod <amacleod@redhat.com>
2825
2826 * tree-flow.h: Remove some prototypes.
2827 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2828 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2829 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2830 propagate_tree_value*): Move from here to...
2831 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2832 propagate_tree_value*): Relocate here.
2833 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2834 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2835 * gimple-fold.c: Remove gimple-fold.h from include list.
2836 * tree-vrp.c: Remove gimple-fold.h from include list.
2837 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2838 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
2839 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
2840 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
2841 * sese.c: Add tree-ssa-propagate.h to include list.
2842
826a536d
RB
28432013-10-02 Richard Biener <rguenther@suse.de>
2844
2845 * tree-loop-distribution.c: Include tree-vectorizer.h for
2846 find_loop_location.
2847 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 2848 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
2849 (partition_alloc): Adjust.
2850 (partition_builtin_p): Likewise.
2851 (partition_has_writes): Remove.
2852 (partition_reduction_p): New function.
2853 (partition_merge_into): Likewise.
2854 (generate_code_for_partition): Commonize builtin partition
2855 handling tail.
2856 (rdg_cannot_recompute_vertex_p): Remove.
2857 (already_processed_vertex_p): Likewise.
2858 (rdg_flag_vertex): Do not set has_writes.
2859 (classify_partition): Adjust.
2860 (rdg_build_partitions): Do not set has_writes, treat all
2861 partitions as useful.
78cedfb1 2862 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
2863 (tree_loop_distribution): Report number of loops and library
2864 calls generated as opt-info.
2865
4b403ece
AM
28662013-10-02 Andrew MacLeod <amacleod@redhat.com>
2867
2868 * tree-flow.h: Include new .h files. Move prototypes.
2869 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
2870 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
2871 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
2872 * tree-pretty-print.h: Add prototypes from tree-flow.h.
2873 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
2874 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
2875 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
2876 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 2877 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
2878 tree-dfa.h.
2879 * gimple-low.h: New File. Add prototypes from tree-flow.h.
2880 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
2881 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
2882 * tree-scalar-evolution.c: Include tree.h.
2883 * sese.c: Include tree.h.
2884 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
2885 * dwarf2out.c: Include tree-dfa.h.
2886 * tree-chrec.c: Include tree.h.
2887 * tree-data-ref.c: Include tree.h.
2888
1d2151c6
YZ
28892013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
2890
2891 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
2892 Fix whitespace.
2893
441ad147
RO
28942013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2895
2896 * config/t-sol2 (sol2-c.o): Remove header dependencies.
2897 Use $(COMPILE) and $(POSTCOMPILE).
2898 (sol2-cxx.o): Likewise.
2899 (sol2-stubs.o): Likewise.
2900 (sol2.o): Likewise.
2901 * config/x-solaris (host-solaris.o): Likewise.
2902
2903 * config/sparc/t-sparc (sparc.o): Remove.
2904 (sparc-c.o): Remove header dependencies.
2905 Use $(COMPILE) and $(POSTCOMPILE).
2906 * config/sparc/x-sparc: Likewise.
2907
2deaf8b0
JR
29082013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
2909
2910 * config/arc/arc-opts.h: Add 2013 to Copyright years.
2911 * config/arc/arc700.md: Likewise.
2912 * config/arc/arc-modes.def: Likewise.
2913 * config/arc/arc-simd.h: Likewise.
2914 * config/arc/t-arc-uClibc: Likewise.
2915 * config/arc/t-arc-newlib: Likewise.
2916
f6fe771a
RL
29172013-10-02 Renlin Li <renlin.li@arm.com>
2918
78cedfb1
UB
2919 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2920 plus_constant.
f6fe771a
RL
2921 (aarch64_expand_epilogue): Likewise.
2922
0916f876
YZ
29232013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2924 Yufeng Zhang <yufeng.zhang@arm.com>
2925
2926 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
2927 declaration.
2928 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
2929 'base_in' represent a conversion and legal_cast_p_1 holds; set
2930 'base_in' with the returned value from get_unwidened.
2931
ebfcd719
KT
29322013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2933
2934 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
2935 plus_constant is not used.
2936
157ca3e9
WM
29372013-10-01 Wei Mi <wmi@google.com>
2938
78cedfb1 2939 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
2940 * config/i386/i386.md: Add define_peephole2 to
2941 break partial reg stall for cvtss2sd/cvtsd2ss.
2942
cd4dd8f0
JR
29432013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2944
2945 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 2946 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 2947
1465e5cf
JL
29482013-10-01 Jeff Law <law@redhat.com>
2949
2950 * tree-ssa-threadupdate.c (struct redirection_data): Delete
2951 outgoing_edge and intermediate_edge fields. Instead store the path.
2952 (redirection_data::hash): Hash on the last edge's destination index.
2953 (redirection_data::equal): Check the entire thread path.
2954 (lookup_redirectio_data): Corresponding changes.
2955 (create_edge_and_update_destination_phis): Likewise.
2956 (thread_single_edge): Likewise.
2957
25c606cb 29582013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 2959 Diego Novillo <dnovillo@google.com>
25c606cb
JR
2960
2961 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
2962 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
2963 (vld32wh_insn, vld32wl_insn): Delete commented-out old
2964 versions of these patterns.
2965
0ccbc132
JR
2966 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
2967 (__builtin_arc_aligned): Likewise.
2968
f55d4a20
JR
2969 * config/arc/arc.md: Expand adc_0 comment stating the intended
2970 purpose and why it isn't ready.
2971 Replace commented out call_value_via_label_mixed with a
2972 plain comment about bl_s.
2973
5719867d 2974 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
2975 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
2976 Remove if (1) condition.
2977 (arc_encode_section_info): Fix comment.
2978
6462fab0
JR
29792013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2980
2981 * config/arc/arc.c (arc_conditional_register_usage):
2982 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
2983 Also set reg_alloc_order for DMA config regs.
2984
5d5f6720
JR
29852013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2986 Jeremy Bennett <jeremy.bennett@embecosm.com>
2987
2988 * doc/install.texi (--with-cpu): Mention ARC.
2989 (arc-*-elf32): New paragraph.
2990 (arc-linux-uclibc): Likewise.
2991 * doc/md.texi (Machine Constraints): Add ARC part.
2992 * doc/invoke.texi: (menu): Add ARC Options.
2993 (Machine Dependent Options) <ARC Options>: Add synopsis.
2994 (node ARC Options): Add.
2995 * doc/extend.texi (long_call / short_call attribute): Add ARC.
2996 (ARC Built-in Functions): New section defining
2997 generic ARC built-in functions.
2998 (ARC SIMD Built-in Functions): New section defining SIMD specific
2999 built-in functions.
3000 (Declaring Attributes of Functions): Extended
3001 description of short_call and long_call attributes for ARC and
3002 added index entries.
3003
526b7aee
SV
30042013-10-01 Saurabh Verma <saurabh.verma@codito.com>
3005 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
3006 Joern Rennecke <joern.rennecke@embecosm.com>
3007 Muhammad Khurram Riaz <khurram.riaz@arc.com>
3008 Brendan Kehoe <brendan@zen.org>
3009 Michael Eager <eager@eagercon.com>
3010 Simon Cook <simon.cook@embecosm.com>
3011 Jeremy Bennett <jeremy.bennett@embecosm.com>
3012
3013 * config/arc, common/config/arc: New directories.
3014
53426f6c
JR
30152013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3016 Brendan Kehoe <brendan@zen.org>
3017 Simon Cook <simon.cook@embecosm.com>
3018
3019 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
3020
1df9f5a9
AM
30212013-10-01 Andrew MacLeod <amacleod@redhat.com>
3022
3023 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
3024 * tree-ssa-coalesce.h: New. Move prototype to here.
3025 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
3026 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
3027 (gimple_can_coalesce_p): Move to...
3028 * gimple.c (gimple_can_coalesce_p): Here.
3029
80560f95
AM
30302013-10-01 Andrew MacLeod <amacleod@redhat.com>
3031
3032 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
3033 (dump_decl_set): Move to gimple.c.
3034 * gimple.h: Don't include tree-ssa-operands.h.
3035 (dump_decl_set): Add prototype.
3036 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3037 Move to gimple-ssa.h.
3038 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
3039 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
3040 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
3041 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
3042 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
3043 than PHI_ARG_DEF.
3044 (dump_decl_set): Relocate here.
3045 * gimple-ssa.h: New file.
3046 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3047 Relocate from gimple.h.
3048 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
3049 * tree-ssa-operands.c (swap_ssa_operands): Rename from
3050 swap_tree_operands and remove non-ssa path.
3051 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
3052 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
3053 swap_ssa_operands.
3054 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
3055 vect_is_simple_reduction_1): Use swap_ssa_operands.
3056 * tree-flow.h: Move various prototypes to tree-phinodes.h.
3057 (enum need_phi_state): Move to tree-into-ssa.c.
3058 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3059 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
3060 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
3061 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3062 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3063 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3064 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3065 num_imm_uses): Move to ssa-iterators.h.
3066 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 3067 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
3068 tree-phinodes.h.
3069 (op_iter_done, op_iter_next_def, op_iter_next_tree,
3070 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
3071 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
3072 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
3073 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
3074 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
3075 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
3076 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
3077 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3078 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3079 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3080 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3081 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3082 (set_phi_nodes): Move to tree-phinodes.h.
3083 * tree-ssa-operands.h (enum ssa_op_iter_type,
3084 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3085 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3086 (dump_decl_set): Remove prototype.
3087 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3088 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3089 (set_phi_nodes): Relocate from tree-flow-inline.h.
3090 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3091 tree-flow-inline.h
3092 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3093 include list. Temporarily add gimple.h to include list.
3094 * ssa-iterators.h: New file.
3095 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3096 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3097 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3098 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3099 Relocate from tree-ssa-operands.h.
3100 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3101 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3102 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3103 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3104 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3105 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3106 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3107 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3108 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3109 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3110 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3111 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3112 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3113 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3114 Relocate from tree-flow-inline.h.
3115 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3116
8da00d65
VP
31172013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3118
3119 * aarch64-simd.md
3120 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3121 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3122 Insert '\t' to output template.
3123 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3124 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3125 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3126 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3127
e2ebe1c2
UB
31282013-10-01 Uros Bizjak <ubizjak@gmail.com>
3129
3130 * doc/install.texi (Host/target specific installation notes for GCC):
3131 Put @anchor before @heading.
3132 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3133 Use @email for email addresses.
3134
aee2d611
JL
31352013-10-01 Jeff Law <law@redhat.com>
3136
3137 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3138 a vec. Only delete the path if we create one without successfully
3139 registering a jump thread.
3140 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3141 as a pointer.
3142 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3143 (paths): New vector of jump threading paths.
3144 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3145 (THREAD_PATH): New accessor macro for the entire thread path.
3146 (lookup_redirection_data): Get intermediate and final outgoing edge
3147 from the thread path.
3148 (create_edge_and_update_destination_phis): Copy the threading path.
3149 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3150 jump threading path.
3151 (ssa_redirect_edges): Get edges and block types from the jump threading
3152 path. Free the path vector.
3153 (thread_block): Get edges from the jump threading path. Look at the
3154 entire path to see if we thread to a loop exit. If we cancel a jump
3155 thread request, then free the path vector.
3156 (thread_single_edge): Get edges and block types from the jump threading
3157 path. Free the path vector.
3158 (thread_through_loop_header): Get edges and block types from the jump
3159 threading path. Free the path vector.
3160 (mark_threaded_blocks): Iterate over the vector of paths and store
3161 the path on the appropriate edge. Get edges and block types from the
3162 jump threading path.
3163 (mark_threaded_blocks): Get edges and block types from the jump
3164 threading path. Free the path vector.
3165 (thread_through_all_blocks): Use the vector of paths rather than
3166 a vector of 3-edge sets.
3167 (register_jump_thread): Accept pointer to a path vector rather
3168 than the path vector itself. Store the path vector for later use.
3169 Simplify.
3170
966f97ac 31712013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3172 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3173
3174 PR target/58574
3175 * config/s390/s390.c (s390_split_branches): Modify check for table
3176 jump insns.
3177 (s390_chunkify_start): Rearrange table jump insn check in order to
3178 deal with compare and branch insns correctly.
3179
3a323a38
KV
31802013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3181
3182 PR target/58578
3183 Revert
3184 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3185 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3186 define_insn_and_split.
3187 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3188 (shiftsi3_compare): New pattern.
3189 (rrx): New pattern.
3190 * config/arm/unspecs.md (UNSPEC_RRX): New.
3191
90444831
AM
31922013-10-01 Alan Modra <amodra@gmail.com>
3193
3194 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3195 casing inout operands.
3196
818625cf
RB
31972013-10-01 Richard Biener <rguenther@suse.de>
3198
3199 PR tree-optimization/58553
3200 * tree-loop-distribution.c (struct partition_s): Add niter member.
3201 (classify_partition): Populate niter member for the partition
3202 and properly identify whether the relevant store happens before
3203 or after the loop exit.
3204 (generate_memset_builtin): Use niter member from the partition.
3205 (generate_memcpy_builtin): Likewise.
3206
30f641cd
RS
32072013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3208
3209 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3210 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3211
65d3284b
RS
32122013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3213
3214 * basic-block.h (edge_list): Prefix member names with "m_".
3215 * context.h (context): Likewise.
3216 * domwalk.h (dom_walker): Likewise.
3217 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3218 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3219 * hash-table.h (hash_table): Likewise.
3220 * machmode.h (bit_field_mode_iterator): Likewise.
3221 * pass_manager.h (pass_list): Likewise.
3222 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3223 * tree-pass.h (pass_data): Likewise.
3224 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3225 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3226 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3227 * asan.c (pass_data_asan): Update accordingly.
3228 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3229 (control_dependences::control_dependences): Likewise.
3230 (control_dependences::~control_dependences): Likewise.
3231 (control_dependences::~control_dependences): Likewise.
3232 (control_dependences::get_edges_dependent_on): Likewise.
3233 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3234 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3235 * context.c (gcc::context::context): Likewise.
3236 * cprop.c (pass_rtl_cprop::clone): Likewise.
3237 * domwalk.c (dom_walker::walk): Likewise.
3238 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3239 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3240 * mode-switching.c (pass_mode_switching::clone): Likewise.
3241 * passes.c (opt_pass::opt_pass): Likewise.
3242 (pass_manager::pass_manager): Likewise.
3243 * predict.c (pass_strip_predict_hints::clone): Likewise.
3244 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3245 (pass_split_all_insns::clone): Likewise.
3246 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3247 Likewise.
3248 (bit_field_mode_iterator::next_mode): Likewise.
3249 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3250 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3251 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3252 * tree-complex.c (pass_lower_complex::clone): Likewise.
3253 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3254 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3255 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3256 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3257 (pass_fold_builtins::clone): Likewise.
3258 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3259 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3260 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3261 (pass_cd_dce::clone): Likewise.
3262 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3263 (pass_phi_only_cprop::clone): Likewise.
3264 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3265 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3266 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3267 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3268 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3269 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3270 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3271 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3272 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3273 * tree-vrp.c (pass_vrp::clone): Likewise.
3274 * tsan.c (pass_tsan::clone): Likewise.
3275
f66d0891
JJ
32762013-09-30 Jakub Jelinek <jakub@redhat.com>
3277
d2a365a8
JJ
3278 PR middle-end/58564
3279 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3280 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3281
f66d0891
JJ
3282 PR middle-end/58564
3283 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3284 optimization, punt if sign_bit_p looked through any zero extension.
3285
05357ac3
TJ
32862013-09-30 Teresa Johnson <tejohnson@google.com>
3287
3288 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3289 Update redirected out edge count in joiner case.
3290 (ssa_redirect_edges): Common the joiner and non-joiner cases
3291 so that joiner case gets profile updates.
3292
ca406576
RB
32932013-09-30 Richard Biener <rguenther@suse.de>
3294
3295 PR tree-optimization/58554
e2ebe1c2
UB
3296 * tree-loop-distribution.c (classify_partition): Require
3297 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3298 (tree_loop_distribution): Calculate dominance info.
3299
92d649c4
VK
33002013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3301
3302 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3303 (NO_PROFILE_COUNTERS): Likewise.
3304 (PROFILE_HOOK): Likewise.
3305 (FUNCTION_PROFILER): Likewise.
3306 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3307
bd9534e2
IS
33082013-09-30 Iain Sandoe <iain@codesourcery.com>
3309
3310 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3311 calls and defines in TARGET_MACHO conditional.
3312 (load_macho_picbase_di): Likewise.
3313 (reload_macho_picbase): Likewise.
3314 (reload_macho_picbase_si): Likewise.
3315 (reload_macho_picbase_di): Likewise.
3316 (nonlocal_goto_receiver): Likewise.
3317
4494fbc9
NC
33182013-09-30 Nick Clifton <nickc@redhat.com>
3319
3320 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3321 that use the MSP430X ISA.
3322 (msp430_option_override): Scan -mmcu command line option for any
3323 MCU name that supports the MSP430X ISA.
3324 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3325 -mmcu options which enable the MSP430X ISA.
3326
791d9044
RB
33272013-09-30 Richard Biener <rguenther@suse.de>
3328
3329 PR middle-end/58532
3330 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3331 before looking for setjmp-like calls.
3332
e1c5c877
IS
33332013-09-29 Iain Sandoe <iain@codesourcery.com>
3334
3335 PR target/10901
3336 * config/darwin-protos.h (machopic_get_function_picbase): New.
3337 * config/darwin.c (machopic_get_function_picbase): New.
3338 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3339 label for a new func. (load_macho_picbase_di): Likewise.
3340 (reload_macho_picbase): New expand.
3341 (reload_macho_picbase_si): New insn.
3342 (reload_macho_picbase_di): New insn.
3343 (nonlocal_goto_receiver): New define and split.
3344 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3345 (unspecv enum): Add UNSPECV_NLGR.
3346
749278c5
IS
33472013-09-29 Iain Sandoe <iain@codesourcery.com>
3348
3349 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3350 that altivec registers are correctly sized on Darwin.
3351
2c43a51c
IS
33522013-09-29 Iain Sandoe <iain@codesourcery.com>
3353
3354 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3355 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3356 * config/x-darwin (host-darwin.o): Likewise.
3357 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3358 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3359 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3360
7a5911d3
UB
33612013-09-29 Uros Bizjak <ubizjak@gmail.com>
3362
3363 * doc/invoke.texi: Fix usage of @tie{} command.
3364
3f67a73d
EB
33652013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3366
3367 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3368
9ac2f538
JH
33692013-09-28 Jan Hubicka <jh@suse.cz>
3370
3371 * config/i386/x86-tune.def: Add documentation for each of the options;
3372 add whitespace.
3373
b0ff06da
JH
33742013-09-28 Jan Hubicka <jh@suse.cz>
3375
7a5911d3
UB
3376 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3377 generic.
b0ff06da
JH
3378 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3379 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3380 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3381 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3382 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3383
c3284718
RS
33842013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3385
3386 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3387 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3388 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3389 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3390 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3391 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3392 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3393 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3394 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3395 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3396 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3397 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3398 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3399 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3400 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3401 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3402 gimple.h, godump.c, graphite-clast-to-gimple.c,
3403 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3404 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3405 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3406 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3407 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3408 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3409 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3410 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3411 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3412 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3413 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3414 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3415 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3416 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3417 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3418 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3419 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3420 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3421 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3422 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3423 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3424 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3425 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3426 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3427 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3428 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3429 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3430 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3431 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3432 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3433 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3434 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3435 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3436 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3437 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3438 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3439 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3440 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3441 whitespace before "(".
3442
c6285bd7
SL
34432013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3444
3445 * expr.h (extract_bit_field): Remove packedp parameter.
3446 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3447 from forward declaration.
3448 (store_split_bit_field): Remove packedp arg from calls to
3449 extract_fixed_bit_field.
3450 (extract_bit_field_1): Remove packedp parameter and packedp
3451 argument from recursive calls and calls to extract_fixed_bit_field.
3452 (extract_bit_field): Remove packedp parameter and corresponding
3453 arg to extract_bit_field_1.
3454 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3455 to issue warnings.
3456 (extract_split_bit_field): Remove packedp arg from call to
3457 extract_fixed_bit_field.
3458 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3459 (copy_blkmode_from_reg): Likewise.
3460 (copy_blkmode_to_reg): Likewise.
3461 (read_complex_part): Likewise.
3462 (store_field): Likewise.
3463 (expand_expr_real_1): Likewise.
3464 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3465 to extract_bit_field.
3466 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3467 call to extract_bit_field.
3468 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3469 call to extract_bit_field.
3470 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3471 and special packedp behavior from -fstrict-volatile-bitfields
3472 documentation.
3473
522d4efc
JBG
34742013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3475
3476 * lra-eliminations.c (init_elim_table): Guard value_p.
3477
19cdb489
MM
34782013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3479
3480 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3481 DFmode, DImode, and SFmode in the upper VSX registers based on the
3482 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3483 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3484 of the VSX register handling.
3485
3486 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3487 (f32_sv): Likewise.
3488 (zero_extendsidi2_lfiwzx): Add support for loading into the
3489 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3490 only do VSX memory options on Altivec registers.
3491 (extendsidi2_lfiwax): Likewise.
3492 (extendsfdf2_fpr): Likewise.
3493 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3494 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3495 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3496 (movdi_internal64): Likewise.
3497
d6d11272
XDL
34982013-09-27 Xinliang David Li <davidxl@google.com>
3499
3500 * opts.c (finish_options): Adjust parameters
3501 according to vect cost model.
3502 (common_handle_option): Set dynamic vect cost
3503 model for FDO.
3504 targhooks.c (default_add_stmt_cost): Compute stmt cost
3505 unconditionally.
3506 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3507 Use helper function.
3508 * tree-vectorizer.h (unlimited_cost_model): New function.
3509 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3510 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3511 function.
3512 (vect_enhance_data_refs_alignment): Ditto.
3513 * flag-types.h: New enum.
3514 * common/config/i386/i386-common.c (ix86_option_init_struct):
3515 No need to initialize vect_cost_model flag.
3516 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3517 unconditionally.
3518
ac1857a3
DN
35192013-09-27 Diego Novillo <dnovillo@google.com>
3520
3521 * gimple.h (enum ssa_mode): Remove.
3522
0d0e2af6
PM
35232013-09-27 Paulo Matos <pmatos@broadcom.com>
3524
3525 * cfgloop.h (number_of_loops): Fix typo in check for null.
3526
09dc585e
JJ
35272013-09-27 Jakub Jelinek <jakub@redhat.com>
3528
3529 PR middle-end/58551
3530 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3531 are children of outermost saved_cfun's loop, and set it up to
3532 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3533 if loop != loop0 and SESE region contains bbs that belong to loop0.
3534
ec5a3504
RS
35352013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3536
3537 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3538 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3539 (set_address_segment, set_address_base, set_address_index)
3540 (set_address_disp): Accept the argument unconditionally.
3541 (baseness): Remove must_be_base_p and must_be_index_p checks.
3542 (decompose_normal_address): Classify as much as possible in the
3543 main loop.
3544
f91aec98
RS
35452013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3546
3547 * cse.c (count_reg_usage): Handle INT_LIST.
3548 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3549 * reginfo.c (reg_scan_mark_refs): Likewise.
3550 * reload1.c (eliminate_regs_1): Likewise.
3551
a9195970
IS
35522013-09-27 Iain Sandoe <iain@codesourcery.com>
3553
3554 PR middle-end/58547
3555 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3556 signed.
3557
e6f1c509
RB
35582013-09-27 Richard Biener <rguenther@suse.de>
3559
3560 PR tree-optimization/58459
3561 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3562 restriction not propagating into loops.
3563
84f48495
FW
35642013-09-26 Florian Weimer <fw@deneb.enyo.de>
3565
3566 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3567 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3568 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3569
74fc8b8a
RB
35702013-09-26 Richard Biener <rguenther@suse.de>
3571
7a5911d3 3572 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3573
b4ada065
RB
35742013-09-26 Richard Biener <rguenther@suse.de>
3575
3576 * alias.h (component_uses_parent_alias_set): Rename to ...
3577 (component_uses_parent_alias_set_from): ... this.
3578 * alias.c (component_uses_parent_alias_set): Rename to ...
3579 (component_uses_parent_alias_set_from): ... this and return
3580 the desired parent.
3581 (reference_alias_ptr_type_1): Use the result from
3582 component_uses_parent_alias_set_from instead of stripping
3583 components one at a time.
3584 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3585
78bca40d
AM
35862013-09-26 Andrew MacLeod <amacleod@redhat.com>
3587
7a5911d3
UB
3588 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3589 Move prototypes to...
78bca40d
AM
3590 * tree-ssa-ter.h: New File. Move prototypes here.
3591 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3592 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3593 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3594 from is_replaceable_p.
78bca40d
AM
3595 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3596 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3597 (process_replaceable): Use ter_is_replaceable_p.
3598 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3599 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3600 newly refactored ssa_is_replaceable_p.
3601 * cfgexpand.c: Include tree-outof-ssa.h.
3602 * ssaexpand.h: Delete.
3603
ff2a63a7
AM
36042013-09-26 Andrew MacLeod <amacleod@redhat.com>
3605
3606 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3607 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3608 tree-ssa.c
3609 (create_gimple_tmp): Delete.
3610 (get_expr_type, build_assign, build_type_cast): Move to...
3611 * gimple-builder.c: New File.
3612 (get_expr_type): Relocate from gimple.c.
3613 (build_assign, build_type_cast): Change to only create ssanames.
3614 * gimple.h: Move prototypes to...
3615 * gimple-builder.h: New File. Here.
3616 * tree-ssa.h: And here.
3617 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3618 count_uses_and_derefs): Relocate from gimple.c.
3619 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3620 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3621 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3622 gimple_replace_ssa_lhs.
3623 * asan.c: Include gimple-builder.h.
3624 * Makefile.in: Add gimple-builder.o.
3625
a2544177
RB
36262013-09-26 Richard Biener <rguenther@suse.de>
3627
3628 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3629 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3630 (loe_visit_block): Use gcc_checking_assert.
3631 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3632 gimple_assign_ssa_name_copy_p.
3633 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3634 change.
3635
6d1ca9a0
DE
36362013-09-26 David Edelsohn <dje.gcc@gmail.com>
3637
3638 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3639 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3640
46e950db
RB
36412013-09-26 Richard Biener <rguenther@suse.de>
3642
3643 PR tree-optimization/58539
3644 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3645 the fact that debug statements are not taking part in loop-closed
3646 SSA construction.
3647
40ada30a
NC
36482013-09-26 Nick Clifton <nickc@redhat.com>
3649
3650 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3651 time warning message.
3652 (msp430_print_operand_raw): Delete unused letter parameter.
3653 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3654 (msp430_print_operand_address): New function.
3655 (msp430_print_operand): Move address printing code from here to
3656 new function.
3657 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3658 assembler.
3659 (zero_extendpsisi2): Likewise.
3660 (extendpsisi2): New pattern.
3661 (andneghi3): New pattern.
3662
38e8f663
YR
36632013-09-26 Yvan Roux <yvan.roux@linaro.org>
3664
3665 * config/aarch64/aarch64.opt (mlra): New option.
3666 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3667 (TARGET_LRA_P): Define.
3668
4167e8d4
EB
36692013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3670
3671 * expr.c (expand_assignment): Remove obsolete comment.
3672
5254eac4
JL
36732013-09-25 Jeff Law <law@redhat.com>
3674
3675 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3676 tree-ssa-threadupdate.h.
3677 (register_jump_thread): Similarly.
3678 * tree-ssa-threadupdate.h: New header file.
3679 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3680 * tree-vrp.c: Likewise.
3681 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3682 (thread_around_empty_blocks): Change type of path vector argument to
3683 an edge,type pair from just an edge. Initialize both elements when
3684 appending to a jump threading path. Tweak references to elements
3685 appropriately.
3686 (thread_across_edge): Similarly. Release memory for the elements
3687 as needed.
3688 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3689 (dump_jump_thread_path): New function broken out from
3690 register_jump_thread.
3691 (register_jump_thread): Use dump_jump_thread_path. Change type of
3692 path vector entries. Search the path for NULL edges and dump
3693 the path if one is found. Tweak the conversion of path to 3-edge
3694 form to use the block copy type information embedded in the path.
3695
20f114a3
YR
36962013-09-25 Yvan Roux <yvan.roux@linaro.org>
3697
3698 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3699
3936bafc
YR
37002013-09-25 Yvan Roux <yvan.roux@linaro.org>
3701 Vladimir Makarov <vmakarov@redhat.com>
3702
3703 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3704 from the least significant bit.
3705 (strip_address_mutations): Add bitfield operations handling.
3706 (must_be_index_p): Add shifting and rotate operations handling.
3707 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3708 (set_address_index): Use must_be_index_p predicate.
3936bafc 3709
b86f6e9e
AI
37102013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3711 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3712 Sergey Lega <sergey.s.lega@intel.com>
3713 Anna Tikhonova <anna.tikhonova@intel.com>
3714 Ilya Tocar <ilya.tocar@intel.com>
3715 Andrey Turetskiy <andrey.turetskiy@intel.com>
3716 Ilya Verbin <ilya.verbin@intel.com>
3717 Kirill Yukhin <kirill.yukhin@intel.com>
3718 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3719
3720 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3721 Use new names.
3722 (ix86_expand_vector_move_misalign): Support new unaligned load and
3723 stores and use new names.
3724 (CODE_FOR_sse2_storedqu): Rename to ...
3725 (CODE_FOR_sse2_storedquv16qi): ... this.
3726 (CODE_FOR_sse2_loaddqu): Rename to ...
3727 (CODE_FOR_sse2_loaddquv16qi): ... this.
3728 (CODE_FOR_avx_loaddqu256): Rename to ...
3729 (CODE_FOR_avx_loaddquv32qi): ... this.
3730 (CODE_FOR_avx_storedqu256): Rename to ...
3731 (CODE_FOR_avx_storedquv32qi): ... this.
3732 * config/i386/i386.md (fpint_logic): New.
3733 * config/i386/sse.md (VMOVE): Extend for AVX512.
3734 (VF): Ditto.
3735 (VF_128_256): New.
3736 (VF_512): Ditto.
3737 (VI_UNALIGNED_LOADSTORE): Ditto.
3738 (sse2_avx_avx512f): Ditto.
3739 (sse2_avx2): Extend for AVX512.
3740 (sse4_1_avx2): Ditto.
3741 (avx2_avx512f): New.
3742 (sse): Extend for AVX512.
3743 (sse2): Ditto.
3744 (sse4_1): Ditto.
3745 (avxsizesuffix): Ditto.
3746 (sseintvecmode): Ditto.
3747 (ssePSmode): Ditto.
3748 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3749 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3750 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3751 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3752 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3753 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3754 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3755 (STORENT_MODE): Extend for AVX512.
3756 (*absneg<mode>2): Replace constraint "x" with "v".
3757 (*mul<mode>3): Ditto.
3758 (*ieee_smin<mode>3): Ditto.
3759 (*ieee_smax<mode>3): Ditto.
3760 (avx_cmp<mode>3): Replace VF with VF_128_256.
3761 (*<sse>_maskcmp<mode>3_comm): Ditto.
3762 (<sse>_maskcmp<mode>3): Ditto.
3763 (<sse>_andnot<mode>3): Extend for AVX512.
3764 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3765 (<code><mode>3, fpint_logic): New.
3766 (*<code><mode>3): Extend for AVX512.
3767 (avx512flogicsuff): New.
3768 (avx512f_<logic><mode>): Ditto.
3769 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3770 VF_128_256.
3771 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3772 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3773 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3774 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3775 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3776 (xop_vpermil2<mode>3): Ditto.
3777 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3778 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3779 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3780 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3781
4d44d03c
TT
37822013-09-25 Tom Tromey <tromey@redhat.com>
3783
3784 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3785 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3786 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3787 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3788 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3789 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3790 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3791 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3792 (GRAPHITE_HTAB_H): Remove.
3793
86aaf68d
TT
37942013-09-25 Tom Tromey <tromey@redhat.com>
3795
3796 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3797
c987deb8
TT
37982013-09-25 Tom Tromey <tromey@redhat.com>
3799
3800 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3801
9439747e
TT
38022013-09-25 Tom Tromey <tromey@redhat.com>
3803
3804 * config/i386/t-i386 (i386.o): Remove.
3805 (i386-c.o): Use COMPILE and POSTCOMPILE.
3806
aefc31a1
TT
38072013-09-25 Tom Tromey <tromey@redhat.com>
3808
3809 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3810
b6541edc
TT
38112013-09-25 Tom Tromey <tromey@redhat.com>
3812
3813 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3814 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3815 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3816 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3817 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3818 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3819 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3820 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3821 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3822 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3823 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3824 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3825 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3826 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3827 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3828 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3829 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3830 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3831 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3832 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3833 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3834 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3835 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3836 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3837 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3838 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
3839 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
3840 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
3841 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
3842 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
3843 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
3844 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
3845 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
3846 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
3847 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
3848 (graphite-clast-to-gimple.o, graphite-dependences.o)
3849 (graphite-interchange.o, graphite-poly.o)
3850 (graphite-scop-detection.o, graphite-sese-to-poly.o)
3851 (graphite-optimize-isl.o, tree-vect-loop.o)
3852 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
3853 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
3854 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
3855 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
3856 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
3857 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
3858 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
3859 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
3860 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
3861 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
3862 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
3863 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
3864 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
3865 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
3866 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
3867 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
3868 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
3869 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
3870 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
3871 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
3872 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
3873 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
3874 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
3875 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
3876 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
3877 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
3878 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
3879 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
3880 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
3881 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
3882 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
3883 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
3884 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
3885 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
3886 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
3887 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
3888 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
3889 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
3890 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
3891 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
3892 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
3893 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
3894 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
3895 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
3896 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
3897 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
3898 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
3899 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
3900 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
3901 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
3902 (gcov-dump.o): Remove.
3903 (default-c.o): Use COMPILE and POSTCOMPILE.
3904 (CFLAGS-gcc.o): New variable.
3905 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
3906
8c796d19
TT
39072013-09-25 Tom Tromey <tromey@redhat.com>
3908
3909 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
3910 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
3911 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
3912 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
3913 (c-family/c-pragma.o, c-family/c-pretty-print.o)
3914 (c-family/c-semantics.o, c-family/c-ada-spec.o)
3915 (c-family/array-notation-common.o, c-family/stub-objc.o)
3916 (c-family/c-ubsan.o): Remove.
3917
0a6c2227
TT
39182013-09-25 Tom Tromey <tromey@redhat.com>
3919
3920 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
3921
f3bc55f0
TT
39222013-09-25 Tom Tromey <tromey@redhat.com>
3923
3924 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
3925 to add -DENABLE_SHARED_LIBGCC.
3926 (gcc.o): Don't use subshell.
3927
c11c795e
TT
39282013-09-25 Tom Tromey <tromey@redhat.com>
3929
3930 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
3931 * configure.ac: Don't invoke AM_PROG_CC_C_O.
3932 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
3933 * configure, config.in: Rebuild.
3934
043378c3
TT
39352013-09-25 Tom Tromey <tromey@redhat.com>
3936
3937 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
3938 (COMPILE, POSTCOMPILE): New variables.
3939 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
3940 (DEPFILES): New variable.
3941 Include ".Po" files.
3942 * configure.ac: Add checks for dependency checking.
3943 * configure, aclocal.m4: Regenerate.
3944
eab34643
TT
39452013-09-25 Tom Tromey <tromey@redhat.com>
3946
3947 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 3948 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 3949
d2db5e91
TT
39502013-09-25 Tom Tromey <tromey@redhat.com>
3951
3952 * Makefile.in (generated_files): Add options.h,
3953 target-hooks-def.h, insn-opinit.h,
3954 common/common-target-hooks-def.h, pass-instances.def,
3955 c-family/c-target-hooks-def.h.
3956
af33629e
JL
39572013-09-25 Jeff Law <law@redhat.com>
3958
3959 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
3960 than foo[foo.length () - 1] to access last member in a vec.
3961 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
3962
ed0d3051
RB
39632013-09-25 Richard Biener <rguenther@suse.de>
3964
3965 PR middle-end/58521
3966 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
3967
123485ca
JH
39682013-09-25 Jan Hubicka <jh@suse.cz>
3969
3970 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
3971 test.
3972
d70b0f1f
MP
39732013-09-25 Marek Polacek <polacek@redhat.com>
3974
3975 PR sanitizer/58420
3976 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
3977 when determining the type name.
3978
e3f02798
OE
39792013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
3980
3981 * config/sh/sh.md: Fix formatting.
3982
7a5911d3 39832013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 3984
7a5911d3
UB
3985 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
3986 max peel iterations parameter.
4f17aa0b
XDL
3987 * param.def: New parameter.
3988 * doc/invoke.texi: Document New parameter.
3989
0498471b
CL
39902013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
3991
3992 * gimple-pretty-print.c: Various whitespace tweaks.
3993 * tree-core.h: Likewise.
3994 * tree-pretty-print.c: Likewise.
3995 * tree-ssa-alias.c: Likewise.
3996 * tree-ssa-copy.c: Likewise.
3997 * tree-ssanames.c: Likewise.
3998 * tree-ssanames.h: Likewise.
3999 * tree-vrp.c: Likewise.
4000
5a8c2b57
AM
40012013-09-24 Alan Modra <amodra@gmail.com>
4002
4003 PR middle-end/57134
4004 PR middle-end/57586
7a5911d3
UB
4005 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
4006 for output operands that disallow regs. Don't use EXPAND_WRITE on
4007 inout operands.
5a8c2b57 4008
f40333af
RB
40092013-09-24 Richard Biener <rguenther@suse.de>
4010
4011 PR middle-end/58513
4012 * tree.c (reference_alias_ptr_type): Move ...
4013 * alias.c (reference_alias_ptr_type): ... here and implement
4014 in terms of the new reference_alias_ptr_type_1.
4015 (ref_all_alias_ptr_type_p): New helper.
4016 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
4017 use ref_all_alias_ptr_type_p.
4018 (get_deref_alias_set): Add flag_strict_aliasing check here.
4019 (reference_alias_ptr_type_1): New function, split out from ...
4020 (get_alias_set): ... here.
4021 (alias_ptr_types_compatible_p): New function.
4022 * alias.h (reference_alias_ptr_type): Declare.
4023 (alias_ptr_types_compatible_p): Likewise.
4024 * tree.h (reference_alias_ptr_type): Remove.
4025 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
4026 to compare MEM_REF alias types.
4027
583e8bf5
RB
40282013-09-24 Richard Biener <rguenther@suse.de>
4029
4030 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
4031
5e8586d7
MM
40322013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4033
19c3e797
MM
4034 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
4035 reload helper function arrays into a single array reg_addr.
4036 (reload_fpr_gpr): Likewise.
4037 (reload_gpr_vsx): Likewise.
4038 (reload_vsx_gpr): Likewise.
4039 (struct rs6000_reg_addr): Likewise.
4040 (reg_addr): Likewise.
4041 (rs6000_debug_reg_global): Change rs6000_vector_reload,
4042 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
4043 (rs6000_init_hard_regno_mode_ok): Likewise.
4044 (rs6000_secondary_reload_direct_move): Likewise.
4045 (rs6000_secondary_reload): Likewise.
4046
5e8586d7
MM
4047 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
4048 constraints: wu, ww, and wy. Repurpose wv constraint added during
4049 power8 changes. Put wg constraint in alphabetical order.
4050
4051 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
4052 for future work to add ISA 2.07 VSX single precision support.
4053 (-mvsx-scalar-double): Change default from -1 to 1, update
4054 documentation comment.
4055 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
4056 (-mupper-regs-df): New debug switch to control whether DF values
4057 can go in the traditional Altivec registers.
4058 (-mupper-regs-sf): New debug switch to control whether SF values
4059 can go in the traditional Altivec registers.
4060
4061 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
4062 and wy constraints.
4063 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
4064 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
4065 Add new constraints, wu/ww/wy. Repurpose wv constraint.
4066 (rs6000_debug_legitimate_address_p): Print if we are running
4067 before, during, or after reload.
4068 (rs6000_secondary_reload): Add a comment.
4069 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
4070
4071 * config/rs6000/constraints.md (wa constraint): Sort w<x>
4072 constraints. Update documentation string.
4073 (wd constraint): Likewise.
4074 (wf constraint): Likewise.
4075 (wg constraint): Likewise.
4076 (wn constraint): Likewise.
4077 (ws constraint): Likewise.
4078 (wt constraint): Likewise.
4079 (wx constraint): Likewise.
4080 (wz constraint): Likewise.
4081 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4082 instructions.
4083 (ww constraint): Likewise.
4084 (wy constraint): Likewise.
4085 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
4086 the previous submissions.
4087 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4088
e5af9ddd
RS
40892013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4090
4091 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4092 (REG_BR_PROB): Say that the probability is stored in an int_list.
4093 * reg-notes.def: Update commentary to mention INT_LIST.
4094 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4095 (INT_LIST): New rtx.
4096 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4097 * rtlanal.c (int_reg_note_p): New function.
4098 (alloc_reg_note): Assert that the note does not have an int argument.
4099 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4100 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4101 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4102 rather than an INSN_LIST. Handle INT_LIST.
4103 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4104 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4105 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4106 Manipulate them as ints rather than rtxes.
4107 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4108 * regmove.c (copy_src_to_dest): Likewise.
4109 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4110
4111 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4112 into the cases that need it.
4113 * config/arm/arm.c (arm_unwind_emit): Likewise.
4114
4115 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4116 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4117 * loop-doloop.c (add_test, doloop_modify): Likewise.
4118 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4119 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4120 * predict.c (combine_predictions_for_insn): Likewise.
4121 * print-rtl.c (print_rtx): Handle INT_LIST.
4122 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4123 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4124 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4125 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4126 (ix86_split_fp_branch, predict_jump): Likewise.
4127 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4128 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4129 * config/spu/spu.c (ea_load_store_inline): Likewise.
4130
4131 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4132 value of a REG_BR_PROB note.
4133 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4134 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4135 * emit-rtl.c (try_split): Likewise.
4136 * predict.c (br_prob_note_reliable_p): Likewise.
4137 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4138 * reorg.c (mostly_true_jump): Likewise.
4139 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4140 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4141 * config/i386/i386.c (ix86_print_operand): Likewise.
4142 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4143 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4144 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4145 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4146 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4147 * config/sparc/sparc.c (output_cbranch): Likewise.
4148 * config/spu/spu.c (get_branch_target): Likewise.
4149 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4150 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4151
450ad0cd
JH
41522013-09-23 Jan Hubicka <jh@suse.cz>
4153
4154 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4155 for ipa-devirt.
4156 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4157 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4158 of external calls
4159 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4160 (gimple_fold_call): Dump inconsistent devirtualizations; add
4161 sanity check for type based devirtualizations.
4162 * ipa-prop.c: Include ipa-utils.h
4163 (ipa_intraprocedural_devirtualization): Add sanity check.
4164 (try_make_edge_direct_virtual_call): Likewise.
4165
cefce769
EB
41662013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4167
4168 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4169 assignment statements.
4170
a895a2b8
KV
41712013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4172
4173 * gimple-pretty-print.c (dump_ssaname_info): New function.
4174 (dump_gimple_phi): Call it.
4175 (pp_gimple_stmt_1): Likewise.
4176 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4177 (range_info_def): Declare.
4178 * tree-pretty-print.c (pp_double_int): New function.
4179 (dump_generic_node): Call it.
4180 * tree-pretty-print.h (pp_double_int): Declare.
4181 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4182 * tree-ssanames.h (range_info_def): New structure.
4183 (value_range_type): Move definition here.
4184 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4185 Declare.
4186 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4187 initialization.
4188 (set_range_info): New function.
4189 (get_range_info): Likewise.
4190 (duplicate_ssa_name_range_info): Likewise.
4191 (duplicate_ssa_name_fn): Check pointer type and call
4192 duplicate_ssa_name_range_info.
4193 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4194 * tree-vrp.c (value_range_type): Remove definition, now in
4195 tree-ssanames.h.
7a5911d3 4196 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4197 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4198 (SSA_NAME_RANGE_INFO): New macro.
4199
984af6ac
RB
42002013-09-23 Richard Biener <rguenther@suse.de>
4201
4202 PR tree-optimization/58464
4203 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4204 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4205 (phi_translate_1): Remove recursion detection here.
4206 (phi_translate): Pre-seed the cache with NULL to catch
4207 recursion here in a more generic way.
4208 (bitmap_find_leader): Adjust comment.
4209 (get_representative_for): Dump value-numbers.
4210 (create_expression_by_pieces): Likewise.
4211 (insert_into_preds_of_block): Likewise.
4212
0e26cf79
CB
42132013-09-23 Christian Bruel <christian.bruel@st.com>
4214
4215 PR target/58475
4216 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4217 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4218
4d0e5b54
JG
42192013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4220
4221 Revert r202780:
4222 2013-09-20 Renlin Li <renlin.li@arm.com>
4223
7a5911d3
UB
4224 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4225 plus_constant.
4d0e5b54
JG
4226 (aarch64_expand_epilogue): Likewise.
4227 (aarch64_legitimize_reload_address): Likewise.
4228
ca081cc8
EB
42292013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4230
4231 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4232 NULL_TREE before pushing them onto the vector. Likewise for labels.
4233
8fc53a5f
EB
42342013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4235
4236 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4237 comparison operators when -fno-trapping-math is in effect.
4238 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4239 comparison operators in TFmode and assert that unsupported operators
4240 cannot reach here.
4241 (ia64_print_operand): Likewise.
4242
42432013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4244
4245 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4246 (sse_typeless_stores): Enable for core
4247 (sse_load0_by_pxor): Likewise.
4248 (four_jump_limit): Disable for core.
4249 (pad_returns): Likewise.
4250 (avoid_vector_decode): Likewise.
4251 (fuse_cmp_and_branch): Enable for cores.
4252 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4253
578e51e6
JDA
42542013-09-20 John David Anglin <danglin@gcc.gnu.org>
4255
96ce28a3
JDA
4256 PR middle-end/56791
4257 * config/pa/pa.c (pa_option_override): Disable auto increment and
4258 decrement instructions until reload is completed.
4259
578e51e6
JDA
4260 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4261 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4262 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4263
6fcd3a13 42642013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4265 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4266
4267 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4268 (need_to_save): Save bank 0 on interrupts.
4269 (characterize_address): Strip far address wrappers.
4270 (rl78_as_legitimate_address): Likewise.
4271 (transcode_memory_rtx): Likewise.
4272 (rl78_peep_movhi_p): Disable this peephole after devirt.
4273 (rl78_propogate_register_origins): Forget all origins when a
4274 CLOBBER is seen.
4275 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4276 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4277 peephole2's.
4278 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4279 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4280 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4281 relocating.
4282 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4283
4a08db33
JDA
42842013-09-20 John David Anglin <danglin@gcc.gnu.org>
4285
4286 * config/pa/pa.md: In "scc" insn patterns, change output template to
4287 handle const0_rtx in reg_or_0_operand operands.
4288
7691132c
JBG
42892013-09-20 Martin Husemann <martin@NetBSD.org>
4290
4291 PR target/56875
4292 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4293 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4294
a3cc13cc
RB
42952013-09-20 Richard Biener <rguenther@suse.de>
4296
4297 PR middle-end/58484
4298 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4299 remembering SSA name version and block index.
4300 (new_scev_info_str): Adjust.
4301 (hash_scev_info): Likewise. Also hash the block index.
4302 (eq_scev_info): Adjust.
4303 (find_var_scev_info): Likewise.
4304 (struct instantiate_cache_entry): Remove.
4305 (struct instantiate_cache_type): Use a htab to map name, block
4306 to chrec.
4307 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4308 (get_instantiated_value_entry): Likewise.
4309 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4310 (instantiate_scev_name): Adjust.
4311
925f3871
JL
43122013-09-20 Jeff Law <law@redhat.com>
4313
4314 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4315
2888c331
YZ
43162013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4317
4318 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4319 Call aarch64_simd_expand_args to update op[argc].
4320
0a811e96
BS
43212013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4322
7a5911d3
UB
4323 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4324 plugin argument.
0a811e96 4325
0078f462
BS
43262013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4327
7a5911d3
UB
4328 * gengtype.c (file_rules): Added rule for *.cc files.
4329 (get_output_file_with_visibility): Give fatal message when no
4330 rules found.
0078f462 4331
d20e48b0
RL
43322013-09-20 Renlin Li <renlin.li@arm.com>
4333
4334 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4335 (aarch64_expand_epilogue): Likewise.
4336 (aarch64_legitimize_reload_address): Likewise.
4337
59bb1544
BE
43382013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4339
4340 PR middle-end/57748
4341 * expr.c (expand_assignment): Remove misalignp code path.
4342
a5430019
MP
43432013-09-20 Marek Polacek <polacek@redhat.com>
4344
4345 PR sanitizer/58413
4346 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4347 TYPE_PRECISION. Add asserts.
4348
9fed7f3a
RB
43492013-09-20 Richard Biener <rguenther@suse.de>
4350
4351 PR tree-optimization/58453
4352 * tree-loop-distribution.c (distribute_loop): Apply the cost
4353 model for -ftree-loop-distribute-patterns, too.
4354
a820c834
RB
43552013-09-20 Richard Biener <rguenther@suse.de>
4356
4357 PR middle-end/58473
4358 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4359 make type comparison less strict.
4360
3cbe17f7
AM
43612013-09-20 Alan Modra <amodra@gmail.com>
4362
4363 * configure: Regenerate.
4364 * aclocal.m4: Regenerate.
4365
87fccdbb
MP
43662013-09-20 Marek Polacek <polacek@redhat.com>
4367
4368 PR other/58467
4369 * doc/extend.texi: Document that attribute used is meant to be used
4370 on variables with static storage duration.
4371
8928eff3
JJ
43722013-09-19 Jakub Jelinek <jakub@redhat.com>
4373
4374 PR tree-optimization/58472
4375 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4376 simd_lane_access set inv_p = false.
4377 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4378 the simduid magic VAR_DECL.
4379
b7b28c53
JH
43802013-09-19 Jan Hubicka <jh@suse.cz>
4381
4382 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4383
83ae86f5
JL
43842013-09-17 Jeff Law <law@redhat.com>
4385
4386 * tree-ssa-dom.c (record_temporary_equivalences): New function
4387 split out of dom_opt_dom_walker::after_dom_children.
4388 (dom_opt_dom_walker::thread_across_edge): Move common code
4389 in here from dom_opt_dom_walker::after_dom_children.
4390 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4391
9d532162
JH
43922013-09-19 Jan Hubicka <jh@suse.cz>
4393
4394 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4395 (TARGET_GENERIC): Use PROCESOR_GENERIC
4396 (enum processor_type): Unify generic32 and 64.
4397 * i386.md (cpu): Likewise.
4398 * x86-tune.def (use_leave): Enable for generic32.
4399 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4400 * athlon.md: Change generic64 to generic in all occurences.
4401 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4402 (ix86_target_macros_internal): Likewise.
4403 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4404 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4405 to ..
9d532162
JH
4406 (generic_memcpy, generic_memset, generic_cost): This one.
4407 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4408 (m_GENERIC32, m_GENERIC64): Remove.
4409 (m_GENERIC): Turn into one flag.
4410 (processor_target): Unify generic tunnings.
4411 (ix86_option_override_internal): Replace generic32/64 by generic.
4412 (ix86_issue_rate): Likewise.
4413 (ix86_adjust_cost): Likewise.
4414
188c7d00
JH
44152013-09-19 Jan Hubicka <jh@suse.cz>
4416
4417 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4418 of speculative flag.
4419
4befd127
JJ
44202013-09-19 Jakub Jelinek <jakub@redhat.com>
4421
4422 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4423 GOMP_sections_start, even if !exit_reachable.
4424
8a26ad39
VM
44252013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4426
4427 * lra-constraints.c (need_for_all_save_p): Use macro
4428 HARD_REGNO_CALL_PART_CLOBBERED.
4429 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4430 set up pseudo conflict hard regs.
4431
09487185
MM
44322013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4433
4434 PR target/58452
4435 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4436 operands.
4437
080cbf9e
VM
44382013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4439
4440 PR rtl-optimization/58438
4441 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4442 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4443 from previous subpasses.
4444
a0f70fcb
RE
44452013-09-18 Richard Earnshaw <rearnsha@arm.com>
4446
4447 * arm.c (arm_get_frame_offsets): Validate architecture supports
4448 LDRD/STRD before accepting the tuning preference.
4449 (arm_expand_prologue): Likewise.
4450 (arm_expand_epilogue): Likewise.
4451
0547c9b6
RB
44522013-09-18 Richard Biener <rguenther@suse.de>
4453
4454 PR tree-optimization/58417
4455 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4456 have chrecs with symbols defined in the loop as operands.
4457 (chrec_fold_multiply): Likewise.
4458 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4459 parameters before folding binary operations.
4460 (struct instantiate_cache_entry_hasher): Remove.
4461 (struct instantiate_cache_type): Use a pointer-map.
4462 (instantiate_cache_type::instantiate_cache_type): New function.
4463 (instantiate_cache_type::get): Likewise.
4464 (instantiate_cache_type::set): Likewise.
4465 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4466 (get_instantiated_value_entry): Likewise.
4467 (global_cache): New global.
4468 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4469 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4470 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4471 (instantiate_scev_name): Adjust.
4472 (instantiate_scev): Construct global instead of local cache.
4473 (resolve_mixers): Likewise.
4474
309dc1aa
DM
44752013-09-18 Daniel Morris <danielm@ecoscentric.com>
4476 Paolo Carlini <paolo.carlini@oracle.com>
4477
4478 PR c++/58458
4479 * doc/implement-cxx.texi: Fix references to the C++ standards.
4480
995a1b4a
JJ
44812013-09-18 Jakub Jelinek <jakub@redhat.com>
4482
4483 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4484 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4485 simd_lane_access drs, update also DR_ALIGNED_TO.
4486
ce6923c5
MP
44872013-09-18 Marek Polacek <polacek@redhat.com>
4488
4489 PR sanitizer/58411
4490 * doc/extend.texi: Document no_sanitize_undefined attribute.
4491 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4492 no_sanitize_undefined attribute.
4493
d30d00a2
NC
44942013-09-18 Nick Clifton <nickc@redhat.com>
4495
4496 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4497 (ASM_DECLARE_FUNCTION_NAME): Define.
4498
4d9192b5
TS
44992013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4500
4501 * compare-elim.c (find_comparison_dom_walker): New class
4502 (find_comparisons_in_bb): Rename to
4503 find_comparison_dom_walker::before_dom_children
4504 (find_comparisons): Adjust
4505 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4506 adjust.
4507 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4508 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4509 (init_walk_dominator_tree): Remove declaration.
4510 (fini_walk_dominator_tree): Remove declaration.
4511 * fwprop.c (single_def_use_dom_walker): New class
4512 (single_def_use_enter_block): Convert to
4513 single_def_use_dom_walker::before_dom_children.
4514 (single_def_use_leave_block): Convert to
4515 single_def_use_dom_walker::after_dom_children.
4516 (build_single_def_use_links): Adjust.
4517 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4518 class.
4519 (find_candidates_in_block): Convert to
4520 find_candidates_dom_walker::before_dom_children.
4521 (execute_strength_reduction): Adjust.
4522 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4523 (sese_dom_walker): New class.
4524 (sese_dom_walker::sese_dom_walker): New constructor.
4525 (sese_dom_walker::~sese_dom_walker): New destructor.
4526 (build_sese_conditions_before): Convert to
4527 sese_dom_walker::before_dom_children.
4528 (build_sese_conditions_after): Convert to
4529 sese_dom_walker::after_dom_children.
4530 (build_poly_scop): Adjust
4531 * tree-into-ssa.c (rewrite_dom_walker): New class
4532 (rewrite_enter_block): Convert to
4533 rewrite_dom_walker::before_dom_children.
4534 (rewrite_leave_block): Convert to
4535 rewrite_dom_walker::after_dom_children.
4536 (rewrite_update_dom_walker): New class.
4537 (rewrite_update_enter_block): Convert to
4538 rewrite_update_dom_walker::before_dom_children.
4539 (rewrite_update_leave_block): Convert to
4540 rewrite_update_dom_walker::after_dom_children.
4541 (rewrite_blocks, rewrite_into_ssa): Adjust.
4542 (mark_def_dom_walker): New class.
4543 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4544 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4545 (mark_def_sites_blocks): Convert to
4546 mark_def_dom_walker::before_dom_children.
4547 (mark_def_site_blocks): Remove.
4548 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4549 (tree_ssa_dominator_optimize): Adjust.
4550 (dom_thread_across_edge): Convert to method
4551 dom_opt_dom_walker::thread_across_edge.
4552 (dom_opt_enter_block): Convert to member function
4553 dom_opt_dom_walker::before_dom_children.
4554 (dom_opt_leave_block): Convert to member function
4555 dom_opt_dom_walker::after_dom_children.
4556 * tree-ssa-dse.c (dse_dom_walker): New class.
4557 (dse_enter_block): Convert to member function
4558 dse_dom_walker::before_dom_children.
4559 (tree_ssa_dse): Adjust.
4560 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4561 (determine_invariantness_stmt): Convert to method
4562 invariantness_dom_walker::before_dom_children.
4563 (determine_invariantness): Remove
4564 (move_computations_dom_walker): New class.
4565 (move_computations_stmt): Convert to method
4566 move_computations_dom_walker::before_dom_children.
4567 (move_computations, tree_ssa_lim): Adjust.
4568 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4569 (nt_init_block): Make method
4570 notrappping_dom_walker::before_dom_children.
4571 (nt_fini_block): Make
4572 method nontrapping_dom_walker::after_dom_children.
4573 (get_non_trapping): Adjust.
4574 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4575 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4576 (eliminate_leave_block): Make method.
4577 eliminate_dom_walker::after_dom_children.
4578 (eliminate): Adjust
4579 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4580 (strlen_enter_block): Make method
4581 strlen_dom_walker::before_dom_children.
4582 (strlen_leave_block): Make
4583 method strlen_dom_walker::after_dom_children.
4584 (tree_ssa_strlen): Adjust.
4585 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4586 (tree_ssa_uncprop): Adjust.
4587 (uncprop_leave_block): Make method
4588 uncprop_dom_walker::after_dom_children.
4589 (uncprop_leave_block): Make method
4590 uncprop_dom_walker::before_dom_children.
4591
3b3cc26b
BC
45922013-09-18 Bin Cheng <bin.cheng@arm.com>
4593
7a5911d3
UB
4594 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4595 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4596
b5ba3a9b
NC
45972013-09-17 Nick Clifton <nickc@redhat.com>
4598
4599 * config/rl78/rl78-real.md (bf): New pattern.
4600 (bt): New pattern.
4601 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4602 (rl78_print_operand): Do not put a # before a %B.
4603 * config/rl78/rl78.opt: Tweak doc strings.
4604
09d5094b
DD
46052013-09-17 DJ Delorie <dj@redhat.com>
4606
4607 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4608 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4609 (rl78_option_override): Likewise, if -mallregs.
4610 (is_virtual_register): Likewise.
4611 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4612 (REGNO_OK_FOR_BASE_P): Likewise.
4613 * config/rl78/rl78.opt (-mallregs): New.
4614
2ba1dca1
NC
46152013-09-17 Nick Clifton <nickc@redhat.com>
4616
4617 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4618 For interrupt functions: save all call clobbered registers if the
4619 interrupt handler is not a leaf function.
4620 (rl78_expand_prologue): Always recompute the frame information.
4621 For interrupt functions: only select bank 0 if one of the bank 0
4622 registers is going to be psuhed.
4623
2e7c3f21
DD
46242013-09-17 DJ Delorie <dj@redhat.com>
4625
4626 * config/rl78/constraints.md: For each W* constraint, rename to C*
4627 and create a W* constraint that checks for an optional ES: prefix
4628 pattern also.
4629 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4630 (es_addr): New. Used to wrap far addresses.
4631 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4632 (rl78_es_base): New.
4633 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4634 wrapped far addresses.
4635 (rl78_print_operand_1): Unwrap far addresses before processing.
4636 (rl78_lo16): Wrap far addresses in unspecs.
4637 (rl78_es_addr): New.
4638 (rl78_es_base): New.
4639 (insn_ok_now): Check for not-yet-wrapped far addresses.
4640 (transcode_memory_rtx): Properly re-wrap far addresses.
4641
5c26a69a
SH
46422013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4643
4644 * config/sparc/t-rtems: Add leon3 multilibs.
4645
181f5f3e
CH
46462013-09-17 Cong Hou <congh@google.com>
4647
4648 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4649 when checking the dot production pattern. The type of rhs operand
4650 of multiply is now checked correctly.
4651
8d34e421
JL
46522013-09-17 Jeff Law <law@redhat.com>
4653
4654 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4655 edge implied equivalences into successor phis.
4656 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4657 here from tree-ssa-threadedge.c.
4658 (mark_threaded_blocks): When threading through a joiner, if both
4659 successors of the joiner's clone reach the same block, verify the
4660 PHI arguments are equal. If not, cancel the jump threading request.
4661 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4662 tree-ssa-threadupdate.c
4663 (thread_across_edge): Don't check PHI argument equality when
4664 threading through joiner block here.
7a5911d3 4665
c152901f
AM
46662013-09-17 Andrew MacLeod <amacleod@redhat.com>
4667
4668 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4669 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4670 (warn_uninit, warn_uninitialized_vars,
4671 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4672 Move to tree-ssa-uninit.c.
78cedfb1 4673 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4674 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4675 ssa_undefined_value_p.
4676 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4677 (warn_uninit, warn_uninitialized_vars,
4678 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4679 Move from tree-ssa.c.
4680 * tree-ssa.h: Adjust prototypes.
c152901f 4681
b631d45a
JH
46822013-09-17 Jan Hubicka <jh@suse.cz>
4683
4684 PR middle-end/58332
4685 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4686 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4687 FUNCTION_NOT_OPTIMIZED.
4688 * ipa-inline-analysis.c (compute_inline_parameters): Function
4689 not optimized is not inlinable unless it is alwaysinline.
4690 (inline_analyze_function): Force calls in not optimized
4691 function not inlinable.
4692
5b79657a
JH
46932013-09-17 Jan Hubicka <jh@suse.cz>
4694
4695 PR middle-end/58329
4696 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4697 to return NULL.
4698 * ipa.c (function_and_variable_visibility): Likewise.
4699 * ipa-profile.c (ipa_profile): Likewise.
4700
27442c24
BE
47012013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4702
4703 PR ipa/58398
4704 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4705 attribute, and don't inline the resolver in this case.
4706
753b9bc3
TJ
47072013-09-17 Teresa Johnson <tejohnson@google.com>
4708
4709 * coverage.c (get_coverage_counts): Add missing newline.
4710
e3d3cfb4
KT
47112013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4712
4713 PR tree-optimization/58088
4714 * fold-const.c (mask_with_trailing_zeros): New function.
4715 (fold_binary_loc): Make sure we don't recurse infinitely
4716 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4717 Use mask_with_trailing_zeros where appropriate.
4718
9a0ac98f
YR
47192013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4720
4721 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4722 of 'prev' var to get better distance estimation.
4723
78bbd765
EB
47242013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4725
4726 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4727 * tree-inline.c (is_parameter_of): New predicate.
4728 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4729 a parameter has been remapped.
4730 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4731 (optimize_inline_calls): Initialize transform_parameter.
4732 (copy_gimple_seq_and_replace_locals): Likewise.
4733 (tree_function_versioning): Likewise.
4734 (maybe_inline_call_in_expr): Likewise.
4735
cad055a4
NC
47362013-09-17 Nick Clifton <nickc@redhat.com>
4737
4738 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4739 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4740 interrupt handlers.
4741 (is_attr_func): New function.
4742 (msp430_is_interrupt_func): New function.
4743 (is_naked_func): New function.
4744 (is_reentrant_func): New function.
4745 (is_critical_func): New function.
4746 (msp430_start_function): Add annotations for function attributes.
4747 (msp430_attr): New function.
4748 (msp430_attribute_table): New.
4749 (msp430_function_section): New function.
4750 (TARGET_ASM_FUNCTION_SECTION): Define.
4751 (msp430_builtin): New enum.
4752 (msp430_init_builtins): New function.
4753 (msp430_builtin_devl): New function.
4754 (msp430_expand_builtin): New function.
4755 (TARGET_INIT_BUILTINS): Define.
4756 (TARGET_EXPAND_BUILTINS): Define.
4757 (TARGET_BUILTIN_DECL): Define.
4758 (msp430_expand_prologue): Add support for naked, interrupt,
4759 critical and reentrant functions.
4760 (msp430_expand_epilogue): Likewise.
4761 (msp430_print_operand): Handle 'O' character.
4762 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4763 NO_TRAMPOLINES.
4764 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4765 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4766 (pushm): Use a 'n' rather than an 'i' constraint.
4767 (msp_return): Add generation of the interrupt return instruction.
4768 (disable_interrupts): New pattern.
4769 (enable_interrupts): New pattern.
4770 (push_intr_state): New pattern.
4771 (pop_intr_state): New pattern.
4772 (bic_SR): New pattern.
4773 (bis_SR): New pattern.
4774 * doc/extend.texi: Document MSP430 function attributes and builtin
4775 functions.
4776
deb6c11a
RB
47772013-09-17 Richard Biener <rguenther@suse.de>
4778
4779 PR tree-optimization/58432
4780 * tree-loop-distribution.c (tree_loop_distribution): Also
4781 scan PHIs for outside loop uses and seed a partition from them.
4782
c068654b
BC
47832013-09-17 Bin Cheng <bin.cheng@arm.com>
4784
4785 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4786 (restructure_reference): Call backtrace_base_for_ref.
4787
567969e4
AM
47882013-09-17 Alan Modra <amodra@gmail.com>
4789
4790 PR target/57589
7a5911d3
UB
4791 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4792 patch.
567969e4 4793
5c0029de
DD
47942013-09-16 DJ Delorie <dj@redhat.com>
4795
4796 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4797 vregs location for RL78/G10.
4798 (rl78_expand_prologue): Avoid SEL on G10.
4799 (rl78_expand_epilogue): Likewise.
4800 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4801 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4802 __RL78_G10__ when appropriate.
4803 (ASM_SPEC): Pass -mg10 along to the assembler.
4804 * config/rl78/rl78.md (sel_rb): Disable for G10.
4805 * config/rl78/rl78.opt: Add -mg10 option.
4806 * config/rl78/t-rl78: Add -mg10 multilib.
4807
ea0f3e87
XDL
48082013-09-16 Xinliang David Li <davidxl@google.com>
4809
4810 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4811 * omp-low.c (omp_max_vf): Ditto.
4812 (expand_omp_simd): Ditto.
4813 * tree-vectorizer.c (vectorize_loops): Ditto.
4814 (gate_vect_slp): Ditto.
4815 (gate_increase_alignment): Ditto.
4816 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4817 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4818 (gate_tree_vectorize): Name change.
4819 (tree_vectorize): Ditto.
4820 (pass_vectorize::gate): Call new function.
4821 (pass_vectorize::execute): Ditto.
7a5911d3 4822 * opts.c: O3 default setting change.
ea0f3e87
XDL
4823 (finish_options): Check new flag.
4824 * doc/invoke.texi: Document new flags.
4825 * common.opt: New flags.
4826
4f3da2e5
AS
48272013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4828
4829 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4830 (Condition Code): Don't reference it.
4831 * doc/tm.texi: Regenerate.
4832
aa940f7c
VM
48332013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4834
4835 PR middle-end/58418
4836 * lra-constraints.c (undo_optional_reloads): Consider all optional
4837 reload even if it did not get a hard reg.
4838
e645e942
TJ
48392013-09-16 Teresa Johnson <tejohnson@google.com>
4840
4841 * dumpfile.c (dump_loc): Remove newline emission.
4842 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
4843 emission to dump_printf_loc calls where missing.
4844 (vect_mark_for_runtime_alias_test): Ditto.
4845 (vect_analyze_data_ref_dependence): Ditto.
4846 (vect_analyze_data_ref_dependences): Ditto.
4847 (vect_slp_analyze_data_ref_dependence): Ditto.
4848 (vect_slp_analyze_data_ref_dependences): Ditto.
4849 (vect_compute_data_ref_alignment): Ditto.
4850 (vect_update_misalignment_for_peel): Ditto.
4851 (vect_verify_datarefs_alignment): Ditto.
4852 (vector_alignment_reachable_p): Ditto.
4853 (vect_get_data_access_cost): Ditto.
4854 (vect_enhance_data_refs_alignment): Ditto.
4855 (vect_find_same_alignment_drs): Ditto.
4856 (vect_analyze_data_refs_alignment): Ditto.
4857 (vect_analyze_group_access): Ditto.
4858 (vect_analyze_data_ref_access): Ditto.
4859 (vect_analyze_data_ref_accesses): Ditto.
4860 (vect_prune_runtime_alias_test_list): Ditto.
4861 (vect_analyze_data_refs): Ditto.
4862 (vect_create_addr_base_for_vector_ref): Ditto.
4863 (vect_create_data_ref_ptr): Ditto.
4864 (vect_grouped_store_supported): Ditto.
4865 (vect_grouped_load_supported): Ditto.
4866 * value-prof.c (check_counter): Ditto.
4867 (check_ic_target): Ditto.
4868 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
4869 (vect_recog_widen_mult_pattern): Ditto.
4870 (vect_recog_widen_sum_pattern): Ditto.
4871 (vect_recog_over_widening_pattern): Ditto.
4872 (vect_recog_widen_shift_pattern): Ditto.
4873 (vect_recog_rotate_pattern): Ditto.
4874 (vect_recog_vector_vector_shift_pattern): Ditto.
4875 (vect_recog_divmod_pattern): Ditto.
4876 (vect_recog_mixed_size_cond_pattern): Ditto.
4877 (vect_recog_bool_pattern): Ditto.
4878 (vect_pattern_recog_1): Ditto.
4879 (vect_pattern_recog): Ditto.
4880 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
4881 (vect_is_simple_iv_evolution): Ditto.
4882 (vect_analyze_scalar_cycles_1): Ditto.
4883 (vect_get_loop_niters): Ditto.
4884 (vect_analyze_loop_1): Ditto.
4885 (vect_analyze_loop_form): Ditto.
4886 (vect_analyze_loop_operations): Ditto.
4887 (vect_analyze_loop_2): Ditto.
4888 (vect_analyze_loop): Ditto.
4889 (report_vect_op): Ditto.
4890 (vect_is_slp_reduction): Ditto.
4891 (vect_is_simple_reduction_1): Ditto.
4892 (vect_get_known_peeling_cost): Ditto.
4893 (vect_estimate_min_profitable_iters): Ditto.
4894 (vect_model_reduction_cost): Ditto.
4895 (vect_model_induction_cost): Ditto.
4896 (get_initial_def_for_induction): Ditto.
4897 (vect_create_epilog_for_reduction): Ditto.
4898 (vectorizable_reduction): Ditto.
4899 (vectorizable_induction): Ditto.
4900 (vectorizable_live_operation): Ditto.
4901 (vect_loop_kill_debug_uses): Ditto.
4902 (vect_transform_loop): Ditto.
4903 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
4904 (vect_stmt_relevant_p): Ditto.
4905 (process_use): Ditto.
4906 (vect_mark_stmts_to_be_vectorized): Ditto.
4907 (vect_model_simple_cost): Ditto.
4908 (vect_model_promotion_demotion_cost): Ditto.
4909 (vect_model_store_cost): Ditto.
4910 (vect_get_store_cost): Ditto.
4911 (vect_model_load_cost): Ditto.
4912 (vect_get_load_cost): Ditto.
4913 (vect_init_vector_1): Ditto.
4914 (vect_get_vec_def_for_operand): Ditto.
4915 (vect_finish_stmt_generation): Ditto.
4916 (vectorizable_call): Ditto.
4917 (vectorizable_conversion): Ditto.
4918 (vectorizable_assignment): Ditto.
4919 (vectorizable_shift): Ditto.
4920 (vectorizable_operation): Ditto.
4921 (vectorizable_store): Ditto.
4922 (vectorizable_load): Ditto.
4923 (vectorizable_condition): Ditto.
4924 (vect_analyze_stmt): Ditto.
4925 (vect_transform_stmt): Ditto.
4926 (vect_is_simple_use): Ditto.
4927 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
4928 (vect_can_advance_ivs_p): Ditto.
4929 (vect_update_ivs_after_vectorizer): Ditto.
4930 (vect_do_peeling_for_loop_bound): Ditto.
4931 (vect_gen_niters_for_prolog_loop): Ditto.
4932 (vect_update_inits_of_drs): Ditto.
4933 (vect_create_cond_for_alias_checks): Ditto.
4934 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
4935 (vect_build_slp_tree_1): Ditto.
4936 (vect_supported_load_permutation_p): Ditto.
4937 (vect_analyze_slp_instance): Ditto.
4938 (vect_analyze_slp): Ditto.
4939 (vect_make_slp_decision): Ditto.
4940 (vect_detect_hybrid_slp): Ditto.
4941 (vect_bb_vectorization_profitable_p): Ditto.
4942 (vect_slp_analyze_bb_1): Ditto.
4943 (vect_update_slp_costs_according_to_vf): Ditto.
4944 (vect_get_mask_element): Ditto.
4945 (vect_transform_slp_perm_load): Ditto.
4946 (vect_schedule_slp_instance): Ditto.
4947 (vect_schedule_slp): Ditto.
4948 (vect_slp_transform_bb): Ditto.
4949 * profile.c (read_profile_edge_counts): Ditto.
4950 (compute_branch_probabilities): Ditto.
4951 * coverage.c (get_coverage_counts): Ditto.
4952
46f851f3
DN
49532013-09-16 Diego Novillo <dnovillo@google.com>
4954
7a5911d3 4955 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 4956
1632a686
JH
49572013-09-16 Jan Hubicka <jh@suse.cz>
4958
4959 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 4960 abstract functions; for static functions check the presence of body.
1632a686 4961
828e70c1
JG
49622013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4963
4964 * config/aarch64/aarch64-simd-builtins.def (fma): New.
4965 * config/aarch64/aarch64-simd.md
4966 (aarch64_mla_elt<mode>): New.
4967 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4968 (aarch64_mls_elt<mode>): Likewise.
4969 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4970 (aarch64_fma4_elt<mode>): Likewise.
4971 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4972 (aarch64_fma4_elt_to_128v2df): Likewise.
4973 (aarch64_fma4_elt_to_64df): Likewise.
4974 (fnma<mode>4): Likewise.
4975 (aarch64_fnma4_elt<mode>): Likewise.
4976 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4977 (aarch64_fnma4_elt_to_128v2df): Likewise.
4978 (aarch64_fnma4_elt_to_64df): Likewise.
4979 * config/aarch64/iterators.md (VDQSF): New.
4980 * config/aarch64/arm_neon.h
4981 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
4982 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
4983
779aea46
JG
49842013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4985
4986 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
4987 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4988 (aarch64_mul3_elt_to_128df): Likewise.
4989 (aarch64_mul3_elt_to_64v2df): Likewise.
4990 * config/aarch64/iterators.md (VEL): Also handle DFmode.
4991 (VMUL): New.
4992 (VMUL_CHANGE_NLANES) Likewise.
4993 (h_con): Likewise.
4994 (f): Likewise.
4995 * config/aarch64/arm_neon.h
4996 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
4997
a407a750
JG
49982013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4999
5000 * config/aarch64/arm_neon.h
5001 (vcvtx_high_f32_f64): Fix parameters.
5002
f77e2d2d 50032013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 5004 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 5005
a5bd71fa 5006 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 5007
36875e8f
RB
50082013-09-16 Richard Biener <rguenther@suse.de>
5009
5010 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
5011 (dot_rdg_1): Handle control_dd.
5012 (create_edge_for_control_dependence): New function.
5013 (create_rdg_edges): Add control dependences if asked for.
5014 (build_rdg): Likewise.
5015 (generate_loops_for_partition): If there are not necessary
5016 control stmts remove all their dependencies.
5017 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
5018 (distribute_loop): Pass on control dependences.
5019 (tree_loop_distribution): Compute control dependences and remove
5020 restriction on number of loop nodes.
5021
96e24d49
JJ
50222013-09-16 Jakub Jelinek <jakub@redhat.com>
5023
5024 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
5025 for internal calls.
5026
40dbb05c
RS
50272013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
5028
5029 * cse.c (try_const_anchors): Punt on CC modes.
5030
97191ad0
JBG
50312013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5032
5033 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
5034
403a3fb7
JDA
50352013-09-14 John David Anglin <danglin@gcc.gnu.org>
5036
5037 PR target/58382
5038 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5039 calls to word_mode.
5040
fb5610fb
IS
50412013-09-14 Iain Sandoe <iain@codesourcery.com>
5042
5043 PR target/48094
5044 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
5045 seen.
5046 (darwin_objc1_section): Likewise.
fb5610fb
IS
5047 (darwin_file_end): Emit Image Info section when required.
5048
afdec9bd
JH
50492013-09-14 Jan Hubicka <jh@suse.cz>
5050
5051 * tree-into-ssa.c (gate_into_ssa): New.
5052 (pass_data_build_ssa): Use it.
5053 * cgraph.h (expand_thunk): Update prototype.
5054 * cgraphunit.c (analyze_function): Expand thunks early.
5055 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
5056 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
5057 set lowered flag; do not add new function.
5058 (assemble_thunks_and_aliases): Update.
5059 * tree-ssa.c (gate_init_datastructures): New gate.
5060 (pass_data_init_datastructures): Use it.
5061
492d1e0a
IS
50622013-09-14 Iain Sandoe <iain@codesourcery.com>
5063
5064 PR target/58269
f77e2d2d 5065 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
5066 xmm register set described in the psABI.
5067
d13c6b70
EG
50682013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
5069
f77e2d2d
JBG
5070 * dwarf2out.c (should_emit_struct_debug): Add check
5071 for type_decl variable is not NULL.
d13c6b70 5072
88b0e79e
JC
50732013-09-13 Jacek Caban <jacek@codeweavers.com>
5074
5075 * config.gcc: Use new winnt-c.c target hooks
5076 * config/t-winnt: New file
5077 * config/winnt-c.c: New file
5078 * doc/tm.texi.in: Document new hook
5079 * doc/tm.texi: Regenerated
5080
19ba6aab
JH
50812013-09-13 Jan Hubicka <jh@suse.cz>
5082
5083 PR middle-end/58094
5084 * ipa-inline.c (check_callers): New function.
5085 (check_caller_edge): Remove.
5086 (want_inline_function_to_all_callers_p): Also permit alises that are
5087 called dirrectly.
5088 (inline_to_all_callers): Terminate the walk when devirtualization
5089 introduce new calls.
5090
a93c18c8
JH
50912013-09-13 Jan Hubicka <jh@suse.cz>
5092
5093 * ipa-inline-analysis.c (struct growth_data): Add node.
5094 (do_estimate_growth_1): Fix detection of recursion.
5095
f3b331d1
JJ
50962013-09-13 Jakub Jelinek <jakub@redhat.com>
5097
5098 PR tree-optimization/58392
5099 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5100 to avoid shadowing of outer loop variable. If
5101 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5102 replace_by_duplicate_decl simduid of loops that have it set and
5103 set dest_cfun->has_simduid_loops and/or
5104 dest_cfun->has_force_vect_loops.
5105 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5106 instead of maybe_lookup_decl.
5107 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5108 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5109 call. Copy over force_vect and copy and remap simduid. Set
5110 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5111 (copy_cfg_body): Remove blocks_to_copy argument. Use
5112 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5113 caller. Don't set cfun->has_simduid_loops and/or
5114 cfun->has_force_vect_loops here.
5115 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5116 caller.
5117 (expand_call_inline, tree_function_versioning): Adjust copy_body
5118 callers.
5119
ae6d0907
MJ
51202013-09-13 Martin Jambor <mjambor@suse.cz>
5121
5122 PR bootstrap/58388
5123 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5124 the assert if the edge was a speculative one.
5125
2fd5894f
RB
51262013-09-13 Richard Biener <rguenther@suse.de>
5127
5128 * tree-data-ref.h (known_dependences_p): Move here ...
5129 * tree-loop-distribution.c (known_dependences_p): ... from here.
5130 (dump_rdg_component, debug_rdg_component): Remove.
5131 (dump_rdg): Adjust.
5132 (generate_loops_for_partition): Use gimple_uid instead of
5133 relying on matching stmt visit order.
5134 (rdg_build_partitions): Take starting stmt vector.
5135 (ldist_gen): Merge into ...
5136 (distribute_loop): ... this function. Do not compute starting
5137 vertices vector.
5138 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5139
86eb4bd7
KT
51402013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5141
5142 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5143 Set type attribute correctly. Set predicable_short_it attribute.
5144 (cmpsi_shiftsi): Remove %? from output template.
5145
83a95546
RB
51462013-09-13 Richard Biener <rguenther@suse.de>
5147
5148 * tree-loop-distribution.c (struct rdg_component,
5149 rdg_defs_used_in_other_loops_p, free_rdg_components,
5150 rdg_build_components): Remove.
5151 (stmts_from_loop): Do not record virtual PHIs.
5152 (generate_loops_for_partition): Skip virtual PHIs.
5153 (build_rdg_partition_for_component): Rename to ...
5154 (build_rdg_partition_for_vertex): ... this and adjust.
5155 (rdg_build_partitions): Take a vector of starting vertices
5156 instead of components. Remove unnecessary leftover handling.
5157 (ldist_gen): Do not build components or record other stores.
5158 (distribute_loop): Do not distribute loops containing stmts
5159 with side-effects.
5160
c0ecf7f1
CB
51612013-09-13 Christian Bruel <christian.bruel@st.com>
5162
5163 PR target/58314
5164 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5165
34f56efc
KT
51662013-09-13 Kai Tietz <ktietz@redhat.com>
5167
740f2bf3
KT
5168 * config.gcc: Separate cases for mingw and cygwin targets,
5169 and add 64-bit cygwin target case.
5170
34f56efc
KT
5171 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5172 dll-export inline-functions.
5173 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5174
5175
51762013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5177
5178 PR middle-end/58387
5179 Revert:
5180 2013-09-06 Jeff Law <law@redhat.com>
5181
5182 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5183 edge implied equivalences into successor phis.
5184
aadb52ad
DD
51852013-09-12 DJ Delorie <dj@redhat.com>
5186
5187 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5188 separators.
5189
90ae7019
BM
51902013-09-12 Brooks Moses <bmoses@google.com>
5191
5192 PR driver/42955
5193 * Makefile.in: Do not install driver binaries in $(target)/bin.
5194
17b2557c
DD
51952013-09-12 DJ Delorie <dj@redhat.com>
5196
c5215a9b
DD
5197 * config/rl78/rl78.opt (mrelax): New.
5198 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5199 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5200
17b2557c
DD
5201 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5202 between SP and FP.
5203 (rl78_expand_epilogue): Likewise.
5204
ecafcf05
VM
52052013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5206
5207 PR middle-end/58335
84f6d9fa 5208 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5209 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5210 pointer elimination with using remove_reg_equal_offset_note.
5211
8369f38a
DD
52122013-09-12 DJ Delorie <dj@redhat.com>
5213
f6a83b4a
DD
5214 * config/msp430/: New port.
5215 * config.gcc (msp430): Added.
5216 * doc/invoke.texi: Document MSP430 options.
5217 * doc/install.texi: Document msp430-elf
5218 * doc/md.texi: Document msp430-elf
5219 * doc/contrib.texi: Document msp430-elf
5220
8369f38a
DD
5221 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5222 PSImode.
5223
a854f856
MJ
52242013-09-12 Martin Jambor <mjambor@suse.cz>
5225
5226 PR ipa/58389
5227 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5228 reference descriptor is NULL.
5229 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5230 edge to NULL.
5231
b12ebd96
AM
52322013-09-12 Andrew MacLeod <amacleod@redhat.com>
5233
5234 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5235 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5236 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5237 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5238 make_temp_ssa_name): move to tree-ssanames.h
5239 * tree-ssa-alias.h: Move prototype.
5240 * tree-ssa.h: Include tree-ssanames.h.
5241 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5242 * tree-ssanames.h: New. Move items from tree-flow*.h
5243 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5244
e1fb4ad3
RB
52452013-09-12 Richard Biener <rguenther@suse.de>
5246
5247 PR tree-optimization/58404
5248 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5249 propagate non-invariant addresses into dereferences wrapped
5250 in component references.
5251
154c9188
RB
52522013-09-12 Richard Biener <rguenther@suse.de>
5253
5254 PR tree-optimization/58402
5255 * passes.def: Move pass_late_warn_uninitialized later.
5256
7a300452
AM
52572013-09-12 Andrew MacLeod <amacleod@redhat.com>
5258
5259 * tree-ssa.h: New. Move content from tree-flow.h and
5260 tree-flow-inline.h.
5261 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5262 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5263 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5264 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5265 tree-ssa.h.
5266 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5267 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5268 to...
5269 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5270 * tree.h: Move prototype to tree-ssa.h.
5271 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5272 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5273 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5274 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5275 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5276 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5277 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5278 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5279 graphite-blocking.c, graphite-clast-to-gimple.c,
5280 graphite-dependences.c, graphite-interchange.c,
5281 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5282 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5283 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5284 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5285 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5286 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5287 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5288 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5289 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5290 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5291 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5292 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5293 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5294 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5295 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5296 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5297 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5298 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5299 value-prof.c, var-tracking.c,
5300 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5301
97463b2b
RB
53022013-09-12 Richard Biener <rguenther@suse.de>
5303
5304 PR tree-optimization/58396
5305 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5306 (build_rdg): Take a loop-nest parameter, fix memleaks.
5307 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5308
80ecd89d
YR
53092013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5310
5311 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5312 for SLM.
5313
893e85fa
CM
53142013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5315
5316 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5317 The FMA instruction names should have a 'v' prefix.
5318
174ec470
RB
53192013-09-12 Richard Biener <rguenther@suse.de>
5320
5321 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5322 (dot_rdg): Use popen instead of system in optional code.
5323 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5324 (already_processed_vertex_p): Adjust.
5325 (has_anti_or_output_dependence, predecessor_has_mem_write,
5326 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5327 rdg_flag_uses): Remove.
5328 (rdg_flag_vertex): Simplify.
5329 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5330 remove recursion.
5331 (build_rdg_partition_for_component): Process the first vertex
5332 of a component only.
5333 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5334
38c89763
AM
53352013-09-12 Alan Modra <amodra@gmail.com>
5336
5337 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5338
3e3d9d17
DD
53392013-09-11 DJ Delorie <dj@redhat.com>
5340 Nick Clifton <nickc@redhat.com>
5341
5342 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5343 (rl78_stack_based_mem): New.
5344 * config/rl78/constraints.md (Iv08): New.
5345 (Iv16): New.
5346 (Iv24): New.
5347 (Is09): New.
5348 (Is17): New.
5349 (Is25): New.
5350 (ISsi): New.
5351 (IShi): New.
5352 (ISqi): New.
5353 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5354 (movhi): Likewise.
5355 (movsi): Change from expand to insn-and-split.
5356 (ashrsi3): Clobber AX.
5357 (lshrsi3): New.
5358 (ashlsi3): New.
5359 (cbranchsi4): New.
5360 * config/rl78/rl78.md (CC_REG): Fix.
5361 (addsi3): Allow memory and immediate operands.
5362 (addsi3_internal): Split into...
5363 (addsi3_internal_virt): ...new, and ...
5364 (addsi3_internal_real): ...new.
5365 (subsi): New.
5366 (subsi3_internal_virt): New.
5367 (subsi3_internal_real): New.
5368 (mulsi3): Add memory operand.
5369 (mulsi3_rl78): Likewise.
5370 (mulsi3_g13): Likewise.
5371 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5372 (cbranchqi4_real): Add more constraint options.
5373 (cbranchhi4_real): Expand pattern.
5374 (cbranchhi4_real_signed): New.
5375 (cbranchhi4_real_inverted): New.
5376 (cbranchsi4_real_lt): New.
5377 (cbranchsi4_real_ge): New.
5378 (cbranchsi4_real_signed): New.
5379 (cbranchsi4_real): New.
5380 (peephole2): New.
893e85fa
CM
5381 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5382 constant shifts.
3e3d9d17
DD
5383 (lshrsi3_virt): Likewise.
5384 (ashlsi3_virt): Likewise.
5385 (cbranchqi4_virt_signed): New.
5386 (cbranchhi4_virt_signed): New.
5387 (cbranchsi4_virt): New.
5388 * config/rl78/rl78.c: Whitespace fixes throughout.
5389 (move_elim_pass): New.
5390 (pass_data_rl78_move_elim): New.
5391 (pass_rl78_move_elim): New.
5392 (make_pass_rl78_move_elim): New.
5393 (rl78_devirt_info): Run devirt earlier.
5394 (rl78_move_elim_info): New.
5395 (rl78_asm_file_start): Register it.
5396 (rl78_split_movsi): New.
5397 (rl78_as_legitimate_address): Allow virtual base registers when
5398 appropriate.
5399 (rl78_addr_space_convert): Remove spurious debug stuff.
5400 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5401 (rl78_print_operand): More cases for not printing '#'.
5402 (rl78_expand_compare): Remove most of the logic.
5403 (content_memory): New.
5404 (clear_content_memory): New.
5405 (get_content_index): New.
5406 (get_content_name): New.
5407 (display_content_memory): New.
5408 (update_content): New.
5409 (record_content): New.
5410 (already_contains): New.
5411 (insn_ok_now): Re-recog insns with virtual registers.
5412 (add_postponed_content_update): New.
5413 (process_postponed_content_update): New.
5414 (gen_and_emit_move): New.
893e85fa
CM
5415 (transcode_memory_rtx): Record new location content.
5416 Use gen_and_emit_move.
3e3d9d17
DD
5417 (force_into_acc): New.
5418 (move_to_acc): Use gen_and_emit_move.
5419 (move_from_acc): Likewise.
5420 (move_acc_to_reg): Likewise.
5421 (move_to_x): Likewise.
5422 (move_to_hl): Likewise.
5423 (move_to_de): Likewise.
5424 (rl78_alloc_physical_registers_op1): Record location content.
5425 (has_constraint): New.
5426 (rl78_alloc_physical_registers_op2): Record location content.
5427 Optimize use of HL.
5428 (rl78_alloc_physical_registers_ro1): Likewise.
5429 (rl78_alloc_physical_registers_cmp): Likewise.
5430 (rl78_alloc_physical_registers_umul): Likewise.
5431 (rl78_alloc_address_registers_macax): New.
5432 (rl78_alloc_physical_registers): Initialize and set location
5433 content memory as needed.
5434 (rl78_reorg): Make sure split2 is called.
5435 (rl78_rtx_costs): New.
5436
088845a5
RS
54372013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5438
5439 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5440 for (not (neg ...)) and (neg (not ...)) cases.
5441
5c2961cf
RB
54422013-09-11 Richard Biener <rguenther@suse.de>
5443
5444 PR middle-end/58377
5445 * passes.def: Split critical edges before late uninit warning passes.
5446 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5447
427e6a14
JJ
54482013-09-11 Jakub Jelinek <jakub@redhat.com>
5449
5450 PR tree-optimization/58385
5451 * fold-const.c (build_range_check): If both low and high are NULL,
5452 use omit_one_operand_loc to preserve exp side-effects.
5453
df45c0cc
KT
54542013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5455
5456 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5457
80ab0b19
RB
54582013-09-11 Richard Biener <rguenther@suse.de>
5459
5460 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5461 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5462 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5463 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5464 stmts_from_loop, known_dependences_p, build_empty_rdg,
5465 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5466 * tree-loop-distribution.c: ... here.
5467 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5468 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5469 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5470 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5471 * tree-loop-distribution.c: ... here.
5472 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5473 (struct partition_s): Add loops member.
5474 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5475 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5476 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5477
85a77221
AI
54782013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5479 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5480 Sergey Lega <sergey.s.lega@intel.com>
5481 Anna Tikhonova <anna.tikhonova@intel.com>
5482 Ilya Tocar <ilya.tocar@intel.com>
5483 Andrey Turetskiy <andrey.turetskiy@intel.com>
5484 Ilya Verbin <ilya.verbin@intel.com>
5485 Kirill Yukhin <kirill.yukhin@intel.com>
5486 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5487
5488 * config/i386/constraints.md (k): New.
5489 (Yk): Ditto.
5490 * config/i386/i386.c (const regclass_map): Add new mask registers.
5491 (dbx_register_map): Ditto.
5492 (dbx64_register_map): Ditto.
5493 (svr4_dbx_register_map): Ditto.
5494 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5495 disabled.
5496 (ix86_preferred_reload_class): Disable constants for mask registers.
5497 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5498 (ix86_hard_regno_mode_ok): Support new mask registers.
5499 (x86_order_regs_for_local_alloc): Ditto.
5500 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5501 (FIXED_REGISTERS): Add new mask registers.
5502 (CALL_USED_REGISTERS): Ditto.
5503 (REG_ALLOC_ORDER): Ditto.
5504 (VALID_MASK_REG_MODE): New.
5505 (FIRST_MASK_REG): Ditto.
5506 (LAST_MASK_REG): Ditto.
5507 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5508 (MAYBE_MASK_CLASS_P): New.
5509 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5510 (REG_CLASS_CONTENTS): Ditto.
5511 (MASK_REGNO_P): New.
5512 (ANY_MASK_REG_P): Ditto.
5513 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5514 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5515 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5516 mask registers.
85a77221
AI
5517 (attribute "type"): Add mskmov, msklog.
5518 (attribute "length_immediate"): Support them.
5519 (attribute "memory"): Ditto.
5520 (attribute "prefix_0f"): Ditto.
5521 (*movhi_internal): Support new mask registers.
5522 (*movqi_internal): Ditto.
5523 (define_split): Split out clobber pattern is a logic
5524 insn on mask registers.
5525 (*k<logic><mode>): New.
5526 (*andhi_1): Extend to support mask regs.
5527 (*andqi_1): Extend to support mask regs.
5528 (kandn<mode>): New.
5529 (define_split): Split and-not to and and not if operands
5530 are not mask regs.
5531 (*<code><mode>_1): Separate HI mode to new pattern...
5532 (*<code>hi_1): This.
5533 (*<code>qi_1): Extend to support mask regs.
5534 (kxnor<mode>): New.
5535 (kortestzhi): Ditto.
5536 (kortestchi): Ditto.
5537 (kunpckhi): Ditto.
5538 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5539 (*one_cmplhi2_1): ...Here, now with mask registers support.
5540 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5541 (HI/QImode arithmetics splitter): Don't split if mask registers
5542 are used.
85a77221
AI
5543 (HI/QImode not splitter): Ditto.
5544 * config/i386/predicated.md (mask_reg_operand): New.
5545 (general_reg_operand): Ditto.
5546
7e570821
AI
55472013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5548
5549 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5550 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5551
9e1376e9
JL
55522013-09-10 Jeff Law <law@redhat.com>
5553
5554 PR tree-optimization/58380
5555 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5556 of threading through a buried loop header.
5557
5558 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5559 return value for single successor case.
5560
5bbcb888
JH
55612013-09-10 Jan Hubicka <jh@suse.cz>
5562
5563 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5564
d742ff4b
RE
55652013-09-10 Richard Earnshaw <rearnsha@arm.com>
5566
5567 PR target/58361
5568 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5569 support conditional execution.
5570 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5571
b0681c9e
VM
55722013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5573
5574 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5575 constraint pass.
f77e2d2d
JBG
5576 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5577 Check destination too to check move insn.
b0681c9e 5578 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5579 changed its allocation and the optional reload was inherited on last
5580 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5581 (lra_undo_inheritance): Add check that inherited pseudo still in
5582 memory.
5583
c9b1c957
JG
55842013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5585
5586 * config/aarch64/aarch64.md (generic_sched): New.
5587 * config/aarch64/aarch64-generic.md (load): Make conditional
5588 on generic_sched attribute.
5589 (nonload): Likewise.
5590
82d618d3
JH
55912013-09-10 Jan Hubicka <jh@suse.cz>
5592
5593 * lto-cgraph.c: Include ipa-utils.h.
5594 (compute_ltrans_boundary): Also add possible targets into the boundary.
5595
668b6894
JH
55962013-09-10 Jan Hubicka <jh@suse.cz>
5597
5598 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5599 VAR_DECL of vtable rather than full expression.
5600
4f90d3e0
JH
56012013-09-10 Jan Hubicka <jh@suse.cz>
5602 Paolo Carlini <paolo.carlini@oracle.com>
5603
5604 * cgraphunit.c (analyze_functions): Save input_location, set it
5605 to UNKNOWN_LOCATION and restore it at the end.
5606
39e87baf
MJ
56072013-09-10 Martin Jambor <mjambor@suse.cz>
5608
5609 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5610 represented by a thunk.
5611
581aedec
JL
56122013-09-10 Jeff Law <law@redhat.com>
5613
5614 PR tree-optimization/58343
5615 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5616 jump threading requests through loop headers buried in the middle
5617 of a jump threading path.
5618
5619 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5620 in return value/type.
5621
84cf4ab6
JJ
56222013-09-10 Jakub Jelinek <jakub@redhat.com>
5623
5624 PR rtl-optimization/58365
5625 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5626 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5627 it differs.
5628
447dd906
RB
56292013-09-10 Richard Biener <rguenther@suse.de>
5630
5631 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5632 * tree-data-ref.c (create_rdg_vertices): Collect all data
5633 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5634 (build_rdg): Compute data references only once. Maintain lifetime
5635 of data references and data dependences from within RDG.
447dd906
RB
5636 (free_rdg): Free dependence relations.
5637 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5638 inventing extra dependences.
5639 (distribute_loop): Update for RDG API changes.
5640
f14a7324
KT
56412013-09-10 Kai Tietz <ktietz@redhat.com>
5642
5643 * doc/invoke.texi (fms-extensions): Document changed
5644 behavior for ms-abi targets.
5645 * config/i386/i386.c (ix86_option_override_internal):
5646 Set default value of option -fms-extension for ms-abi targets.
5647
ff131f26
MZ
56482013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5649
5650 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5651
33115a2c
AM
56522013-09-10 Alan Modra <amodra@gmail.com>
5653
5654 PR target/58330
5655 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5656
b6872a13
AM
56572013-09-10 Alan Modra <amodra@gmail.com>
5658
5659 * config/rs6000/predicates.md (add_cint_operand): New.
5660 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5661 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5662 using add_cint_operand.
5663 (largetoc_high_plus_aix): Likewise.
5664
28fd0ba2
JJ
56652013-09-09 Jakub Jelinek <jakub@redhat.com>
5666
5667 PR tree-optimization/58364
5668 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5669 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5670 the current range can't be an unconditional true or false.
5671
552d99fe
JG
56722013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5673
5674 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5675
f43245d1
UB
56762013-09-09 Uros Bizjak <ubizjak@gmail.com>
5677
5678 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5679
c9b0866a
PC
56802013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5681
5682 PR c++/43452
5683 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5684
78d8b9f0
IB
56852013-09-09 Ian Bolton <ian.bolton@arm.com>
5686
5687 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5688 NO_REGS for immediate that can't be moved directly into FP_REGS.
5689
274b2532
KT
56902013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5691
5692 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5693 comparison with negated operand.
c9b0866a
PC
5694 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5695 RTL form.
274b2532 5696
467a3558
RB
56972013-09-09 Richard Biener <rguenther@suse.de>
5698
5699 PR middle-end/58326
5700 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5701 of a subloop record all its block as affecting loop-closed SSA form.
5702
088c5368
RS
57032013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5704
5705 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5706 of an rtx/bitpos pair.
5707 (store_fixed_bit_field): Update accordingly.
5708
69db2d57
RS
57092013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5710
5711 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5712 GEN_INT.
5713 * builtins.c (expand_errno_check): Likewise.
5714 * dwarf2cfi.c (init_return_column_size): Likewise.
5715 * except.c (sjlj_mark_call_sites): Likewise.
5716 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5717 * lra-constraints.c (emit_inc): Likewise.
5718 * ree.c (combine_set_extension): Likewise.
5719 * regmove.c (fixup_match_2): Likewise.
5720 * reload1.c (inc_for_reload): Likewise.
5721
69a59f0f
RS
57222013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5723
5724 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5725 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5726 Use gen_int_mode with the mode of the associated simplify_* call.
5727 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5728 * expmed.c (expand_shift_1): Likewise.
5729 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5730 * loop-iv.c (iv_number_of_iterations): Likewise.
5731 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5732 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5733
2f1cd2eb
RS
57342013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5735
5736 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5737 of the associated expand_* call.
5738 (asan_emit_stack_protection): Likewise.
5739 * builtins.c (round_trampoline_addr): Likewise.
5740 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5741 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5742 (emit_store_flag): Likewise.
5743 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5744 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5745 Likewise.
5746 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5747 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5748 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5749 * modulo-sched.c (generate_prolog_epilog): Likewise.
5750 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5751 (expand_ctz, expand_ffs, expand_unop): Likewise.
5752
4789c0ce
RS
57532013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5754
5755 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5756 of the associated gen_rtx_* call.
5757 * caller-save.c (init_caller_save): Likewise.
5758 * combine.c (find_split_point, make_extraction): Likewise.
5759 (make_compound_operation): Likewise.
5760 * dwarf2out.c (mem_loc_descriptor): Likewise.
5761 * explow.c (plus_constant, probe_stack_range): Likewise.
5762 * expmed.c (expand_mult_const): Likewise.
5763 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5764 * reload1.c (init_reload): Likewise.
5765 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5766 * var-tracking.c (adjust_mems): Likewise.
5767 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5768 rather than gen_rtx_fmt_ee.
5769
a811f7cb
JH
57702013-09-09 Jan Hubicka <jh@suse.cz>
5771
5772 PR middle-end/58294
5773 * value-prof.c (gimple_ic): Copy also abnormal edges.
5774
dcad1dd3
RS
57752013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5776
5777 * asan.c (asan_shadow_cst): Use gen_int_mode.
5778
daf5c770
JH
57792013-09-08 Jan Hubicka <jh@suse.cz>
5780
5781 * ipa-profile.c: Add toplevel comment.
5782 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5783 (contains_hot_call_p): New function.
5784 (ipa_propagate_frequency): Set frequencies based on counts when
5785 profile is read.
5786 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5787 profile; do not tamper with profile after inlining if it is read.
5788
a12cd2db
JH
57892013-09-08 Jan Hubicka <jh@suse.cz>
5790
5791 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5792 speculative edges.
5793
856a1588
JH
57942013-09-08 Jan Hubicka <jh@suse.cz>
5795
5796 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5797 summary generation.
5798
4f4b0b73
JL
57992013-09-08 Jeff Law <law@redhat.com>
5800
5801 PR bootstrap/58340
5802 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5803 of 'found'.
5804
cc4029ee
AK
58052013-09-08 Andi Kleen <ak@linux.intel.com>
5806
5807 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5808
7b395ddd
JH
58092013-09-08 Jan Hubicka <jh@suse.cz>
5810
5811 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5812
c34c46dd
RS
58132013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5814
5815 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5816 for non-debug insns.
5817 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5818 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5819 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5820 accordingly.
5821
3462aa02
JH
58222013-09-08 Jan Hubicka <jh@suse.cz>
5823
5824 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5825 targets and devirtualize to BUILT_IN_UNREACHABLE.
5826 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5827 * ipa.c (walk_polymorphic_call_targets): New function.
5828 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5829 functions; use the new timevar.
5830 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5831 was removed from the program.
5832 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5833 not consider it in the walk when its vtable is dead.
5834 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5835 record_binfo.
5836 (devirt_variable_node_removal_hook): New function.
5837 (possible_polymorphic_call_targets): Also register
5838 devirt_variable_node_removal_hook.
5839 (ipa_devirt): Do not do non-speculative devirtualization.
5840 (gate_ipa_devirt): One execute if devirtualizing speculatively.
5841
26e5b0fd
JH
58422013-09-08 Jan Hubicka <jh@suse.cz>
5843
5844 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
5845 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
5846 varpool_remove_variable_insertion_hook): Declare.
5847 * varpool.c (varpool_node_hook_list): New structure.
5848 (first_varpool_node_removal_hook,
5849 first_varpool_variable_insertion_hook): New variables.
5850 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
5851 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
5852 varpool_remove_variable_insertion_hook,
5853 varpool_call_variable_insertion_hooks): New functions.
5854 (varpool_remove_node): Use it.
5855
97f1f314 58562013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 5857
97f1f314
PC
5858 PR c++/54941
5859 * diagnostic.c (diagnostic_build_prefix): When s.file is
5860 "<built-in>" don't output line and column numbers.
6df2ca09 5861
bcb650cb
JH
58622013-09-06 Jan Hubicka <jh@suse.cz>
5863
5864 * cgraphunit.c (expand_thunk): Get body before touching arguments.
5865 * lto-streamer-out.c: Stream thunks, too.
5866 * lto-streamer-in.c (input_function): Pop cfun here
5867 (lto_read_body): Instead of here.
5868
87f3fea8
CT
58692013-09-06 Caroline Tice <cmtice@google.com>
5870
5871 * doc/install.texi: Add documentation for the --enable-vtable-verify
5872 and the --disable-libvtv configure options.
5873
5e8d9b45
JL
58742013-09-06 Jeff Law <law@redhat.com>
5875
5876 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5877 edge implied equivalences into successor phis.
5878
3a001aff
JR
58792013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
5880
5881 * resource.c (mark_referenced_resources): Handle COND_EXEC.
5882
58832013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
5884
5885 * resource.c (mark_target_live_regs): Compute resources taking
5886 into account if a call is predicated or not.
5887
2c641f8b
EB
58882013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5889
5890 * toplev.c (output_stack_usage): Be prepared for suffixes created by
5891 the compiler in the function names.
5892
a81b0a3d
JH
58932013-09-06 Jan Hubicka <jh@suse.cz>
5894
5895 PR middle-end/58094
5896 * ipa-inline.c (has_caller_p): New function.
5897 (want_inline_function_to_all_callers_p): Use it.
5898 (sum_callers, inline_to_all_callers): Break out from ...
5899 (ipa_inline): ... here.
5900
68e4ca7e
JH
59012013-09-06 Jan Hubicka <jh@suse.cz>
5902
2c641f8b
EB
5903 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
5904 only when AVX is enabled.
68e4ca7e 5905
3c73e2fe
JG
59062013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5907
5908 * config/aarch64/aarch64.md
5909 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
5910 is fpsimd_<load/store>2.
5911 (load_pair<mode>): Likewise.
5912 (store_pair<mode>): Likewise.
5913
8c48eecd
JG
59142013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5915
5916 * config/arm/types.md (type): Add "mrs" type.
5917 * config/aarch64/aarch64.md
5918 (aarch64_load_tp_hard): Make type "mrs".
5919 * config/arm/arm.md
5920 (load_tp_hard): Make type "mrs".
5921 * config/arm/cortex-a15.md: Update with new attributes.
5922 * config/arm/cortex-a5.md: Update with new attributes.
5923 * config/arm/cortex-a53.md: Update with new attributes.
5924 * config/arm/cortex-a7.md: Update with new attributes.
5925 * config/arm/cortex-a8.md: Update with new attributes.
5926 * config/arm/cortex-a9.md: Update with new attributes.
5927 * config/arm/cortex-m4.md: Update with new attributes.
5928 * config/arm/cortex-r4.md: Update with new attributes.
5929 * config/arm/fa526.md: Update with new attributes.
5930 * config/arm/fa606te.md: Update with new attributes.
5931 * config/arm/fa626te.md: Update with new attributes.
5932 * config/arm/fa726te.md: Update with new attributes.
5933
9ea187a5
JG
59342013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5935
5936 * config/aarch64/aarch64.md
5937 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
5938 (*movtf_aarch64): Likewise.
5939 * config/arm/arm.md
5940 (thumb1_movdi_insn): Use "multiple" for type where more than one
5941 instruction is used for a move.
5942 (*arm32_movhf): Likewise.
5943 (*thumb_movdf_insn): Likewise.
5944
292b89b3
JG
59452013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5946
5947 * config/arm/types.md (type): Rename fcpys to fmov.
5948 * config/arm/vfp.md
5949 (*arm_movsi_vfp): Rename type fcpys as fmov.
5950 (*thumb2_movsi_vfp): Likewise
5951 (*movhf_vfp_neon): Likewise
5952 (*movhf_vfp): Likewise
5953 (*movsf_vfp): Likewise
5954 (*thumb2_movsf_vfp): Likewise
5955 (*movsfcc_vfp): Likewise
5956 (*thumb2_movsfcc_vfp): Likewise
5957 * config/aarch64/aarch64-simd.md
5958 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
5959 * config/aarch64/aarch64.md
5960 (*movsi_aarch64): Replace type mov_reg with fmovs.
5961 (*movdi_aarch64): Likewise
5962 (*movsf_aarch64): Likewise
5963 (*movdf_aarch64): Likewise
5964 * config/arm/arm.c
5965 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
5966 * config/arm/iwmmxt.md
5967 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
5968 * config/arm/arm1020e.md: Update with new attributes.
5969 * config/arm/cortex-a15-neon.md: Update with new attributes.
5970 * config/arm/cortex-a5.md: Update with new attributes.
5971 * config/arm/cortex-a53.md: Update with new attributes.
5972 * config/arm/cortex-a7.md: Update with new attributes.
5973 * config/arm/cortex-a8-neon.md: Update with new attributes.
5974 * config/arm/cortex-a9.md: Update with new attributes.
5975 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5976 * config/arm/cortex-r4f.md: Update with new attributes.
5977 * config/arm/marvell-pj4.md: Update with new attributes.
5978 * config/arm/vfp11.md: Update with new attributes.
5979
6a24a83e
JG
59802013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5981
5982 * config/aarch64/aarch64.md
5983 (*madd<mode>): Fix type attribute.
5984 (*maddsi_uxtw): Likewise.
5985 (*msub<mode>): Likewise.
5986 (*msubsi_uxtw): Likewise.
5987 (<su_optab>maddsidi4): Likewise.
5988 (<su_optab>msubsidi4): Likewise.
5989
b86923f0
JG
59902013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5991
5992 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
5993 * config/arm/arm.md (core_cycles): Remove fdiv.
5994 * config/arm/vfp.md:
5995 (*sqrtsf2_vfp): Update for attribute changes.
5996 (*sqrtdf2_vfp): Likewise.
5997 * config/aarch64/aarch64.md:
5998 (sqrt<mode>2): Update for attribute changes.
5999 * config/arm/arm1020e.md: Update with new attributes.
6000 * config/arm/cortex-a15-neon.md: Update with new attributes.
6001 * config/arm/cortex-a5.md: Update with new attributes.
6002 * config/arm/cortex-a53.md: Update with new attributes.
6003 * config/arm/cortex-a7.md: Update with new attributes.
6004 * config/arm/cortex-a8-neon.md: Update with new attributes.
6005 * config/arm/cortex-a9.md: Update with new attributes.
6006 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6007 * config/arm/cortex-r4f.md: Update with new attributes.
6008 * config/arm/marvell-pj4.md: Update with new attributes.
6009 * config/arm/vfp11.md: Update with new attributes.
6010
7b49c9e1
JG
60112013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6012
6013 * config/arm/types.md
6014 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
6015 * config/aarch64/aarch64.md
6016 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
6017 new attributes.
6018 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6019 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
6020 (float<GPI:mode><GPF:mode>2): Likewise.
6021 * config/arm/vfp.md
6022 (*truncsisf2_vfp): Update with new attributes.
6023 (*truncsidf2_vfp): Likewise.
6024 (fixuns_truncsfsi2): Likewise.
6025 (fixuns_truncdfsi2): Likewise.
6026 (*floatsisf2_vfp): Likewise.
6027 (*floatsidf2_vfp): Likewise.
6028 (floatunssisf2): Likewise.
6029 (floatunssidf2): Likewise.
6030 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
6031 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
6032 * config/arm/arm1020e.md: Update with new attributes.
6033 * config/arm/cortex-a15-neon.md: Update with new attributes.
6034 * config/arm/cortex-a5.md: Update with new attributes.
6035 * config/arm/cortex-a53.md: Update with new attributes.
6036 * config/arm/cortex-a7.md: Update with new attributes.
6037 * config/arm/cortex-a8-neon.md: Update with new attributes.
6038 * config/arm/cortex-a9.md: Update with new attributes.
6039 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6040 * config/arm/cortex-r4f.md: Update with new attributes.
6041 * config/arm/marvell-pj4.md: Update with new attributes.
6042 * config/arm/vfp11.md: Update with new attributes.
6043
e7df8af8
JG
60442013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6045
6046 * config/aarch64/arm_neon.h
6047 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
6048 (vqtbx<1,2,3,4><q>_s8): Likewise.
6049
594726e4
JG
60502013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6051
f43245d1
UB
6052 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
6053 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
6054 (add<mode>3): Add type attribute.
6055 (add<mode>3): Likewise.
6056 (usadd<mode>3): Likewise.
6057 (ssadd<mode>3): Likewise.
6058 (sub<mode>3): Likewise.
6059 (sub<mode>3): Likewise.
6060 (ussub<mode>3): Likewise.
6061 (sssub<mode>3): Likewise.
6062 (ssmulsa3): Likewise.
6063 (usmulusa3): Likewise.
6064 (arm_usatsihi): Likewise.
6065 * config/arm/vfp.md
6066 (*movdi_vfp): Add types for all instructions.
6067 (*movdi_vfp_cortexa8): Likewise.
6068 (*movhf_vfp_neon): Likewise.
6069 (*movhf_vfp): Likewise.
6070 (*movdf_vfp): Likewise.
6071 (*thumb2_movdf_vfp): Likewise.
6072 (*thumb2_movdfcc_vfp): Likewise.
6073 * config/arm/arm.md: Add type attribute to all insn patterns.
6074 (*thumb1_adddi3): Add type attribute.
6075 (*arm_adddi3): Likewise.
6076 (*adddi_sesidi_di): Likewise.
6077 (*adddi_zesidi_di): Likewise.
6078 (*thumb1_addsi3): Likewise.
6079 (addsi3_compare0): Likewise.
6080 (*addsi3_compare0_scratch): Likewise.
6081 (*compare_negsi_si): Likewise.
6082 (cmpsi2_addneg): Likewise.
6083 (*addsi3_carryin_<optab>): Likewise.
6084 (*addsi3_carryin_alt2_<optab>): Likewise.
6085 (*addsi3_carryin_clobercc_<optab>): Likewise.
6086 (*subsi3_carryin): Likewise.
6087 (*subsi3_carryin_const): Likewise.
6088 (*subsi3_carryin_compare): Likewise.
6089 (*subsi3_carryin_compare_const): Likewise.
6090 (*arm_subdi3): Likewise.
6091 (*thumb_subdi3): Likewise.
6092 (*subdi_di_zesidi): Likewise.
6093 (*subdi_di_sesidi): Likewise.
6094 (*subdi_zesidi_di): Likewise.
6095 (*subdi_sesidi_di): Likewise.
6096 (*subdi_zesidi_ze): Likewise.
6097 (thumb1_subsi3_insn): Likewise.
6098 (*arm_subsi3_insn): Likewise.
6099 (*anddi3_insn): Likewise.
6100 (*anddi_zesidi_di): Likewise.
6101 (*anddi_sesdi_di): Likewise.
6102 (*ne_zeroextracts): Likewise.
6103 (*ne_zeroextracts): Likewise.
6104 (*ite_ne_zeroextr): Likewise.
6105 (*ite_ne_zeroextr): Likewise.
6106 (*anddi_notdi_di): Likewise.
6107 (*anddi_notzesidi): Likewise.
6108 (*anddi_notsesidi): Likewise.
6109 (andsi_notsi_si): Likewise.
6110 (thumb1_bicsi3): Likewise.
6111 (*iordi3_insn): Likewise.
6112 (*iordi_zesidi_di): Likewise.
6113 (*iordi_sesidi_di): Likewise.
6114 (*thumb1_iorsi3_insn): Likewise.
6115 (*xordi3_insn): Likewise.
6116 (*xordi_zesidi_di): Likewise.
6117 (*xordi_sesidi_di): Likewise.
6118 (*arm_xorsi3): Likewise.
6119 (*andsi_iorsi3_no): Likewise.
6120 (*smax_0): Likewise.
6121 (*smax_m1): Likewise.
6122 (*arm_smax_insn): Likewise.
6123 (*smin_0): Likewise.
6124 (*arm_smin_insn): Likewise.
6125 (*arm_umaxsi3): Likewise.
6126 (*arm_uminsi3): Likewise.
6127 (*minmax_arithsi): Likewise.
6128 (*minmax_arithsi_): Likewise.
6129 (*satsi_<SAT:code>): Likewise.
6130 (arm_ashldi3_1bit): Likewise.
6131 (arm_ashrdi3_1bit): Likewise.
6132 (arm_lshrdi3_1bit): Likewise.
6133 (*arm_negdi2): Likewise.
6134 (*thumb1_negdi2): Likewise.
6135 (*arm_negsi2): Likewise.
6136 (*thumb1_negsi2): Likewise.
6137 (*negdi_extendsid): Likewise.
6138 (*negdi_zero_extend): Likewise.
6139 (*arm_abssi2): Likewise.
6140 (*thumb1_abssi2): Likewise.
6141 (*arm_neg_abssi2): Likewise.
6142 (*thumb1_neg_abss): Likewise.
6143 (one_cmpldi2): Likewise.
6144 (extend<mode>di2): Likewise.
6145 (*compareqi_eq0): Likewise.
6146 (*arm_extendhisi2addsi): Likewise.
6147 (*arm_movdi): Likewise.
6148 (*thumb1_movdi_insn): Likewise.
6149 (*arm_movt): Likewise.
6150 (*thumb1_movsi_insn): Likewise.
6151 (pic_add_dot_plus_four): Likewise.
6152 (pic_add_dot_plus_eight): Likewise.
6153 (tls_load_dot_plus_eight): Likewise.
6154 (*thumb1_movhi_insn): Likewise.
6155 (*thumb1_movsf_insn): Likewise.
6156 (*movdf_soft_insn): Likewise.
6157 (*thumb_movdf_insn): Likewise.
6158 (cbranchsi4_insn): Likewise.
6159 (cbranchsi4_scratch): Likewise.
6160 (*negated_cbranchsi4): Likewise.
6161 (*tbit_cbranch): Likewise.
6162 (*tlobits_cbranch): Likewise.
6163 (*tstsi3_cbranch): Likewise.
6164 (*cbranchne_decr1): Likewise.
6165 (*addsi3_cbranch): Likewise.
6166 (*addsi3_cbranch_scratch): Likewise.
6167 (*arm_cmpdi_insn): Likewise.
6168 (*arm_cmpdi_unsig): Likewise.
6169 (*arm_cmpdi_zero): Likewise.
6170 (*thumb_cmpdi_zero): Likewise.
6171 (*deleted_compare): Likewise.
6172 (*mov_scc): Likewise.
6173 (*mov_negscc): Likewise.
6174 (*mov_notscc): Likewise.
6175 (*cstoresi_eq0_thumb1_insn): Likewise.
6176 (cstoresi_nltu_thumb1): Likewise.
6177 (cstoresi_ltu_thu): Likewise.
6178 (thumb1_addsi3_addgeu): Likewise.
6179 (*arm_jump): Likewise.
6180 (*thumb_jump): Likewise.
6181 (*check_arch2): Likewise.
6182 (arm_casesi_internal): Likewise.
6183 (thumb1_casesi_dispatch): Likewise.
6184 (*arm_indirect_jump): Likewise.
6185 (*thumb1_indirect_jump): Likewise.
6186 (nop): Likewise.
6187 (*and_scc): Likewise.
6188 (*ior_scc): Likewise.
6189 (*compare_scc): Likewise.
6190 (*cond_move): Likewise.
6191 (*cond_arith): Likewise.
6192 (*cond_sub): Likewise.
6193 (*cmp_ite0): Likewise.
6194 (*cmp_ite1): Likewise.
6195 (*cmp_and): Likewise.
6196 (*cmp_ior): Likewise.
6197 (*ior_scc_scc): Likewise.
6198 (*ior_scc_scc_cmp): Likewise.
6199 (*and_scc_scc): Likewise.
6200 (*and_scc_scc_cmp): Likewise.
6201 (*and_scc_scc_nod): Likewise.
6202 (*negscc): Likewise.
6203 (movcond_addsi): Likewise.
6204 (movcond): Likewise.
6205 (*ifcompare_plus_move): Likewise.
6206 (*if_plus_move): Likewise.
6207 (*ifcompare_move_plus): Likewise.
6208 (*if_move_plus): Likewise.
6209 (*ifcompare_arith_arith): Likewise.
6210 (*if_arith_arith): Likewise.
6211 (*ifcompare_arith_move): Likewise.
6212 (*if_arith_move): Likewise.
6213 (*ifcompare_move_arith): Likewise.
6214 (*if_move_arith): Likewise.
6215 (*ifcompare_move_not): Likewise.
6216 (*if_move_not): Likewise.
6217 (*ifcompare_not_move): Likewise.
6218 (*if_not_move): Likewise.
6219 (*ifcompare_shift_move): Likewise.
6220 (*if_shift_move): Likewise.
6221 (*ifcompare_move_shift): Likewise.
6222 (*if_move_shift): Likewise.
6223 (*ifcompare_shift_shift): Likewise.
6224 (*ifcompare_not_arith): Likewise.
6225 (*ifcompare_arith_not): Likewise.
6226 (*if_arith_not): Likewise.
6227 (*ifcompare_neg_move): Likewise.
6228 (*if_neg_move): Likewise.
6229 (*ifcompare_move_neg): Likewise.
6230 (*if_move_neg): Likewise.
6231 (prologue_thumb1_interwork): Likewise.
6232 (*cond_move_not): Likewise.
6233 (*sign_extract_onebit): Likewise.
6234 (*not_signextract_onebit): Likewise.
6235 (stack_tie): Likewise.
6236 (align_4): Likewise.
6237 (align_8): Likewise.
6238 (consttable_end): Likewise.
6239 (consttable_1): Likewise.
6240 (consttable_2): Likewise.
6241 (consttable_4): Likewise.
6242 (consttable_8): Likewise.
6243 (consttable_16): Likewise.
6244 (*thumb1_tablejump): Likewise.
6245 (prefetch): Likewise.
6246 (force_register_use): Likewise.
6247 (thumb_eh_return): Likewise.
6248 (load_tp_hard): Likewise.
6249 (load_tp_soft): Likewise.
6250 (tlscall): Likewise.
6251 (*arm_movtas_ze): Likewise.
6252 (*arm_rev): Likewise.
6253 (*arm_revsh): Likewise.
6254 (*arm_rev16): Likewise.
6255 * config/arm/thumb2.md
6256 (*thumb2_smaxsi3): Likewise.
6257 (*thumb2_sminsi3): Likewise.
6258 (*thumb32_umaxsi3): Likewise.
6259 (*thumb2_uminsi3): Likewise.
6260 (*thumb2_negdi2): Likewise.
6261 (*thumb2_abssi2): Likewise.
6262 (*thumb2_neg_abss): Likewise.
6263 (*thumb2_movsi_insn): Likewise.
6264 (tls_load_dot_plus_four): Likewise.
6265 (*thumb2_movhi_insn): Likewise.
6266 (*thumb2_mov_scc): Likewise.
6267 (*thumb2_mov_negs): Likewise.
6268 (*thumb2_mov_negs): Likewise.
6269 (*thumb2_mov_nots): Likewise.
6270 (*thumb2_mov_nots): Likewise.
6271 (*thumb2_movsicc_): Likewise.
6272 (*thumb2_movsfcc_soft_insn): Likewise.
6273 (*thumb2_indirect_jump): Likewise.
6274 (*thumb2_and_scc): Likewise.
6275 (*thumb2_ior_scc): Likewise.
6276 (*thumb2_ior_scc_strict_it): Likewise.
6277 (*thumb2_cond_move): Likewise.
6278 (*thumb2_cond_arith): Likewise.
6279 (*thumb2_cond_ari): Likewise.
6280 (*thumb2_cond_sub): Likewise.
6281 (*thumb2_negscc): Likewise.
6282 (*thumb2_movcond): Likewise.
6283 (thumb2_casesi_internal): Likewise.
6284 (thumb2_casesi_internal_pic): Likewise.
6285 (*thumb2_alusi3_short): Likewise.
6286 (*thumb2_mov<mode>_shortim): Likewise.
6287 (*thumb2_addsi_short): Likewise.
6288 (*thumb2_subsi_short): Likewise.
6289 (thumb2_addsi3_compare0): Likewise.
6290 (*thumb2_cbz): Likewise.
6291 (*thumb2_cbnz): Likewise.
6292 (*thumb2_one_cmplsi2_short): Likewise.
6293 (*thumb2_negsi2_short): Likewise.
6294 (*orsi_notsi_si): Likewise.
6295 * config/arm/arm1020e.md: Update with new attributes.
6296 * config/arm/arm1026ejs.md: Update with new attributes.
6297 * config/arm/arm1136jfs.md: Update with new attributes.
6298 * config/arm/arm926ejs.md: Update with new attributes.
6299 * config/arm/cortex-a15.md: Update with new attributes.
6300 * config/arm/cortex-a5.md: Update with new attributes.
6301 * config/arm/cortex-a53.md: Update with new attributes.
6302 * config/arm/cortex-a7.md: Update with new attributes.
6303 * config/arm/cortex-a8.md: Update with new attributes.
6304 * config/arm/cortex-a9.md: Update with new attributes.
6305 * config/arm/cortex-m4.md: Update with new attributes.
6306 * config/arm/cortex-r4.md: Update with new attributes.
6307 * config/arm/fa526.md: Update with new attributes.
6308 * config/arm/fa606te.md: Update with new attributes.
6309 * config/arm/fa626te.md: Update with new attributes.
6310 * config/arm/fa726te.md: Update with new attributes.
6311
1c83b673
JG
63122013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6313
6314 * config/aarch64/aarch64-simd.md
6315 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6316 <vwx> iterator to ensure correct register choice.
6317 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6318 (aarch64_sqdmull_n<mode>): Likewise.
6319 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6320 * config/aarch64/arm_neon.h
6321 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6322 (vml<as><q>_n_<su>16): Likewise.
6323 (vml<as>l_high_lane<q>_<su>16): Likewise.
6324 (vml<as>l_high_n_<su>16): Likewise.
6325 (vml<as>l_lane<q>_<su>16): Likewise.
6326 (vml<as>l_n_<su>16): Likewise.
6327 (vmul<q>_lane<q>_<su>16): Likewise.
6328 (vmul<q>_n_<su>16): Likewise.
6329 (vmull_lane<q>_<su>16): Likewise.
6330 (vmull_n_<su>16): Likewise.
6331 (vmull_high_lane<q>_<su>16): Likewise.
6332 (vmull_high_n_<su>16): Likewise.
6333 (vqrdmulh<q>_n_s16): Likewise.
6334
bb1ae543
TB
63352013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6336
6337 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6338 have the correct lane parameter.
6339
f23c0742
RB
63402013-09-06 Richard Biener <rguenther@suse.de>
6341
6342 * cfganal.c (control_dependences::~control_dependences):
6343 Properly free all of the vector.
6344
c1d49770
KY
63452013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6346
6347 PR target/58269
6348 * config/i386/i386.c (ix86_conditional_register_usage):
6349 Proper initialize extended SSE registers.
6350
6da47f52
JH
63512013-09-06 Jan Hubicka <jh@suse.cz>
6352
6353 PR tree-optimization/58311
6354 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6355
63562013-09-06 Jan Hubicka <jh@suse.cz>
6357
6358 * Makefile.in (tree-sra.o): Update dependencies.
6359 * tree-sra.c: Include ipa-utils.h
6360 (scan_function): Use recursive_call_p.
6361 (has_caller_p): New function.
6362 (cgraph_for_node_and_aliases): Count also callers of aliases.
6363
fc11f321
JH
63642013-09-06 Jan Hubicka <jh@suse.cz>
6365
6366 PR middle-end/58094
6367 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6368 * tree-tailcall.c: Include ipa-utils.h.
6369 (find_tail_calls): Use it.
6370 * ipa-pure-const.c (check_call): Likewise.
6371 * ipa-utils.c (recursive_call_p): New function.
6372 * ipa-utils.h (recursive_call_p): Dclare.
6373 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6374 (symtab_semantically_equivalent_p): New function.
6375 * Makefile.in (tree-tailcall.o): Update dependencies.
6376
9a6af450
EB
63772013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6378
6379 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6380 non-inlinable part.
6381
35f32ad4
RB
63822013-09-06 Richard Biener <rguenther@suse.de>
6383
6384 * lto-streamer.h (lto_global_var_decls): Remove.
6385 * Makefile.in (OBJS): Remove lto-symtab.o.
6386 (lto-symtab.o): Remove.
6387 (GTFILES): Remove lto-symtab.c
6388 * lto-symtab.c: Move to lto/
6389
d12a76f3
AK
63902013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6391
6392 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6393 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6394 (UNSPEC_FPINT_RINT): New constant definitions.
6395 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6396 definition with 2 attributes.
6397 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6398 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6399 definitions.
6400
64012013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6402
f43245d1 6403 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6404 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6405 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6406 attribute to "z196_alone".
6407 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6408 "zEC12_simple".
6409
c8e9d8c3
RB
64102013-09-06 Richard Biener <rguenther@suse.de>
6411
6412 * basic-block.h (class control_dependences): New.
6413 * tree-ssa-dce.c (control_dependence_map): Remove.
6414 (cd): New global.
6415 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6416 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6417 find_pdom, find_control_dependence, find_all_control_dependences):
6418 Move to cfganal.c.
f43245d1
UB
6419 (mark_control_dependent_edges_necessary,
6420 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6421 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6422 * cfganal.c (set_control_dependence_map_bit,
6423 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6424 find_all_control_dependences): Move from tree-ssa-dce.c and
6425 implement as methods of control_dependences class.
6426 (control_dependences::control_dependences): New.
6427 (control_dependences::~control_dependences): Likewise.
6428 (control_dependences::get_edges_dependent_on): Likewise.
6429 (control_dependences::get_edge): Likewise.
6430
7d2ba471
JH
64312013-09-04 Jan Hubicka <jh@suse.cz>
6432
6433 * tree.c (types_same_for_odr): Drop overactive check.
6434 * ipa-devirt.c (hash_type_name): Likewise.
6435
e18412fc
JH
64362013-09-04 Jan Hubicka <jh@suse.cz>
6437
6438 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6439 (analyze_functions): ... here.
6440
d352b245
JH
64412013-09-04 Jan Hubicka <jh@suse.cz>
6442
6443 PR middle-end/58201
6444 * cgraphunit.c (analyze_functions): Clear AUX fields
6445 after processing; initialize assembler name has.
6446
770da076
JL
64472013-09-05 Jeff Law <law@redhat.com>
6448
6449 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6450 from thread_around_empty_block. Record threading path into PATH.
6451 Recurse if threading through the initial block is successful.
6452 (thread_across_edge): Corresponding changes to slightly simplify.
6453
fe6f68e2
JG
64542013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6455
6456 * config/aarch64/aarch64.md
6457 (type): Remove frecpe, frecps, frecpx.
6458 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6459 fix to be a TARGET_SIMD instruction.
6460 (aarch64_frecps): Remove.
6461 * config/aarch64/aarch64-simd.md
6462 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6463 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6464
6e4150e1
JG
64652013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6466 Sofiane Naci <sofiane.naci@arm.com>
6467
f43245d1 6468 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6469 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6470 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6471 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6472 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6473 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6474 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6475 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6476 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6477 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6478 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6479 shift* types.
6480 * config/arm/arm-fixed.md: Update for attribute changes
6481 all occurrences of arlo_* types.
6482 * config/arm/thumb2.md: Update for attribute changes all occurrences
6483 of arlo_* types.
6484 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6485 (cortexa7_older_only): Likewise.
6486 (cortexa7_younger): Likewise.
6487 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6488 (1020alu_shift_op): Likewise.
6489 (1020alu_shift_reg_op): Likewise.
6490 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6491 (alu_shift_op): Likewise.
6492 (alu_shift_reg_op): Likewise.
f43245d1 6493 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6494 (11_alu_shift_op): Likewise.
6495 (11_alu_shift_reg_op): Likewise.
6496 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6497 (9_alu_shift_reg_op): Likewise.
6498 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6499 attribute changes.
6500 (cortex_a15_alu_shift): Likewise.
6501 (cortex_a15_alu_shift_reg): Likewise.
6502 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6503 attribute changes.
6504 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6505 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6506 attribute changes.
6e4150e1 6507 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6508 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6509 attribute changes.
6e4150e1
JG
6510 (cortex_a7_alu_reg): Likewise.
6511 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6512 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6513 attribute changes.
6e4150e1
JG
6514 (cortex_a8_alu_shift): Likewise.
6515 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6516 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6517 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6518 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6519 attribute changes.
6e4150e1
JG
6520 * config/arm/cortex-r4.md
6521 (cortex_r4_alu): Update for attribute changes.
6522 (cortex_r4_mov): Likewise.
6523 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6524 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6525 (526_alu_shift_op): Likewise.
f43245d1
UB
6526 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6527 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6528 (626te_alu_shift_op): Likewise.
f43245d1 6529 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6530 (726te_alu_shift_op): Likewise.
6531 (726te_alu_shift_reg_op): Likewise.
6532 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6533 (mp626_alu_shift_op): Likewise.
6534 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6535 (pj4_alu_conds): Likewise.
6536 (pj4_shift): Likewise.
6537 (pj4_shift_conds): Likewise.
6538 (pj4_alu_shift): Likewise.
6539 (pj4_alu_shift_conds): Likewise.
6540 * config/aarch64/aarch64.md: Update for attribute change
6541 all occurrences of arlo_* and shift* types.
6542
e6523306
MS
65432013-09-05 Mike Stump <mikestump@comcast.net>
6544
6545 * tree.h: Move documentation for tree_function_decl to tree-core.h
6546 with the declaration.
6547
80a18161
PB
65482013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6549
6550 PR target/58139
6551 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6552 looking for widest mode.
6553
6994430a
EB
65542013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6555
6556 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6557
e67f39f7
RB
65582013-09-05 Richard Biener <rguenther@suse.de>
6559
6560 PR tree-optimization/58137
6561 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6562 Do not create vectors of pointers.
6563 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6564 types for the components of the vector initializer.
6565 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6566 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6567
568cda29
MJ
65682013-09-05 Martin Jambor <mjambor@suse.cz>
6569
6570 * ipa-prop.c (remove_described_reference): Accept missing references,
6571 return false if that hppens, otherwise return true.
6572 (cgraph_node_for_jfunc): New function.
6573 (try_decrement_rdesc_refcount): Likewise.
6574 (try_make_edge_direct_simple_call): Use them.
6575 (ipa_edge_removal_hook): Remove references from rdescs.
6576 (ipa_edge_duplication_hook): Clone rdescs and their references
6577 when the new edge has the same caller as the old one.
6578 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6579 reference before removing any edges.
6580
5a200acb
RE
65812013-09-05 Richard Earnshaw <rearnsha@arm.com>
6582
6583 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6584 initial store.
6585 * thumb2.md (thumb2_storewb_parisi): New pattern.
6586
5922847b
YZ
65872013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6588
6589 * config/aarch64/aarch64-option-extensions.def: Add
6590 AARCH64_OPT_EXTENSION of 'crc'.
6591 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6592 (AARCH64_ISA_CRC): Ditto.
6593 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6594 description of the CRC extension.
6595
996746aa
AI
65962013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6597
6598 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6599 * config/rs6000/linux.h: Ditto.
6600 * alpha/linux.h: Ditto.
6601 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6602 no_c99_libc_has_function.
6603 * config/c6x/uclinux-elf.h: Ditto.
6604 * config/lm32/uclinux-elf.h: Ditto.
6605 * config/m68k/uclinux.h: Ditto.
6606 * config/moxie/uclinux.h: Ditto.
6607 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6608 (crisv32-*-linux*, cris-*-linux*): Ditto.
6609 * config/bfin/bfin.c: Include "tm_p.h".
6610
c370d99f
RB
66112013-09-05 Richard Biener <rguenther@suse.de>
6612
6613 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6614 check for a definition without a basic-block.
6615
003bb7f3
JG
66162013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6617 Sofiane Naci <sofiane.naci@arm.com>
6618
6619 * config/aarch64/aarch64.md
6620 (*movti_aarch64): Rename r_2_f and f_2_r.
6621 (*movsf_aarch64): Likewise.
6622 (*movdf_aarch64): Likewise.
6623 (*movtf_aarch64): Likewise.
6624 (aarch64_movdi_<mode>low): Likewise.
6625 (aarch64_movdi_<mode>high): Likewise.
6626 (aarch64_mov<mode>high_di): Likewise.
6627 (aarch64_mov<mode>low_di): Likewise.
6628 (aarch64_movtilow_tilow): Likewise.
6629 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6630 values to config/arm/types.md
6631 (attribute "conds"): Update for attribute change.
6632 (anddi3_insn): Likewise.
6633 (iordi3_insn): Likewise.
6634 (xordi3_insn): Likewise.
6635 (one_cmpldi2): Likewise.
6636 * config/arm/types.md (type): Add Neon types.
6637 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6638 use "type" attribute.
6639 (movmisalign<mode>_neon_store): Likewise.
6640 (movmisalign<mode>_neon_load): Likewise.
6641 (vec_set<mode>_internal): Likewise.
6642 (vec_setv2di_internal): Likewise.
6643 (vec_extract<mode>): Likewise.
6644 (vec_extractv2di): Likewise.
6645 (add<mode>3_neon): Likewise.
6646 (adddi3_neon): Likewise.
6647 (sub<mode>3_neon): Likewise.
6648 (subdi3_neon): Likewise.
6649 (mul<mode>3_neon): Likewise.
6650 (mul<mode>3add<mode>_neon): Likewise.
6651 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6652 (fma<VCVTF:mode>4)): Likewise.
6653 (fma<VCVTF:mode>4_intrinsic): Likewise.
6654 (fmsub<VCVTF:mode>4)): Likewise.
6655 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6656 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6657 (ior<mode>3): Likewise.
6658 (and<mode>3): Likewise.
6659 (anddi3_neon): Likewise.
6660 (orn<mode>3_neon): Likewise.
6661 (orndi3_neon): Likewise.
6662 (bic<mode>3_neon): Likewise.
6663 (bicdi3_neon): Likewise.
6664 (xor<mode>3): Likewise.
6665 (one_cmpl<mode>2): Likewise.
6666 (abs<mode>2): Likewise.
6667 (neg<mode>2): Likewise.
6668 (umin<mode>3_neon): Likewise.
6669 (umax<mode>3_neon): Likewise.
6670 (smin<mode>3_neon): Likewise.
6671 (smax<mode>3_neon): Likewise.
6672 (vashl<mode>3): Likewise.
6673 (vashr<mode>3_imm): Likewise.
6674 (vlshr<mode>3_imm): Likewise.
6675 (ashl<mode>3_signed): Likewise.
6676 (ashl<mode>3_unsigned): Likewise.
6677 (neon_load_count): Likewise.
6678 (ashldi3_neon_noclobber): Likewise.
6679 (signed_shift_di3_neon): Likewise.
6680 (unsigned_shift_di3_neon): Likewise.
6681 (ashrdi3_neon_imm_noclobber): Likewise.
6682 (lshrdi3_neon_imm_noclobber): Likewise.
6683 (widen_ssum<mode>3): Likewise.
6684 (widen_usum<mode>3): Likewise.
6685 (quad_halves_<code>v4si): Likewise.
6686 (quad_halves_<code>v4sf): Likewise.
6687 (quad_halves_<code>v8hi): Likewise.
6688 (quad_halves_<code>v16qi): Likewise.
6689 (reduc_splus_v2di): Likewise.
6690 (neon_vpadd_internal<mode>): Likewise.
6691 (neon_vpsmin<mode>): Likewise.
6692 (neon_vpsmax<mode>): Likewise.
6693 (neon_vpumin<mode>): Likewise.
6694 (neon_vpumax<mode>): Likewise.
6695 (ss_add<mode>_neon): Likewise.
6696 (us_add<mode>_neon): Likewise.
6697 (ss_sub<mode>_neon): Likewise.
6698 (us_sub<mode>_neon): Likewise.
6699 (neon_vadd<mode>_unspec): Likewise.
6700 (neon_vaddl<mode>): Likewise.
6701 (neon_vaddw<mode>): Likewise.
6702 (neon_vhadd<mode>): Likewise.
6703 (neon_vqadd<mode>): Likewise.
6704 (neon_vaddhn<mode>): Likewise.
6705 (neon_vmul<mode>): Likewise.
6706 (neon_vmla<mode>): Likewise.
6707 (neon_vmlal<mode>): Likewise.
6708 (neon_vmls<mode>): Likewise.
6709 (neon_vmlsl<mode>): Likewise.
6710 (neon_vqdmulh<mode>): Likewise.
6711 (neon_vqdmlal<mode>): Likewise.
6712 (neon_vqdmlsl<mode>): Likewise.
6713 (neon_vmull<mode>): Likewise.
6714 (neon_vqdmull<mode>): Likewise.
6715 (neon_vsub<mode>_unspec): Likewise.
6716 (neon_vsubl<mode>): Likewise.
6717 (neon_vsubw<mode>): Likewise.
6718 (neon_vqsub<mode>): Likewise.
6719 (neon_vhsub<mode>): Likewise.
6720 (neon_vsubhn<mode>): Likewise.
6721 (neon_vceq<mode>): Likewise.
6722 (neon_vcge<mode>): Likewise.
6723 (neon_vcgeu<mode>): Likewise.
6724 (neon_vcgt<mode>): Likewise.
6725 (neon_vcgtu<mode>): Likewise.
6726 (neon_vcle<mode>): Likewise.
6727 (neon_vclt<mode>): Likewise.
6728 (neon_vcage<mode>): Likewise.
6729 (neon_vcagt<mode>): Likewise.
6730 (neon_vtst<mode>): Likewise.
6731 (neon_vabd<mode>): Likewise.
6732 (neon_vabdl<mode>): Likewise.
6733 (neon_vaba<mode>): Likewise.
6734 (neon_vabal<mode>): Likewise.
6735 (neon_vmax<mode>): Likewise.
6736 (neon_vmin<mode>): Likewise.
6737 (neon_vpaddl<mode>): Likewise.
6738 (neon_vpadal<mode>): Likewise.
6739 (neon_vpmax<mode>): Likewise.
6740 (neon_vpmin<mode>): Likewise.
6741 (neon_vrecps<mode>): Likewise.
6742 (neon_vrsqrts<mode>): Likewise.
6743 (neon_vqabs<mode>): Likewise.
6744 (neon_vqneg<mode>): Likewise.
6745 (neon_vcls<mode>): Likewise.
6746 (clz<mode>2): Likewise.
6747 (popcount<mode>2): Likewise.
6748 (neon_vrecpe): Likewise.
6749 (neon_vrsqrte): Likewise.
6750 (neon_vget_lane<mode>_sext_internal): Likewise.
6751 (neon_vget_lane<mode>_zext_internal): Likewise.
6752 (neon_vdup_n<mode>): Likewise.
6753 (neon_vdup_nv2di): Likewise.
6754 (neon_vdpu_lane<mode>_internal): Likewise.
6755 (neon_vswp<mode>): Likewise.
6756 (float<mode><V_cvtto>2): Likewise.
6757 (floatuns<mode><V_cvtto>2): Likewise.
6758 (fix_trunc<mode><V_cvtto>)2): Likewise
6759 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6760 (neon_vcvt<mode>): Likewise.
6761 (neon_vcvtv4sfv4hf): Likewise.
6762 (neon_vcvtv4hfv4sf): Likewise.
6763 (neon_vcvt_n<mode>): Likewise.
6764 (neon_vmovn<mode>): Likewise.
6765 (neon_vqmovn<mode>): Likewise.
6766 (neon_vqmovun<mode>): Likewise.
6767 (neon_vmovl<mode>): Likewise.
6768 (neon_vmul_lane<mode>): Likewise.
6769 (neon_vmull_lane<mode>): Likewise.
6770 (neon_vqdmull_lane<mode>): Likewise.
6771 (neon_vqdmulh_lane<mode>): Likewise.
6772 (neon_vmla_lane<mode>): Likewise.
6773 (neon_vmlal_lane<mode>): Likewise.
6774 (neon_vqdmlal_lane<mode>): Likewise.
6775 (neon_vmls_lane<mode>): Likewise.
6776 (neon_vmlsl_lane<mode>): Likewise.
6777 (neon_vqdmlsl_lane<mode>): Likewise.
6778 (neon_vext<mode>): Likewise.
6779 (neon_vrev64<mode>): Likewise.
6780 (neon_vrev32<mode>): Likewise.
6781 (neon_vrev16<mode>): Likewise.
6782 (neon_vbsl<mode>_internal): Likewise.
6783 (neon_vshl<mode>): Likewise.
6784 (neon_vqshl<mode>): Likewise.
6785 (neon_vshr_n<mode>): Likewise.
6786 (neon_vshrn_n<mode>): Likewise.
6787 (neon_vqshrn_n<mode>): Likewise.
6788 (neon_vqshrun_n<mode>): Likewise.
6789 (neon_vshl_n<mode>): Likewise.
6790 (neon_vqshl_n<mode>): Likewise.
6791 (neon_vqshlu_n<mode>): Likewise.
6792 (neon_vshll_n<mode>): Likewise.
6793 (neon_vsra_n<mode>): Likewise.
6794 (neon_vsri_n<mode>): Likewise.
6795 (neon_vsli_n<mode>): Likewise.
6796 (neon_vtbl1v8qi): Likewise.
6797 (neon_vtbl2v8qi): Likewise.
6798 (neon_vtbl3v8qi): Likewise.
6799 (neon_vtbl4v8qi): Likewise.
6800 (neon_vtbx1v8qi): Likewise.
6801 (neon_vtbx2v8qi): Likewise.
6802 (neon_vtbx3v8qi): Likewise.
6803 (neon_vtbx4v8qi): Likewise.
6804 (neon_vtrn<mode>_internal): Likewise.
6805 (neon_vzip<mode>_internal): Likewise.
6806 (neon_vuzp<mode>_internal): Likewise.
6807 (neon_vld1<mode>): Likewise.
6808 (neon_vld1_lane<mode>): Likewise.
6809 (neon_vld1_dup<mode>): Likewise.
6810 (neon_vld1_dupv2di): Likewise.
6811 (neon_vst1<mode>): Likewise.
6812 (neon_vst1_lane<mode>): Likewise.
6813 (neon_vld2<mode>): Likewise.
6814 (neon_vld2_lane<mode>): Likewise.
6815 (neon_vld2_dup<mode>): Likewise.
6816 (neon_vst2<mode>): Likewise.
6817 (neon_vst2_lane<mode>): Likewise.
6818 (neon_vld3<mode>): Likewise.
6819 (neon_vld3qa<mode>): Likewise.
6820 (neon_vld3qb<mode>): Likewise.
6821 (neon_vld3_lane<mode>): Likewise.
6822 (neon_vld3_dup<mode>): Likewise.
6823 (neon_vst3<mode>): Likewise.
6824 (neon_vst3qa<mode>): Likewise.
6825 (neon_vst3qb<mode>): Likewise.
6826 (neon_vst3_lane<mode>): Likewise.
6827 (neon_vld4<mode>): Likewise.
6828 (neon_vld4qa<mode>): Likewise.
6829 (neon_vld4qb<mode>): Likewise.
6830 (neon_vld4_lane<mode>): Likewise.
6831 (neon_vld4_dup<mode>): Likewise.
6832 (neon_vst4<mode>): Likewise.
6833 (neon_vst4qa<mode>): Likewise.
6834 (neon_vst4qb<mode>): Likewise.
6835 (neon_vst4_lane<mode>): Likewise.
6836 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6837 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6838 (neon_vec_<US>mult_lo_<mode>): Likewise.
6839 (neon_vec_<US>mult_hi_<mode>): Likewise.
6840 (neon_vec_<US>shiftl_<mode>): Likewise.
6841 (neon_unpack<US>_<mode>): Likewise.
6842 (neon_vec_<US>mult_<mode>): Likewise.
6843 (vec_pack_trunc_<mode>): Likewise.
6844 (neon_vec_pack_trunk_<mode>): Likewise.
6845 (neon_vabd<mode>_2): Likewise.
6846 (neon_vabd<mode>_3): Likewise.
6847 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
6848 (thumb2_movsi_vfp): Likewise.
6849 (movdi_vfp): Likewise.
6850 (movdi_vfp_cortexa8): Likewise.
6851 (movhf_vfp_neon): Likewise.
6852 (movhf_vfp): Likewiwse.
6853 (movsf_vfp): Likewiwse.
6854 (thumb2_movsf_vfp): Likewiwse.
6855 (movdf_vfp): Likewise.
6856 (thumb2_movdf_vfp): Likewise.
6857 (movsfcc_vfp): Likewise.
6858 (thumb2_movsfcc_vfp): Likewise.
6859 (movdfcc_vfp): Likewise.
6860 (thumb2_movdfcc_vfp): Likewise.
6861 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
6862 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
6863 (v10_v2c): Likewise.
6864 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
6865 attribute change.
6866 (cortex_a15_neon_int_2): Likewise.
6867 (cortex_a15_neon_int_3): Likewise.
6868 (cortex_a15_neon_int_4): Likewise.
6869 (cortex_a15_neon_int_5): Likewise.
6870 (cortex_a15_neon_vqneg_vqabs): Likewise.
6871 (cortex_a15_neon_vmov): Likewise.
6872 (cortex_a15_neon_vaba): Likewise.
6873 (cortex_a15_neon_vaba_qqq): Likewise.
6874 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6875 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6876 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
6877 scalar_64_32_long_scalar): Likewise.
6878 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6879 (cortex_a15_neon_mla_qqq_8_16): Likewise.
6880 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6881 lotype_qdd_64_32_long): Likewise.
6882 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6883 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6884 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
6885 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6886 (cortex_a15_neon_shift_1): Likewise.
6887 (cortex_a15_neon_shift_2): Likewise.
6888 (cortex_a15_neon_shift_3): Likewise.
6889 (cortex_a15_neon_vshl_ddd): Likewise.
6890 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6891 (cortex_a15_neon_vsra_vrsra): Likewise.
6892 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
6893 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
6894 (cortex_a15_neon_fp_vmul_ddd): Likewise.
6895 (cortex_a15_neon_fp_vmul_qqd): Likewise.
6896 (cortex_a15_neon_fp_vmla_ddd): Likewise.
6897 (cortex_a15_neon_fp_vmla_qqq): Likewise.
6898 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
6899 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
6900 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6901 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6902 (cortex_a15_neon_bp_simple): Likewise.
6903 (cortex_a15_neon_bp_2cycle): Likewise.
6904 (cortex_a15_neon_bp_3cycle): Likewise.
6905 (cortex_a15_neon_vld1_1_2_regs): Likewise.
6906 (cortex_a15_neon_vld1_3_4_regs): Likewise.
6907 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6908 (cortex_a15_neon_vld2_4_regs): Likewise.
6909 (cortex_a15_neon_vld3_vld4): Likewise.
6910 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6911 (cortex_a15_neon_vst1_3_4_regs): Likewise.
6912 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
6913 (cortex_a15_neon_vst3_vst4): Likewise.
6914 (cortex_a15_neon_vld1_vld2_lane): Likewise.
6915 (cortex_a15_neon_vld3_vld4_lane" 10
6916 (cortex_a15_neon_vst1_vst2_lane): Likewise.
6917 (cortex_a15_neon_vst3_vst4_lane): Likewise.
6918 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
6919 (cortex_a15_neon_ldm_2): Likewise.0
6920 (cortex_a15_neon_stm_2): Likewise.
6921 (cortex_a15_neon_mcr): Likewise.
6922 (cortex_a15_neon_mcr_2_mcrr): Likewise.
6923 (cortex_a15_neon_mrc): Likewise.
6924 (cortex_a15_neon_mrrc): Likewise.
6925 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6926 change.
6927 (cortex_a15_alu_shift): Likewise.
6928 (cortex_a15_alu_shift_reg): Likewise.
6929 (cortex_a15_mult32): Likewise.
6930 (cortex_a15_mult64): Likewise.
6931 (cortex_a15_block): Likewise.
6932 (cortex_a15_branch): Likewise.
6933 (cortex_a15_load1): Likewise.
6934 (cortex_a15_load3): Likewise.
6935 (cortex_a15_store1): Likewise.
6936 (cortex_a15_store3): Likewise.
6937 (cortex_a15_call): Likewise.
f43245d1 6938 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
6939 (cortex_a5_f2r): Likewise.
6940 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
6941 change.
6942 (cortex_a53_f2r): Likewise.
6943 * config/arm/cortex-a7.md
6944 (cortex_a7_branch): Update for attribute change.
6945 (cortex_a7_call): Likewise.
6946 (cortex_a7_alu_imm): Likewise.
6947 (cortex_a7_alu_reg): Likewise.
6948 (cortex_a7_alu_shift): Likewise.
6949 (cortex_a7_mul): Likewise.
6950 (cortex_a7_load1): Likewise.
6951 (cortex_a7_store1): Likewise.
6952 (cortex_a7_load2): Likewise.
6953 (cortex_a7_store2): Likewise.
6954 (cortex_a7_load3): Likewise.
6955 (cortex_a7_store3): Likewise.
6956 (cortex_a7_load4): Likewise.
6957 (cortex_a7_store4): Likewise.
6958 (cortex_a7_fpalu): Likewise.
6959 (cortex_a7_fconst): Likewise.
6960 (cortex_a7_fpmuls): Likewise.
6961 (cortex_a7_neon_mul): Likewise.
6962 (cortex_a7_fpmacs): Likewise.
6963 (cortex_a7_neon_mla: Likewise.
6964 (cortex_a7_fpmuld: Likewise.
6965 (cortex_a7_fpmacd: Likewise.
6966 (cortex_a7_fpfmad: Likewise.
6967 (cortex_a7_fdivs: Likewise.
6968 (cortex_a7_fdivd: Likewise.
6969 (cortex_a7_r2f: Likewise.
6970 (cortex_a7_f2r: Likewise.
6971 (cortex_a7_f_flags: Likewise.
6972 (cortex_a7_f_loads: Likewise.
6973 (cortex_a7_f_loadd: Likewise.
6974 (cortex_a7_f_stores: Likewise.
6975 (cortex_a7_f_stored: Likewise.
6976 (cortex_a7_neon): Likewise.
6977 * config/arm/cortex-a8-neon.md
6978 (cortex_a8_neon_mrc): Update for attribute change.
6979 (cortex_a8_neon_mrrc): Likewise.
6980 (cortex_a8_neon_int_1): Likewise.
6981 (cortex_a8_neon_int_2): Likewise.
6982 (cortex_a8_neon_int_3): Likewise.
6983 (cortex_a8_neon_int_4): Likewise.
6984 (cortex_a8_neon_int_5): Likewise.
6985 (cortex_a8_neon_vqneg_vqabs): Likewise.
6986 (cortex_a8_neon_vmov): Likewise.
6987 (cortex_a8_neon_vaba): Likewise.
6988 (cortex_a8_neon_vaba_qqq): Likewise.
6989 (cortex_a8_neon_vsma): Likewise.
6990 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6991 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6992 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6993 long_scalar): Likewise.
003bb7f3
JG
6994 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6995 (cortex_a8_neon_mla_qqq_8_16): Likewise.
6996 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6997 long_scalar_qdd_64_32_long): Likewise.
6998 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6999 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7000 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
7001 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7002 (cortex_a8_neon_shift_1): Likewise.
7003 (cortex_a8_neon_shift_2): Likewise.
7004 (cortex_a8_neon_shift_3): Likewise.
7005 (cortex_a8_neon_vshl_ddd): Likewise.
7006 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7007 (cortex_a8_neon_vsra_vrsra): Likewise.
7008 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
7009 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
7010 (cortex_a8_neon_fp_vsum): Likewise.
7011 (cortex_a8_neon_fp_vmul_ddd): Likewise.
7012 (cortex_a8_neon_fp_vmul_qqd): Likewise.
7013 (cortex_a8_neon_fp_vmla_ddd): Likewise.
7014 (cortex_a8_neon_fp_vmla_qqq): Likewise.
7015 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
7016 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
7017 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7018 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7019 (cortex_a8_neon_bp_simple): Likewise.
7020 (cortex_a8_neon_bp_2cycle): Likewise.
7021 (cortex_a8_neon_bp_3cycle): Likewise.
7022 (cortex_a8_neon_ldr): Likewise.
7023 (cortex_a8_neon_str): Likewise.
7024 (cortex_a8_neon_vld1_1_2_regs): Likewise.
7025 (cortex_a8_neon_vld1_3_4_regs): Likewise.
7026 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7027 (cortex_a8_neon_vld2_4_regs): Likewise.
7028 (cortex_a8_neon_vld3_vld4): Likewise.
7029 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7030 (cortex_a8_neon_vst1_3_4_regs): Likewise.
7031 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
7032 (cortex_a8_neon_vst3_vst4): Likewise.
7033 (cortex_a8_neon_vld1_vld2_lane): Likewise.
7034 (cortex_a8_neon_vld3_vld4_lane): Likewise.
7035 (cortex_a8_neon_vst1_vst2_lane): Likewise.
7036 (cortex_a8_neon_vst3_vst4_lane): Likewise.
7037 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
7038 (cortex_a8_neon_mcr): Likewise.
7039 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 7040 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
7041 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
7042 change.
7043 (ca9_neon_mrrc): Likewise.
7044 (cortex_a9_neon_int_1): Likewise.
7045 (cortex_a9_neon_int_2): Likewise.
7046 (cortex_a9_neon_int_3): Likewise.
7047 (cortex_a9_neon_int_4): Likewise.
7048 (cortex_a9_neon_int_5): Likewise.
7049 (cortex_a9_neon_vqneg_vqabs): Likewise.
7050 (cortex_a9_neon_vmov): Likewise.
7051 (cortex_a9_neon_vaba): Likewise.
7052 (cortex_a9_neon_vaba_qqq): Likewise.
7053 (cortex_a9_neon_vsma): Likewise.
7054 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7055 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7056 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7057 long_scalar): Likewise.
003bb7f3
JG
7058 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7059 (cortex_a9_neon_mla_qqq_8_16): Likewise.
7060 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7061 long_scalar_qdd_64_32_long): Likewise.
7062 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7063 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7064 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
7065 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7066 (cortex_a9_neon_shift_1): Likewise.
7067 (cortex_a9_neon_shift_2): Likewise.
7068 (cortex_a9_neon_shift_3): Likewise.
7069 (cortex_a9_neon_vshl_ddd): Likewise.
7070 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7071 (cortex_a9_neon_vsra_vrsra): Likewise.
7072 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
7073 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
7074 (cortex_a9_neon_fp_vsum): Likewise.
7075 (cortex_a9_neon_fp_vmul_ddd): Likewise.
7076 (cortex_a9_neon_fp_vmul_qqd): Likewise.
7077 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7078 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7079 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7080 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7081 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7082 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7083 (cortex_a9_neon_bp_simple): Likewise.
7084 (cortex_a9_neon_bp_2cycle): Likewise.
7085 (cortex_a9_neon_bp_3cycle): Likewise.
7086 (cortex_a9_neon_ldr): Likewise.
7087 (cortex_a9_neon_str): Likewise.
7088 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7089 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7090 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7091 (cortex_a9_neon_vld2_4_regs): Likewise.
7092 (cortex_a9_neon_vld3_vld4): Likewise.
7093 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7094 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7095 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7096 (cortex_a9_neon_vst3_vst4): Likewise.
7097 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7098 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7099 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7100 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7101 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7102 (cortex_a9_neon_mcr): Likewise.
7103 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7104 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7105 (cortex_a9_fps): Likewise.
7106 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7107 change.
7108 (cortex_m4_fmuls): Likewise.
7109 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7110 change.
7111 (cortex_r4_mrc): Likewise.
7112 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7113 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7114 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7115 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7116 attribute change.
003bb7f3
JG
7117 (pj4_core_to_vfp): Likewise.
7118 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7119 attribute change.
7120 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7121 (vfp_fstore): Likewise.
7122 * doc/md.texi: Change references to neon_type to refer to type.
7123
fbe0dc78
DS
71242013-09-04 Dodji Seketeli <dodji@redhat.com>
7125
7126 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7127
c167bc5b
DE
71282013-09-04 David Edelsohn <dje.gcc@gmail.com>
7129
7130 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7131 lglobl if not weak.
7132
035cb59f
ER
71332013-09-04 Easwaran Raman <eraman@google.com>
7134
7135 PR middle-end/57370
7136 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7137 (build_and_add_sum): Use it.
7138 (appears_later_in_bb): Simplify code.
7139
71191083
TJ
71402013-09-04 Teresa Johnson <tejohnson@google.com>
7141
7142 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7143
0c488213
JG
71442013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7145
7146 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7147
61a74079
JH
71482013-09-04 Jan Hubicka <jh@suse.cz>
7149
7150 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7151 * ipa-devirt.c: Include diganostic.h
7152 (odr_type_d): Add types and types_set.
7153 (hash_type_name): Work for types with vtables during LTO.
7154 (odr_hasher::remove): Fix comment; destroy types_set.
7155 (add_type_duplicate): New function,
7156 (get_odr_type): Use it.
7157 (dump_type_inheritance_graph): Dump type duplicates.
7158 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7159 graph.
7160 * tree.c (types_same_for_odr): Give exact answers on types with
7161 virtual tables.
7162
24ba8195
DS
71632013-09-04 Dodji Seketeli <dodji@redhat.com>
7164
7165 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7166 explaining their differences.
24ba8195 7167
0a04869e
SKS
71682013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7169
7170 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7171
3b18bc42
JL
71722013-09-03 Jeff Law <law@redhat.com>
7173
7174 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7175 when not threading through a joiner block. Pass joiner/no joiner
7176 state to register_jump_thread.
7177 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7178 state from argument rather than implying on path length.
7179 Dump the entire jump thread path into debugging dump.
7180 * tree-flow.h (register_jump_thread): Update prototype.
7181
ae84e151
XDL
71822013-08-29 Xinliang David Li <davidxl@google.com>
7183
7184 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7185 Remove a trivial gcc_assert.
7186
c716e67f
XDL
71872013-08-29 Xinliang David Li <davidxl@google.com>
7188
7189 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7190 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7191 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7192 Delay base decl alignment adjustment.
7193 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7194 * tree-vectorizer.h: New data structure.
7195 (set_dr_misalignment): New function.
7196 (dr_misalignment): Ditto.
7197 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7198 (vectorizable_load): Ditto.
7199 (ensure_base_align): New function.
7200 (vectorize_loops): Add dbg_cnt support.
7201 (execute_vect_slp): Ditto.
7202 * dbgcnt.def: New debug counter.
7203 * Makefile: New dependency.
7204
db8800bc
MI
72052013-09-03 Meador Inge <meadori@codesourcery.com>
7206
7207 Revert:
7208
7209 2013-08-30 Meador Inge <meadori@codesourcery.com>
7210
7211 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7212
0d9b4f5c
DE
72132013-09-03 David Edelsohn <dje.gcc@gmail.com>
7214
7215 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7216 function descriptor.
7217
29e810b9
RB
72182013-09-03 Richard Biener <rguenther@suse.de>
7219
7220 * tree-affine.c (add_elt_to_tree): Fix association issue,
7221 avoid useless converts and make sure to always return a
7222 properly typed result.
7223
dbfc2894
RB
72242013-09-03 Richard Biener <rguenther@suse.de>
7225
7226 PR middle-end/57656
7227 * fold-const.c (negate_expr_p): Fix division case.
7228 (negate_expr): Likewise.
7229
fa3bf4ce
RB
72302013-09-03 Richard Biener <rguenther@suse.de>
7231
7232 PR lto/58285
7233 * tree-streamer-out.c: Include tm.h.
7234 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7235
a64bbb3f
JH
72362013-09-03 Jan Hubicka <jh@suse.cz>
7237
7238 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7239
93ed07e2
AM
72402013-09-03 Alan Modra <amodra@gmail.com>
7241
7242 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7243 multilibs to big-endian target and vice versa.
7244 * config/rs6000/t-linux64: Use := assignment on all vars.
7245 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7246 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7247 * config/rs6000/t-linux64le: New file.
7248 * config/rs6000/t-linux64bele: New file.
7249 * config/rs6000/t-linux64lebe: New file.
7250
07d6cd64
JH
72512013-09-02 Jan Hubicka <jh@suse.cz>
7252
7253 * ipa-inline-transform.c (inline_transform): Do not
7254 optimize_inline_calls when not optimizing.
7255
8e4c9a10
JH
72562013-09-02 Jan Hubicka <jh@suse.cz>
7257
7258 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7259 duplicated nodes for assembler names.
7260 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7261 hard registers from assembler name hash.
7262
c91061e6
JH
72632013-09-02 Jan Hubicka <jh@suse.cz>
7264
7265 * ipa-split.c (execute_split_functions): Split externally visible
7266 functions called once.
7267
2fd0985c
MJ
72682013-09-02 Martin Jambor <mjambor@suse.cz>
7269
7270 PR ipa/58106
7271 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7272 linked list. When finding the correct duplicate, also consider also
7273 the caller in additon to its inlined_to node.
7274
91bd4114
JG
72752013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7276
7277 * config/aarch64/aarch64-simd-builtins.def
7278 (dup_lane_scalar): Remove.
7279 * config/aarch64/aarch64-simd.md
7280 (aarch64_simd_dup): Add 'w->w' alternative.
7281 (aarch64_dup_lane<mode>): Allow for VALL.
7282 (aarch64_dup_lane_scalar<mode>): Remove.
7283 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7284 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7285 (aarch64_get_lane_unsigned<mode>): Likewise.
7286 (aarch64_get_lane<mode>): Likewise.
7287 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7288 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7289 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7290 (VCON): Change container of V2SF.
7291 (vswap_width_name): Likewise.
7292 * config/aarch64/arm_neon.h
7293 (__aarch64_vdup_lane_any): New.
7294 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7295 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7296 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7297
d617d2d8
EB
72982013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7299
7300 PR middle-end/56382
7301 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7302 the source or the destination is a single hard register.
7303
63fdb7be
RB
73042013-09-02 Richard Biener <rguenther@suse.de>
7305
7306 PR middle-end/57511
7307 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7308 non-linear SCEVs.
7309
78de2333
RB
73102013-09-02 Richard Biener <rguenther@suse.de>
7311
7312 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7313 arithmetic to sizetype.
7314
85ff4ec6
BC
73152013-09-02 Bin Cheng <bin.cheng@arm.com>
7316
7317 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7318 Find auto-increment use both before and after candidate.
7319
576016fe
MP
73202013-09-02 Marek Polacek <polacek@redhat.com>
7321
7322 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7323
08f835dc
JH
73242013-09-01 Jan Hubicka <jh@suse.cz>
7325
7326 * Makefile.in: Add ipa-profile.o
7327 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7328 * cgraph.c (struct cgraph_propagate_frequency_data,
7329 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7330 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7331 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7332 * ipa-inline-analysis.c: Include ipa-utils.h;
7333 drop duplicated cfgloop.h.
08f835dc
JH
7334 (inline_update_callee_summaries): Update.
7335 * ipa-profile.c: New file.
7336 * ipa-utils.h (ipa_propagate_frequency): Declare.
7337 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7338 data-streamer.h, value-prof.h.
08f835dc
JH
7339 (symtab_remove_unreachable_nodes): Update profile.
7340 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7341 account_time_size, cmp_counts, dump_histogram,
7342 ipa_profile_generate_summary, ipa_profile_write_summary,
7343 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7344 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7345 Move to ipa-profile.c.
08f835dc 7346
cec8583c
JDA
73472013-09-01 John David Anglin <danglin@gcc.gnu.org>
7348
7349 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7350
bbc9396b
JH
73512013-09-01 Jan Hubicka <jh@suse.cz>
7352
7353 * common.opt (fdevirtualize-speculatively): New function.
7354 * invoke.texi (fdevirtualize-speculatively): Document.
7355 * ipa-devirt.c: Include ipa-inline.h
7356 (likely_target_p): New function.
7357 (ipa_devirt): New function.
7358 (gate_ipa_devirt): New function.
7359 (pass_data_ipa_devirt): New static var.
7360 (pass_ipa_devirt): Likewise.
7361 (make_pass_ipa_devirt): New function.
7362 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7363 (common_handle_option): Disable devirtualization when
7364 value range profiling is available.
7365 * passes.def (pass_ipa_devirt): Add.
7366 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7367 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7368
0cea211e
IS
73692013-09-01 Iain Sandoe <iain@codesourcery.com>
7370
7371 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7372 include sanitize(undefined).
7373
5e351e96
DN
73742013-08-31 Diego Novillo <dnovillo@google.com>
7375
7376 * Makefile.in (TREE_CORE_H): Define.
7377 (TREE_H): Use.
7378 (GTFILES): Add tree-core.h.
7379 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7380 size the array.
7381 * tree-core.h: New file.
7382 Move all data structures, enum, typedefs, global
7383 declarations and constants from ...
7384 * tree.h: ... here.
7385
63bf9a90
JH
73862013-08-31 Jan Hubicka <jh@suse.cz>
7387
7388 * bulitins.c (expand_builtin): Do not early exit for gcov
7389 instrumented functions.
7390
5c0abd6a
MP
73912013-08-31 Marek Polacek <polacek@redhat.com>
7392
7393 * ubsan.c: Include tm_p.h.
7394
4843f032
JH
73952013-08-31 Jan Hubicka <jh@suse.cz>
7396
8356c89c
JH
7397 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7398 warning.
7399
4843f032
JH
7400 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7401 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7402 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7403 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7404 (ipa_merge_profiles): New function.
7405 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7406 (lto_input_function_body): Likewise.
5e581212
JH
7407 * ipa-utils.h (ipa_merge_profiles): Declare.
7408 * lto-streamer.h (lto_input_function_body): Update prototype.
7409 (emit_label_in_global_context_p): Remove.
7410 * lto-symtab.c: Include ipa-utils.h
7411 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7412
57292ce9
JH
74132013-08-31 Jan Hubicka <jh@suse.cz>
7414
7415 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7416
b9cbfeeb
JH
74172013-08-31 Jan Hubicka <jh@suse.cz>
7418
7419 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7420
41dedebd
UB
74212013-08-31 Uros Bizjak <ubizjak@gmail.com>
7422
7423 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7424 "cmp" RTX before signed_comparison_operator check to account
7425 for "code" changes.
7426
06d65050
JH
74272013-08-30 Jan Hubicka <jh@suse.cz>
7428
41dedebd 7429 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7430 (detect_type_change_1): Rename to ...
7431 (detect_type_change): ... this one; early return on non-polymorphic
7432 types.
41dedebd 7433 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7434 use of detect_type_change.
7435 (compute_complex_assign_jump_func): Add param_type parameter;
7436 update use of detect_type_change_ssa.
7437 (compute_complex_ancestor_jump_func): Likewise.
7438 (ipa_get_callee_param_type): New function.
7439 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7440 update calls to the jump function computation functions.
7441
600b5b1d
TJ
74422013-08-30 Teresa Johnson <tejohnson@google.com>
7443 Steven Bosscher <steven@gcc.gnu.org>
7444
7445 * cfgrtl.c (fixup_new_cold_bb): New routine.
7446 (commit_edge_insertions): Invoke fixup_partitions.
7447 (find_partition_fixes): New routine.
7448 (fixup_partitions): Ditto.
7449 (verify_hot_cold_block_grouping): Update comments.
7450 (rtl_verify_edges): Invoke find_partition_fixes.
7451 (rtl_verify_bb_pointers): Update comments.
7452 (rtl_verify_bb_layout): Ditto.
7453 * basic-block.h (probably_never_executed_edge_p): Declare.
7454 (fixup_partitions): Ditto.
7455 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7456 * bb-reorder.c (sanitize_hot_paths): New function.
7457 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7458 sanitize_hot_paths.
7459 * predict.c (probably_never_executed_edge_p): New routine.
7460 * cfg.c (check_bb_profile): Add partition insanity warnings.
7461
0a6ea5c9
MI
74622013-08-30 Meador Inge <meadori@codesourcery.com>
7463
7464 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7465
de5a5fa1
MP
74662013-08-30 Marek Polacek <polacek@redhat.com>
7467
7468 * Makefile.in (ubsan.o): Add.
7469 (c-family/c-ubsan.o): Add.
7470 (builtins.o): Add ubsan.h dependency.
7471 * ubsan.h: New file.
7472 * ubsan.c: New file.
7473 * common.opt: Add -fsanitize=undefined option.
7474 (flag_sanitize): Add variable.
7475 (fsanitize=): Add option. Add Driver.
7476 (fsanitize=thread): Remove option.
7477 (fsanitize=address): Likewise.
7478 (static-libubsan): New option.
7479 * doc/invoke.texi: Document the new flag and -static-libubsan.
7480 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7481 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7482 * builtin-attrs.def (ATTR_COLD): Define.
7483 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7484 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7485 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7486 * flag-types.h (sanitize_code): New enum.
7487 * opts.c (common_handle_option): Parse command line arguments
7488 of -fsanitize=. Add -fsanitize=unreachable option.
7489 * varasm.c (get_variable_section): Adjust.
7490 (assemble_noswitch_variable): Likewise.
7491 (assemble_variable): Likewise.
7492 (output_constant_def_contents): Likewise.
7493 (categorize_decl_for_section): Likewise.
7494 (place_block_symbol): Likewise.
7495 (output_object_block): Likewise.
7496 * builtins.def: Likewise.
7497 * toplev.c (compile_file): Likewise.
7498 (process_options): Likewise.
7499 * cppbuiltin.c: Likewise.
7500 * tsan.c (tsan_pass): Likewise.
7501 (tsan_gate): Likewise.
7502 (tsan_gate_O0): Likewise.
7503 * cfgexpand.c (partition_stack_vars): Likewise.
7504 (expand_stack_vars): Likewise.
7505 (defer_stack_allocation): Likewise.
7506 (expand_used_vars): Likewise.
7507 * cfgcleanup.c (old_insns_match_p): Likewise.
7508 * asan.c (asan_finish_file): Likewise.
7509 (asan_instrument): Likewise.
7510 (gate_asan): Likewise.
7511 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7512 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7513 (asan_global_struct): Use pointer_sized_int_node instead
7514 calling build_nonstandard_integer_type.
7515 (initialize_sanitizer_builtins): Likewise.
7516 (asan_finish_file): Likewise.
7517 * gcc.c: Document %{%:function(args):X}.
7518 (static_spec_functions): Add sanitize.
7519 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7520 store funcval != NULL there.
7521 (do_spec_1): Adjust handle_spec_function caller.
7522 (handle_braces): Allow %:function(args) as condition.
7523 (sanitize_spec_function): New function.
7524 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7525 (LIBUBSAN_SPEC): Likewise.
7526 (LIBUBSAN_EARLY_SPEC): Likewise.
7527 (SANITIZER_SPEC): Handle libubsan.
7528 (SANITIZER_EARLY_SPEC): Likewise.
7529 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7530 instead of fsanitize=address.
7531 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7532 instead of fsanitize=address*.
7533 * builtins.c: Include ubsan.h.
7534 (fold_builtin_0): Instrument __builtin_unreachable.
7535 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7536 instead of flag_asan.
7537 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7538 (pointer_sized_int_node): Define.
41dedebd 7539 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7540
f07f30cf
MS
75412013-08-30 Mike Stump <mikestump@comcast.net>
7542
7543 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7544 with RE patterns.
7545
8a41354f
JH
75462013-08-29 Jan Hubicka <jh@suse.cz>
7547
7548 * cgraph.c (cgraph_function_body_availability): Handle weakref
7549 correctly.
7550 * passes.def: Remove pass_fixup_cfg.
7551 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7552 track when we need to remove functions.
7553 (gate_ipa_inline): Execute inlining always; add comment why.
7554 (pass_data_ipa_inline): Remove TODO_remove_functions.
7555 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7556 do not produce summaries.
7557 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7558 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7559 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7560 constant pool and vtable.
7561
dc8d7a0f
TB
75622013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7563
41dedebd
UB
7564 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7565 New arm_neon.h's internal macros to specify 64-bit constants.
7566 Avoid using stdint.h's macros.
dc8d7a0f 7567
ac7eacd2
JR
75682013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7569
7570 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7571 before applying REG_P.
7572
8b29fd4e
JJ
75732013-08-30 Jakub Jelinek <jakub@redhat.com>
7574
7575 PR tree-optimization/58277
7576 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7577 after seeing too many stmts with vdef in between dombb and current
7578 bb, invalidate everything.
7579
26d75703
RB
75802013-08-30 Richard Biener <rguenther@suse.de>
7581
7582 * fold-const.c (fold_single_bit_test): Fix overflow test.
7583
f7e088e7
EB
75842013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7585
7586 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7587 and which can live in a register, always retrieve the value on entry.
7588 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7589 passed by invisible reference specially.
7590 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7591 (vt_add_function_parameter): Correctly deal with a parameter passed by
7592 invisible reference.
7593
75942013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7595
7596 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7597
6e8dad05
RB
75982013-08-30 Richard Biener <rguenther@suse.de>
7599
7600 PR tree-optimization/58228
7601 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7602 allow invariant loads in nested loop vectorization.
7603
062ef2c8
RB
76042013-08-30 Richard Biener <rguenther@suse.de>
7605
7606 PR tree-optimization/58223
7607 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7608 (has_anti_or_output_dependence): ... this and adjust to also
7609 look for output dependences.
7610 (mark_nodes_having_upstream_mem_writes): Adjust.
7611 (rdg_flag_uses): Likewise.
7612
7a764c60
RB
76132013-08-30 Richard Biener <rguenther@suse.de>
7614
7615 PR tree-optimization/58010
7616 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7617 assert that we have a loop-closed PHI.
7618
82e9d642
JH
76192013-08-29 Jan Hubicka <jh@suse.cz>
7620
7621 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7622 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7623 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7624 (lto_free_function_in_decl_state_for_node): New function.
7625
9cc1fb4b
XDL
76262013-08-29 Xinliang David Li <davidxl@google.com>
7627
41dedebd 7628 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7629 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7630 Emit alignment peeling message with default -fopt-info.
7631 (vect_loop_versioning): Emit loop version info message.
41dedebd 7632 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7633 (execute_vect_slp): Ditto.
7634
440a5082
EB
76352013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7636
7637 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7638 of the clone from the DECL_NAME of the original function.
7639
3fa3690d
OE
76402013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7641
7642 * passes.c (register_pass): Add overload.
7643 * tree-pass.h (register_pass): Forward declare it. Add comment.
7644
0170f33c
JH
76452013-08-29 Jan Hubicka <jh@suse.cz>
7646
41dedebd
UB
7647 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7648 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7649 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7650 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7651 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7652 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7653 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7654 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7655
103ff0d6
TJ
76562013-08-29 Teresa Johnson <tejohnson@google.com>
7657
7658 * dumpfile.c (dump_loc): Output column number.
7659 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7660 * doc/invoke.texi: Document optall -fopt-info flag.
7661 * profile.c (read_profile_edge_counts): Use new dump framework.
7662 (compute_branch_probabilities): Ditto.
7663 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7664 when pass not in any opt group.
7665 * pass_manager.h (pass_manager::get_pass_profile): New method.
7666 * value-prof.c (check_counter): Use new dump framework.
7667 (check_ic_target): Ditto.
7668 * coverage.c (get_coverage_counts): Ditto.
7669 (coverage_init): Setup new dump framework.
7670
301bbc16
RB
76712013-08-29 Richard Biener <rguenther@suse.de>
7672
7673 PR tree-optimization/58246
7674 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7675 handle the dominance check inside a basic-block.
7676
1b275000
RB
76772013-08-29 Richard Biener <rguenther@suse.de>
7678
7679 PR middle-end/57287
7680 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7681 of default defs that appear in abnormal PHI nodes.
7682
6b1184ba
RB
76832013-08-29 Richard Biener <rguenther@suse.de>
7684
7685 PR tree-optimization/57685
7686 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7687 single-use operands to avoid exponential complexity.
7688
1b08b734
DC
76892013-08-28 Dehao Chen <dehao@google.com>
7690
7691 * ipa-inline.c (edge_badness): Fix integer underflow.
7692
48a3fa69
UB
76932013-08-28 Uros Bizjak <ubizjak@gmail.com>
7694
7695 * gtm-builtins.def (_ITM_free): Declare leaf.
7696
215f73e6
JJ
76972013-08-28 Jakub Jelinek <jakub@redhat.com>
7698
7699 PR target/58067
7700 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7701 (*tls_local_dynamic_base_64_largepic): Likewise.
7702 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7703 Remove predicate from call operand.
7704 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7705 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7706
34554d1a
JL
77072013-08-28 Jeff Law <law@redhat.com>
7708
7709 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7710 checks for the number of predecessors and successors allowed.
7711 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7712 which require copying a joiner block if there is a request which
7713 is a subpath that requires no joiner block copying.
7714
c01c111b
JH
77152013-08-28 Jan Hubicka <jh@suse.cz>
7716
7717 * lto-streamer-out.c (DFS_write_tree_body): Drop
7718 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7719 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7720 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7721 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7722 Do not read DECL_ERROR_ISSUED.
7723 (unpack_ts_decl_with_vis_value_fields): Do not read
7724 DECL_DEFER_OUTPUT.
48a3fa69
UB
7725 (lto_input_ts_binfo_tree_pointers): Do not read
7726 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7727 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7728 write DECL_ERROR_ISSUED..
7729 (pack_ts_decl_with_vis_value_fields): Do not write
7730 DECL_DEFER_OUTPUT.
7731 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7732 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7733 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7734 * tree.h (tree_decl_common): Update comment.
7735 (DECL_ERROR_ISSUED): Remove.
7736
4b128ece
JJ
77372013-08-28 Jakub Jelinek <jakub@redhat.com>
7738
7739 PR middle-end/58257
7740 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7741
12211b99 77422013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7743
7744 * builtins.def (free): Declare leaf.
7745
8dce4dbc
DM
77462013-08-27 David Malcolm <dmalcolm@redhat.com>
7747
7748 * gdbhooks.py: New.
7749 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7750 * configure: Regenerate.
7751
b8f6e610
MJ
77522013-08-27 Martin Jambor <mjambor@suse.cz>
7753
7754 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7755 (ipa_ancestor_jf_data): Likewise.
7756 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7757 (ipa_get_jf_pass_through_type_preserved): New function.
7758 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7759 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7760 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
7761 (ipa_get_jf_ancestor_result): Likewise.
7762 (propagate_vals_accross_pass_through): Use
7763 ipa_get_jf_pass_through_result to do all the value mappings.
7764 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7765 type_preserved flag.
7766 (ipa_set_jf_cst_copy): New function.
7767 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7768 (ipa_set_jf_arith_pass_through): Likewise.
7769 (ipa_set_ancestor_jf): Likewise.
7770 (compute_complex_assign_jump_func): Set type_preserved instead of
7771 punting.
7772 (ipa_compute_jump_functions_for_edge): Likewise.
7773 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7774 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 7775 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
7776 (ipa_write_jump_function): Stream the type_preserved flags.
7777 (ipa_read_jump_function): Likewise.
7778
74bf76ed
JJ
77792013-08-27 Jakub Jelinek <jakub@redhat.com>
7780 Aldy Hernandez <aldyh@redhat.com>
7781
7782 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7783 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7784 * function.h (struct function): Add has_force_vect_loops and
7785 has_simduid_loops.
12211b99 7786 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
7787 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7788 handle it.
7789 * gimple.def: Update CLAUSES comments.
7790 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7791 (gimple_build_omp_for): Add argument to prototype.
7792 (gimple_omp_for_kind): New.
7793 (gimple_omp_for_set_kind): New.
7794 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7795 GOVD_DATA_SHARE_CLASS.
7796 (enum omp_region_type): Add ORT_SIMD.
7797 (gimple_add_tmp_var): Handle ORT_SIMD.
7798 (gimplify_var_or_parm_decl): Same.
7799 (is_gimple_stmt): Same.
7800 (omp_firstprivatize_variable): Same.
7801 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7802 (omp_notice_variable): Handle ORT_SIMD.
12211b99 7803 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
7804 (omp_check_private): Handle ORT_SIMD.
7805 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7806 OMP_CLAUSE_SAFELEN.
7807 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7808 Handle OMP_CLAUSE_LASTPRIVATE.
7809 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7810 OMP_CLAUSE_SAFELEN.
7811 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7812 (gimplify_expr): Handle OMP_SIMD.
7813 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7814 (expand_GOMP_SIMD_VF): New.
7815 (expand_GOMP_SIMD_LAST_LANE): New.
7816 * internal-fn.def (GOMP_SIMD_LANE): New.
7817 (GOMP_SIMD_VF): New.
7818 (GOMP_SIMD_LAST_LANE): New.
7819 * omp-low.c: Include target.h.
7820 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7821 OMP_CLAUSE_SAFELEN.
7822 (check_omp_nesting_restrictions): Same.
7823 (omp_max_vf): New.
7824 (lower_rec_simd_input_clauses): New.
7825 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7826 OMP_CLAUSE_LINEAR.
7827 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7828 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7829 (expand_omp_build_assign): New.
7830 (expand_omp_for_init_counts): New.
7831 (expand_omp_for_init_vars): New.
7832 (extract_omp_for_update_vars): New.
7833 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7834 and rewrite accordingly.
7835 (expand_omp_simd): New.
7836 (expand_omp_for): Use expand_omp_simd.
7837 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7838 (lower_omp_for): Do not lower the body.
7839 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
7840 in their own loops.
7841 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
7842 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
7843 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
7844 (gate_tree_if_conversion): Similarly.
7845 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
7846 gimple_build_omp_for.
7847 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
7848 * tree-parloops (create_parallel_loop): Pass kind argument to
7849 gimple_build_omp_for.
7850 * tree-pretty-print.c (dump_omp_clause): Add cases for
7851 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
7852 OMP_CLAUSE__SIMDUID_.
7853 (dump_generic_node): Handle OMP_SIMD.
7854 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
7855 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
7856 unroll OMP_SIMD loops here.
12211b99 7857 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 7858 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 7859 loop->safelen.
74bf76ed
JJ
7860 (vect_analyze_data_refs): Handle simd loops.
7861 * tree-vect-loop.c (vectorizable_live_operation): Handle
7862 IFN_GOMP_SIMD*.
12211b99 7863 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
7864 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
7865 (vectorizable_load): Same.
12211b99 7866 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
7867 (struct simduid_to_vf): New.
7868 (simduid_to_vf::hash): New.
7869 (simduid_to-vf::equal): New.
7870 (struct simd_array_to_simduid): New.
7871 (simd_array_to_simduid::hash): New.
7872 (simd_array_to_simduid::equal): New.
7873 (adjust_simduid_builtins): New.
7874 (struct note_simd_array_uses_struct): New.
7875 (note_simd_array_uses_cb): New.
7876 (note_simd_array_uses): New.
7877 (vectorize_loops): Handle simd hints and adjust simd builtins
7878 accordingly.
7879 * tree-vectorizer.h (struct _stmt_vec_info): Add
7880 simd_lane_access_p field.
7881 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
7882 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
7883 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
7884 (omp_clause_code_name): Same.
7885 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
7886 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
7887 * tree.def (OMP_SIMD): New entry.
12211b99
UB
7888 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
7889 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
7890 (OMP_CLAUSE_DECL): Adjust range for new clauses.
7891 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
7892 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
7893 (OMP_CLAUSE_LINEAR_STEP): New.
7894 (OMP_CLAUSE_SAFELEN_EXPR): New.
7895 (OMP_CLAUSE__SIMDUID__DECL): New.
7896 (find_omp_clause): New prototype.
7897
d0cf4e84
L
78982013-08-27 H.J. Lu <hongjiu.lu@intel.com>
7899
7900 * config/i386/driver-i386.c (host_detect_local_cpu): Update
7901 Haswell processor detection.
7902
992592ec
CW
79032013-08-27 Christian Widmer <shadow@umbrox.de>
7904
7905 PR target/57927
7906 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7907 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
7908 AVX2 capable processors.
7909
9116eb22
TB
79102013-08-27 Tejas Belagod <tejas.belagod@arm.com>
7911
7912 * config/aarch64/arm_neon.h: Replace all inline asm implementations
7913 of vget_low_* with implementations in terms of other intrinsics.
7914
1c5abb53
MG
79152013-08-27 Marc Glisse <marc.glisse@inria.fr>
7916
7917 PR middle-end/57219
7918 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
7919 values to -1, 0 and 1.
7920
2e100703
VP
79212013-08-27 Vidya Praveen <vidyapraveen@arm.com>
7922
7923 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
7924 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
7925 (<optab><mode>3_insn): Remove.
7926 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
7927 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7928 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7929 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
7930 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
7931 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
7932 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
7933 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
7934 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
7935 (ror<mode>3_insn): Likewise.
7936 * config/aarch64/predicates.md (aarch64_simd_register): New.
7937
4ded8276
RB
79382013-08-27 Richard Biener <rguenther@suse.de>
7939
7940 PR tree-optimization/57521
7941 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7942 one edge is non-critical.
7943 (find_phi_replacement_condition): Make sure to use a non-critical
7944 edge. Cleanup and remove old bug workarounds.
7945 (bb_postdominates_preds): Remove.
7946 (if_convertible_loop_p_1): Do not compute post-dominators.
7947 (combine_blocks): Do not free post-dominators.
7948 (main_tree_if_conversion): Likewise.
7949 (pass_data_if_conversion): Add TODO_verify_ssa.
7950
5aa11061
DD
79512013-08-27 DJ Delorie <dj@redhat.com>
7952
7953 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
7954
fd91cfe3
YZ
79552013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
7956
7957 * function.c (assign_parm_find_data_types): Set passed_mode and
7958 nominal_mode to the TYPE_MODE of nominal_type for the built
7959 pointer type in case of the struct-pass-by-reference.
7960
907555ce
JR
79612013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7962
7963 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
7964 (UINT16_TYPE): Change default to "unsigned int".
7965
67518c93
JR
7966 * config/avr/avr.opt (mfract-convert-truncate): New option.
7967 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
7968 is set, round negative fractional integers according to n1169
7969 when converting to integer types.
7970
d6d989fc
JH
79712013-08-26 Jan Hubicka <jh@suse.cz>
7972
7973 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
7974 methods can not be called indirectly when their address is not taken.
7975
2aa3da06
JH
79762013-08-26 Jan Hubicka <jh@suse.cz>
7977
12211b99
UB
7978 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
7979 ctor_for_folding.
2aa3da06 7980
0987ffe7
JH
79812013-08-26 Jan Hubicka <jh@suse.cz>
7982
7983 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
7984 can be unshared.
7985
befe8647
JR
79862013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7987
7988 * reload.c (find_valid_class): Allow classes that do not include
7989 FIRST_PSEUDO_REGISTER - 1.
7990
a21e735e
JH
79912013-08-26 Jan Hubicka <jh@suse.cz>
7992
7993 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
7994 fix edge count/frequency when speculation failed; fix type check
7995 for the direct call.
7996
e067bd43
JH
79972013-08-26 Jan Hubicka <jh@suse.cz>
7998
7999 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
8000
e8aec975
JH
80012013-08-26 Jan Hubicka <jh@suse.cz>
8002
8003 * ipa-inline-transform.c (inline_transform): Be ready for basic block
8004 to be changed by edge redirection.
8005
d0b66480
JH
80062013-08-26 Jan Hubicka <jh@suse.cz>
8007
12211b99
UB
8008 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
8009 formating; add sanity check.
d0b66480
JH
8010 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
8011 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
8012 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
8013 (resolve_noninline_speculation): Update callee keys, too.
8014
0f9aaac7
JH
80152013-08-26 Jan Hubicka <jh@suse.cz>
8016
8017 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
8018 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
8019
4b37444e
JR
80202013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8021
8022 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
8023 into proper place.
8024
5339fc0c
UB
80252013-08-26 Uros Bizjak <ubizjak@gmail.com>
8026
8027 * config/i386/i386.c (ix86_debug_options): Remove prototype.
8028 (x86_64_elf_select_section): Ditto.
8029 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
8030 arguments.
8031 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
8032 (output_set_got): Ditto.
8033 (ix86_unary_operator_ok): Ditto.
8034 (ix86_expand_builtin): Ditto.
8035
d5c3d3ef
JH
80362013-08-23 Jan Hubicka <jh@suse.cz>
8037
5339fc0c 8038 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 8039
5b1e7435
JH
80402013-08-23 Jan Hubicka <jh@suse.cz>
8041
8042 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
8043 (tree_decl_with_vis): Add FINAL field.
8044
ead69dac
JL
80452013-08-23 Jeff Law <law@redhat.com>
8046
8047 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
8048 the debugging dump when the expression is fully redundant.
8049
025311c4
GDR
80502013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8051
8052 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
8053 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
8054 * pretty-print.c (pp_formatted_text_data): Likewise.
8055 (pp_write_text_to_stream): Likewise.
8056 (pp_write_text_as_dot_label_to_stream): Likewise.
8057 (pp_append_r): Likewise.
8058 (pp_format): Likewise.
8059 (pp_flush): Likewise.
8060 (pp_clear_output_area): Likewise.
8061 (pp_append_text): Likewise.
8062 (pp_formatted_text): Likewise.
8063 (pp_remaining_character_count_for_line): Likewise.
8064 (pp_newline): Likewise.
8065 (pp_character): Likewise.
8066 (output_buffer::~output_buffer): Define.
8067 (pretty_printer::~pretty_printer): Destruct output buffer.
8068 * pretty-print.h (output_buffer::~output_buffer): Declare.
8069 (pretty_printer::~pretty_printer): Declare virtual.
8070
0cadbfaa
MG
80712013-08-24 Marc Glisse <marc.glisse@inria.fr>
8072
8073 PR other/57324
8074 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
8075 HOST_WIDE_INT_M1U): New macros.
8076 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
8077 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8078 unsigned -1 for lshift.
8079 * cse.c (cse_insn): Likewise.
8080 * double-int.c (rshift_double, lshift_double): Likewise.
8081 * builtins.c (fold_builtin_bitop): Likewise.
8082 * combine.c (force_to_mode): Likewise.
8083 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8084 * simplify-rtx.c (simplify_const_unary_operation,
8085 simplify_const_binary_operation): Likewise.
8086 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8087 check_va_list_escapes): Likewise.
8088 * rtlanal.c (nonzero_bits1): Likewise.
8089 * expmed.c (expand_smod_pow2): Likewise.
8090 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8091
009e5353
JH
80922013-08-23 Jan Hubicka <jh@suse.cz>
8093
8094 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8095 as having address taken.
8096
c4be6568
JH
80972013-08-23 Jan Hubicka <jh@suse.cz>
8098
64cbf23d
JH
8099 * ipa-utils.h (method_class_type): Declare.
8100 * ipa-devirt.c (method_class_type): Export.
8101
c4be6568
JH
8102 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8103 do not walk base classes of anonymous types.
8104
97aba8e9
KK
81052013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8106
8107 PR rtl-optimization/58220
8108 PR regression/58221
8109 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8110 handle SEQUENCE insns properly.
8111
0fc80001
GDR
81122013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8113
8114 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8115 definition.
8116 (pp_newline_and_indent): Likewise.
8117 (pp_separate_with): Likewise.
8118 * pretty-print.c (pp_newline_and_flush): Define.
8119 (pp_newline_and_indent): Likewise.
8120 (pp_separate_with): Likewise.
8121
520a5868
JJ
81222013-08-23 Jakub Jelinek <jakub@redhat.com>
8123
8124 PR target/58218
8125 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8126 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8127
e500c62a
KY
81282013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8129
f43245d1
UB
8130 * config/i386/predicates.md (ext_sse_reg_operand): New.
8131 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8132 predicate to determine if EVEX is needed.
8133 (*movsi_internal): Ditto.
8134 (*movdf_internal): Ditto.
8135 (*movsf_internal): Ditto.
f43245d1 8136 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8137
6b00d7dd
JJ
81382013-08-23 Jakub Jelinek <jakub@redhat.com>
8139
8140 PR tree-optimization/58209
8141 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8142 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8143 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8144 emit POINTER_PLUS_EXPR.
8145 (create_tailcall_accumulator): For pointer result type accumulate in
8146 sizetype type.
8147
4f2a9f90
PC
81482013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8149
8150 * configure.ac: Add backslashes missing from the last change.
8151 * configure: Regenerate.
8152
7bf4274e
JH
81532013-08-22 Jan Hubicka <jh@susue.cz>
8154
4f2a9f90
PC
8155 * ipa.c (function_and_variable_visibility): First remember function
8156 was global and then make it local.
7bf4274e 8157
1bea243d
JB
81582013-08-22 Julian Brown <julian@codesourcery.com>
8159
8160 * configure.ac: Add aarch64 to list of arches which use "nop" in
8161 debug_line test.
8162 * configure: Regenerate.
8163
bcba7ecc
AK
81642013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8165
8166 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8167 gnu_libc_has_function.
8168 * config/s390/tpf.h: Likewise.
8169
4c495b0d
JH
81702013-08-22 Jan Hubicka <jh@susue.cz>
8171
8172 * timevar.c (validate_phases): Add cast.
8173
5e302bca
JH
81742013-08-22 Jan Hubicka <jh@susue.cz>
8175
8176 * timevar.c (validate_phases): Use size_t for memory.
8177 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8178
da6ca2b5
GDR
81792013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8180
8181 * pretty-print.h (output_buffer::output_buffer): Declare.
8182 (pretty_printer::pretty_printer): Likewise.
8183 (pp_construct): Remove.
8184 * pretty-print.c (output_buffer::output_buffer): Define.
8185 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8186 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8187 (print_gimple_expr): Likewise.
8188 (print_gimple_seq): Likewise.
8189 (gimple_dump_bb): Likewise.
8190 * sched-vis.c (dump_value_slim): Likewise.
8191 (dump_insn_slim): Likewise.
8192 (dump_rtl_slim): Likewise.
8193 (str_pattern_slim): Likewise.
8194 * tree-mudflap.c (mf_varname_tree): Likewise.
8195 * graph.c (print_graph_cfg): Likewise.
8196 (start_graph_dump): Likewise.
8197 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8198 placement-new.
8199 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8200 pretty printer initialization.
8201 * coretypes.h (diagnostic_context): Remove superflous type alias
8202 declaration.
8203 (pretty_printer): Likewise. Declare directly as a class.
8204 (pretty_print_info): Remove declaration as class.
8205 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8206 and pp_clear_output_area.
8207 (asan_add_global): Likewise.
8208
0e1474e5
JH
82092013-08-22 Jan Hubicka <jh@suse.cz>
8210
8211 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8212 * ipa-utils.h (update_type_inheritance_graph): Declare.
8213 (possible_polymorphic_call_target_p): Declare.
8214 (possible_polymorphic_call_target_p): New.
8215 * ipa-devirt.c: Update toplevel comments.
8216 (cached_polymorphic_call_targets): Move up.
8217 (odr_type_d): Move ID down.
8218 (polymorphic_type_binfo_p): Update comment.
8219 (odr_hasher::remove): Likewise;
8220 (get_odr_type): Set anonymous_namespace.
8221 (dump_odr_type): Dump it.
8222 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8223 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8224 (record_binfo): Add comment.
5339fc0c
UB
8225 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8226 built.
0e1474e5
JH
8227 (devirt_node_removal_hook): Do not iCE when cache is freed.
8228 (possible_polymorphic_call_target_p): New predicate.
8229 (update_type_inheritance_graph): New function.
8230
3f97cb0b
AI
82312013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8232 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8233 Sergey Lega <sergey.s.lega@intel.com>
8234 Anna Tikhonova <anna.tikhonova@intel.com>
8235 Ilya Tocar <ilya.tocar@intel.com>
8236 Andrey Turetskiy <andrey.turetskiy@intel.com>
8237 Ilya Verbin <ilya.verbin@intel.com>
8238 Kirill Yukhin <kirill.yukhin@intel.com>
8239 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8240
8241 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8242 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8243 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8244 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8245 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8246 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8247 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8248 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8249 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8250 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8251 OPT_mavx512pf, OPT_mavx512er cases.
8252 * config/i386/constraints.md (v): New constraint.
8253 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8254 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8255 (bit_AVX512CD): New.
8256 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8257 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8258 * config/i386/i386-c.c (ix86_target_macros_internal):
8259 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8260 __AVX512PF__.
8261 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8262 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8263 * config/i386/i386.c (regclass_map, dbx_register_map)
8264 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8265 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8266 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8267 -mavx512pf options.
8268 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8269 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8270 -mavx512pf options. Fix formatting.
8271 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8272 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8273 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8274 -mavx512cd, -mavx512pf options.
8275 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8276 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8277 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8278 ALL_SSE_REGS.
8279 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8280 (ix86_set_reg_reg_cost): Ditto.
8281 (x86_order_regs_for_local_alloc): Ditto.
8282 (MAX_VECT_LEN): Extend to 64-byte.
8283 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8284 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8285 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8286 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8287 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8288 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8289 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8290 (SSE_REG_MODE_P): Support new modes.
8291 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8292 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8293 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8294 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8295 (REG_CLASS_CONTENTS): Add new registers.
8296 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8297 (EXT_REX_SSE_REGNO_P): New.
8298 (HI_REGISTER_NAMES): Add new registers.
8299 * config/i386/i386.md: Define constants for new registers.
8300 (mode): Add new 512-bit modes.
8301 (prefix): Support evex prefix.
8302 (isa): Support avx512f, noavx512f, fma_avx512f.
8303 (ssemodesuffix): Add new 512-bit modes.
8304 (movxi): New.
8305 (*movxi_internal_avx512f): Ditto.
8306 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8307 Support MODE_XI.
8308 (*movsi_internal): Likewise.
8309 (*movdf_internal): Likewise.
8310 (*movsf_internal): Likewise.
8311 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8312 (<code><mode>3): Likewise.
5339fc0c
UB
8313 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8314 New.
3f97cb0b
AI
8315 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8316 with the new constraint "v".
8317 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8318 modes.
8319 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8320 with the new constraint "v".
8321 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8322 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8323 (*<plusminus_insn><mode>3): Likewise.
8324 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8325 (*mul<mode>3): Likewise.
8326 (<sse>_vmmul<mode>3): Likewise.
8327 (<sse>_div<mode>3): Likewise.
8328 (<sse>_vmdiv<mode>3): Likewise.
8329 (<sse>_sqrt<mode>2): Likewise.
8330 (<sse>_vmsqrt<mode>2): Likewise.
8331 (*<code><mode>3_finite): Likewise.
8332 (*<code><mode>3) <smaxmin>: Likewise.
8333 (<sse>_vm<code><mode>3): Likewise.
8334 (*<code><mode>3) <any_logic>: Likewise.
8335 (*fma_fmadd_<mode>): Likewise.
8336 (*fma_fmsub_<mode>): Likewise.
8337 (*fma_fnmadd_<mode>): Likewise.
8338 (*fma_fnmsub_<mode>): Likewise.
8339 (*fma_fmaddsub_<mode>): Likewise.
8340 (*fma_fmsubadd_<mode>): Likewise.
8341 (*fmai_fmadd_<mode>): Likewise.
8342 (*fmai_fmsub_<mode>): Likewise.
8343 (*fmai_fnmadd_<mode>): Likewise.
8344 (*fmai_fnmsub_<mode>): Likewise.
8345 (sse_cvtsi2ss): Likewise.
8346 (sse_cvtsi2ssq): Likewise.
8347 (sse_cvtss2si): Likewise.
8348 (sse_cvtss2si_2): Likewise.
8349 (sse_cvtss2siq): Likewise.
8350 (sse_cvtss2siq_2): Likewise.
8351 (sse_cvttss2si): Likewise.
8352 (sse_cvtss2siq_2): Likewise.
8353 (float<sseintvecmodelower><mode>2): Likewise.
8354 (sse2_cvtsd2si_2): Likewise.
8355 (sse2_cvtsd2siq_2): Likewise.
8356 (*<plusminus_insn><mode>3): Likewise.
8357 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8358 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8359 (ashr<mode>3): Likewise.
8360 (<shift_insn><mode>3): Likewise.
8361 (avx2_<code><mode>3): Likewise.
8362 (*avx2_<code><mode>3): Likewise.
8363 (*andnot<mode>3): Likewise.
8364 (*<code><mode>3) <any_logic>: Likewise.
8365 (abs<mode>2): Likewise.
8366 (avx2_permvar<mode>): Likewise.
8367 (avx2_perm<mode>_1): Likewise.
8368 (*avx_vpermilp<mode>): Likewise.
8369 (avx_vpermilvar<mode>3): Likewise.
8370 (avx2_ashrv<mode>): Likewise.
8371 (avx2_<shift_insn>v<mode>): Likewise.
8372 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8373 -mavx512cd.
8374 * doc/rtl.texi: Document XImode.
8375
dd5e8423
JL
83762013-08-21 Jeff Law <law@redhat.com>
8377
b9ebee5d
JL
8378 * tree-flow.h (register_jump_thread): Pass vector of edges
8379 instead of each important edge.
8380 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8381 thread path into a vector and pass that to register_jump_thread.
8382 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8383 passed in edge vector to the current 3-edge form.
8384
dd5e8423
JL
8385 Revert:
8386 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8387
9bb6628e 8388 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8389 delete_unmarked_insns removed anything.
8390
445dc8df
JR
83912013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8392
8393 * reload.h (struct reg_equivs): Rename to ..
8394 (struct reg_equivs_s): .. this.
8395
e0df53dd
ML
83962013-08-20 Martin Liska <marxin.liska@gmail.com>
8397
8398 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8399
e7d1d3eb
RO
84002013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8401
5339fc0c 8402 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8403
5562e26e
JL
84042013-08-21 Jeff Law <law@redhat.com>
8405
8406 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8407 simplify assignments too. If the RHS collapses to a singleton
8408 range, then return the value for the range.
8409
c7ecdec6
KY
84102013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8411
7a5911d3
UB
8412 * config/i386/sse.md (V16): Rename to...
8413 (VMOVE): this.
8414 (mov<mode>): Update iterator name.
8415 (*mov<mode>_internal): Ditto.
8416 (push<mode>1): Ditto.
8417 (movmisalign<mode>): Ditto.
c7ecdec6 8418
bfa3b50a
JH
84192013-08-20 Jan Hubicka <jh@suse.cz>
8420
8421 PR bootstrap/58186
8422 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8423 entry for direct edges.
8424 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8425
6cd4d135
DM
84262013-08-20 David Malcolm <dmalcolm@redhat.com>
8427
8428 Revert my last two changes, r201865 and r201864:
8429
8430 Revert r201865:
8431 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8432
8433 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8434 instances can own GC refs.
8435
8436 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8437 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8438 (gcc::context::gt_pch_nx): Likewise.
8439 (gcc::context::gt_pch_nx): Likewise.
8440 * ggc.h (gt_ggc_mx <T>): New.
8441 (gt_pch_nx_with_op <T>): New.
8442 (gt_pch_nx <T>): New.
8443 * passes.c (opt_pass::gt_ggc_mx): New.
8444 (opt_pass::gt_pch_nx): New.
8445 (opt_pass::gt_pch_nx_with_op): New.
8446 (pass_manager::gt_ggc_mx): New.
8447 (pass_manager::gt_pch_nx): New.
8448 (pass_manager::gt_pch_nx_with_op): New.
8449 (pass_manager::operator new): Use
8450 ggc_internal_cleared_alloc_stat rather than xcalloc.
8451 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8452 (pass_manager::gt_ggc_mx): New.
8453 (pass_manager::gt_pch_nx): New.
8454 (pass_manager::gt_pch_nx_with_op): New.
8455 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8456 (opt_pass::operator new): New.
8457 (opt_pass::gt_ggc_mx): New.
8458 (opt_pass::gt_pch_nx): New.
8459 (opt_pass::gt_pch_nx_with_op): New.
8460
8461 Revert r201864:
8462 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8463
8464 * Makefile.in (GTFILES): Add context.h.
8465 * context.c (gcc::context::operator new): New.
8466 (gcc::context::gt_ggc_mx): New.
8467 (gcc::context::gt_pch_nx): New.
8468 (gcc::context::gt_pch_nx): New.
8469 * context.h (gcc::context): Add GTY((user)) marking.
8470 (gcc::context::operator new): New.
8471 (gcc::context::gt_ggc_mx): New.
8472 (gcc::context::gt_pch_nx): New.
8473 (gcc::context::gt_pch_nx): New.
8474 (g): Add GTY marking.
8475 (gt_ggc_mx (gcc::context *)): New.
8476 (gt_pch_nx (gcc::context *)): New.
8477 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8478 void *cookie)): New.
8479 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8480
a046136a
AM
84812013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8482
8483 * dce.c (fini_dce): Call df_analyze again just in case
8484 delete_unmarked_insns removed anything.
8485
67598720
TJ
84862013-08-20 Teresa Johnson <tejohnson@google.com>
8487
8488 PR rtl-optimizations/57451
8489 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8490 from crossing split section boundaries.
8491
f8693faf
MGD
84922013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8493
8494 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8495 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8496 with MULTLIB_DEFAULTS.
8497
7d0b9a9c
NC
84982013-08-20 Nick Clifton <nickc@redhat.com>
8499
8500 * target.def (narrow_volatile_bitfield): Note that the default
8501 value is false, not !TARGET_STRICT_ALIGN.
8502 * doc/tm.texi: Regenerate.
8503
8edb8dc8
PC
85042013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8505
8506 Fix LIB_SPEC for systems without libpthread.
8507
8508 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8509 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8510 for Android.
8511 * config/i386/linux-common.h: Likewise.
8512 * config/mips/linux-common.h: Likewise.
8513
12211b99 85142013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8515
8516 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8517 checks.
8518
e42c64cb
DM
85192013-08-20 David Malcolm <dmalcolm@redhat.com>
8520
8521 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8522 instances can own GC refs.
8523
8524 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8525 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8526 (gcc::context::gt_pch_nx): Likewise.
8527 (gcc::context::gt_pch_nx): Likewise.
8528 * ggc.h (gt_ggc_mx <T>): New.
8529 (gt_pch_nx_with_op <T>): New.
8530 (gt_pch_nx <T>): New.
8531 * passes.c (opt_pass::gt_ggc_mx): New.
8532 (opt_pass::gt_pch_nx): New.
8533 (opt_pass::gt_pch_nx_with_op): New.
8534 (pass_manager::gt_ggc_mx): New.
8535 (pass_manager::gt_pch_nx): New.
8536 (pass_manager::gt_pch_nx_with_op): New.
8537 (pass_manager::operator new): Use
8538 ggc_internal_cleared_alloc_stat rather than xcalloc.
8539 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8540 (pass_manager::gt_ggc_mx): New.
8541 (pass_manager::gt_pch_nx): New.
8542 (pass_manager::gt_pch_nx_with_op): New.
8543 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8544 (opt_pass::operator new): New.
8545 (opt_pass::gt_ggc_mx): New.
8546 (opt_pass::gt_pch_nx): New.
8547 (opt_pass::gt_pch_nx_with_op): New.
8548
910c02a0
DM
85492013-08-20 David Malcolm <dmalcolm@redhat.com>
8550
8551 * Makefile.in (GTFILES): Add context.h.
8552 * context.c (gcc::context::operator new): New.
8553 (gcc::context::gt_ggc_mx): New.
8554 (gcc::context::gt_pch_nx): New.
8555 (gcc::context::gt_pch_nx): New.
8556 * context.h (gcc::context): Add GTY((user)) marking.
8557 (gcc::context::operator new): New.
8558 (gcc::context::gt_ggc_mx): New.
8559 (gcc::context::gt_pch_nx): New.
8560 (gcc::context::gt_pch_nx): New.
8561 (g): Add GTY marking.
8562 (gt_ggc_mx (gcc::context *)): New.
8563 (gt_pch_nx (gcc::context *)): New.
8564 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8565 void *cookie)): New.
8566 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8567
af4b4236
AM
85682013-08-20 Alan Modra <amodra@gmail.com>
8569
8570 PR target/57865
8571 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8572 (rs6000_emit_epilogue): Likewise.
8573
12211b99 85742013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8575
8576 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8577
e2323f5b
PB
85782013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8579 Jakub Jelinek <jakub@redhat.com>
8580
8581 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8582 (BUILT_IN_FABSD64): Likewise.
8583 (BUILT_IN_FABSD128): Likewise.
8584 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8585 (fold_builtin_1): Likewise.
5339fc0c
UB
8586 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8587 destination and source operands.
e2323f5b
PB
8588 (*abstd2_fpr): Likewise.
8589 (*nabstd2_fpr): Likewise.
8590
cfbf3ee8
RS
85912013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8592
8593 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8594 JUMP_P and INSN_P.
8595
d3136aeb
AH
85962013-08-19 Aldy Hernandez <aldyh@redhat.com>
8597
8598 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8599 incomplete.
8600
d33d9e47
AI
86012013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8602
8603 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8604 * builtins.c (default_libc_has_function): New.
8605 (gnu_libc_has_function): Ditto.
8606 (no_c99_libc_has_function): Ditto.
8607 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8608 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8609 (fold_builtin_sincos): Likewise.
8610 (fold_builtin_cexp): Likewise.
8611 * builtins.def (DEF_C94_BUILTIN): Likewise.
8612 (DEF_C99_BUILTIN): Likewise.
8613 (DEF_C99_C90RES_BUILTIN): Likewise.
8614 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8615 definitions to using this define.
8616 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8617 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8618 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8619 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8620 * config/darwin.h: Ditto.
8621 * config/elfos.h: Ditto.
8622 * config/freebsd.h: Ditto.
8623 * config/i386/cygming.h: Ditto.
8624 * config/i386/djgpp.h: Ditto.
8625 * config/i386/i386-interix.h: Ditto.
8626 * config/microblaze/microblaze.h: Ditto.
8627 * config/mmix/mmix.h: Ditto.
8628 * config/gnu-user.h: Ditto.
8629 * config/ia64/hpux.h: Ditto.
8630 * config/pa/pa-hpux.h: Ditto.
8631 * config/pdp11/pdp11.h: Ditto.
8632 * config/picochip/picochip.h: Ditto.
8633 * config/linux.h: Ditto.
8634 * config/netbsd.h: Ditto.
8635 * config/openbsd.h: Ditto.
8636 * config/rs6000/aix43.h: Ditto.
8637 * config/rs6000/aix51.h: Ditto.
8638 * config/rs6000/aix52.h: Ditto.
8639 * config/rs6000/aix53.h: Ditto.
8640 * config/rs6000/aix61.h: Ditto.
8641 * config/rs6000/darwin.h: Ditto.
8642 * config/rs6000/linux.h: Ditto.
8643 * config/rs6000/linux64.h: Ditto.
8644 * config/s390/tpf.h: Ditto.
8645 * config/sol2-10.h: Ditto.
8646 * config/sol2.h: Ditto.
8647 * config/vms/vms.h: Ditto.
8648 * config/vxworks.h: Ditto.
8649 * config/linux-android.c (linux_android_libc_has_function):
8650 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8651 * config/linux-protos.h (linux_android_libc_has_function):
8652 New declaration.
8653 * config/i386/i386.c (ix86_libc_has_function): New.
8654 * config/i386/i386-protos.h
8655 (ix86_libc_has_function): New declaration.
8656 * config/i386/i386.md
8657 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8658 ("isinf<mode>2): Likewise.
8659 * convert.c (convert_to_integer): Using new target hook
8660 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8661 TARGET_C99_FUNCTIONS.
8662 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8663 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8664 * coretypes.h (function_class): New enum for different
8665 classes of functions.
8666 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8667 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8668 (TARGET_HAS_SINCOS): Likewise.
8669 (TARGET_LIBC_HAS_FUNCTION): New.
8670 * doc/tm.texi: Regenerated.
8671 * targhooks.h (default_libc_has_function): New declaration.
8672 (no_c99_libc_has_function): Ditto.
8673 (gnu_libc_has_function): Ditto.
8674 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8675 and TARGET_HAS_SINCOS.
8676
eefe9a99
JH
86772013-08-18 Jan Hubicka <jh@suse.cz>
8678
8679 * Makeifle-in (ipa-devirt.o): New.
8680 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8681 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8682 (analyze_functions): Look into possible targets of polymorphic call.
8683 * dumpfile.c (dump_files): Add type-inheritance dump.
8684 * dumpfile.h (TDI_inheritance): New.
8685 * ipa-devirt.c: New file.
8686 * ipa-utils.h (odr_type_d): Forward declare.
8687 (odr_type): New type.
8688 (build_type_inheritance_graph): Declare.
8689 (possible_polymorphic_call_targets): Declare and introduce inline
8690 variant when only edge is pased.
8691 (dump_possible_polymorphic_call_targets): Likewise.
8692 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8693 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8694 (types_same_for_odr): ... here.
8695 * tree.h (type_in_anonymous_namespace_p): Declare.
8696
29b89442
JJ
86972013-08-18 Jakub Jelinek <jakub@redhat.com>
8698
8699 PR tree-optimization/58006
8700 * tree-parloops.c (take_address_of): Don't ICE if get_name
8701 returns NULL.
8702 (eliminate_local_variables_stmt): Remove clobber stmts.
8703
4f219961
EB
87042013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8705
8706 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8707 error message is issued for an alias to undefined symbol.
8708
1d5755ef
JH
87092013-08-18 Jan Hubicka <jh@suse.cz>
8710
8711 * cgraph.c (cgraph_create_indirect_edge): Discover
8712 polymorphic calls and record basic info into indirect_info.
8713 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8714 devirtualization, ignore objc function calls.
8715 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8716 call with no parm index info.
8717 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8718 * tree.c (virtual_method_call_p): New function.
8719 * tree.h (virtual_method_call_p): Declare.
8720
5945bebf
JH
87212013-08-16 Jan Hubicka <jh@suse.cz>
8722
8723 PR middle-end/58179
8724 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8725
47fa5d23
DE
87262013-08-16 David Edelsohn <dje.gcc@gmail.com>
8727
8728 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8729 attribute.
8730
c74f54a0
DM
87312013-08-16 David Malcolm <dmalcolm@redhat.com>
8732
8733 * gengtype.c (type_for_name): Add special-case support for
8734 locating types within the "gcc::" namespace.
8735 (open_base_files): Emit a "using namespace gcc" directive.
8736
f758f299
MM
87372013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8738
8739 PR target/58160
8740 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8741 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8742
8743 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8744 array instead of each individual operand as a separate argument.
8745 (emit_fusion_gpr_load): Likewise.
8746 (expand_fusion_gpr_load): Add new function declaration.
8747
8748 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8749 signature to have the operands passed as an array, instead of as
8750 separate arguments. Allow ZERO_EXTEND to be in the memory
8751 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8752 depend on the register live/dead flags when peepholes are run.
8753 (expand_fusion_gpr_load): New function to be called from the
8754 peephole2 pass, to change the register that addis sets to be the
8755 target register.
8756 (emit_fusion_gpr_load): Change the calling signature to have the
8757 operands passed as an array, instead of as separate arguments.
8758 Allow ZERO_EXTEND to be in the memory address, and also
8759 SIGN_EXTEND if -mpower8-fusion-sign.
8760
8761 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8762 unspec enumeration.
8763 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8764 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 8765 depend on the register live/dead state when the peephole pass is done.
f758f299 8766
158f4e4f
DM
87672013-08-16 David Malcolm <dmalcolm@redhat.com>
8768
8769 * gengtype.c (create_user_defined_type): Ensure that the kind
8770 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8771 declaration is seen before the GTY((user)) marking.
8772
22f8cea5
BE
87732013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8774
8775 PR target/58105
8776 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8777
c49bdb2e
JH
87782013-08-16 Jan Hubicka <jh@suse.cz>
8779
8780 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8781 arugment expected_type.
8782 (gimple_fold_call): Use it.
8783 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8784 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 8785 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
8786 (try_make_edge_direct_virtual_call): Likewise.
8787 * tree.c (obj_type_ref_class): New.
8788 * tree.h (obj_type_ref_class): Use it.
8789
4042dca9
GDR
87902013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8791
8792 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8793 (rtl_slim_pp): Likewise.
8794 (init_rtl_slim_pretty_print): Likewise.
8795 (dump_value_slim): Don't call it. Use local pretty printer.
8796 (dump_insn_slim): Likewise.
8797 (dump_rtl_slim): Likewise.
8798 (str_pattern_slim): Likewise.
8799 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8800 Simplify.
8801
7a460594
JJ
88022013-08-16 Jakub Jelinek <jakub@redhat.com>
8803
639dc669
JJ
8804 PR tree-optimization/58164
8805 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8806 walk gimple_goto_dest of GIMPLE_GOTO.
8807
7a460594
JJ
8808 PR tree-optimization/58165
8809 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8810 bi_call must be the last stmt in a bb, don't split_block, instead
8811 use fallthru edge from it and give up if there is none.
8812 Release conds vector when returning early.
8813
e3c02cc7
XDL
88142013-08-14 Xinliang David Li <davidxl@google.com>
8815
8816 * config/i386/i386.c (ix86_option_override_internal):
8817 Remove unused variable and field.
8818
6469da2c
BS
88192013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8820
8821 PR target/57949
22f8cea5 8822 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
8823 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8824 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8825 and Linux, correct BLKmode alignment when 128-bit alignment is
8826 required and compatibility flag is not set.
22f8cea5
BE
8827 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8828 for zero-size arguments when compatibility flag is not set.
6469da2c 8829
4ca890e2
JJ
88302013-08-14 Jakub Jelinek <jakub@redhat.com>
8831
8832 PR tree-optimization/58145
8833 * tree-sra.c (build_ref_for_offset): If prev_base has
8834 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8835
daec1759 88362013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 8837
daec1759 8838 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 8839 Fix uninitialized variable error.
daec1759 8840
3ad20bd4
XDL
88412013-08-14 Xinliang David Li <davidxl@google.com>
8842
8843 * config/i386/i386.opt: Define two new options.
8844 * config/i386/x86-tune.def: Add arch selector field in macros.
8845 * config/i386/i386.h: Adjust macro definition.
8846 * config/i386/i386.c (ix86_option_override_internal):
8847 Refactor the code.
8848 (parse_mtune_ctrl_str): New function.
8849 (set_ix86_tune_features): New function.
8850 (ix86_function_specific_restore): Call the new helper function.
8851
e839e2a9
AB
88522013-08-14 Andrey Belevantsev <abel@ispras.ru>
8853
8854 PR rtl-optimization/57662
8855 * sel-sched.c (code_motion_process_successors): When the current insn
8856 is removed after the recursive traversal, break from the loop.
8857 Add comments and debug printouts.
8858
27ed665f
JJ
88592013-08-14 Jakub Jelinek <jakub@redhat.com>
8860 Alexandre Oliva <aoliva@redhat.com>
8861
8862 PR target/58067
8863 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
8864 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
8865 there also UNSPEC_PLTOFF.
8866
61c1a609
MP
88672013-08-14 Marek Polacek <polacek@redhat.com>
8868
8869 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
8870 NUM_CONDITIONS bit positions.
8871
0e901c67
CC
88722013-08-13 Cary Coutant <ccoutant@google.com>
8873
8874 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
8875 (attr_checksum): Hash vector contents instead of pointer.
8876 (attr_checksum_ordered): Likewise.
8877
061eff6d
UB
88782013-08-13 Uros Bizjak <ubizjak@gmail.com>
8879
8880 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
8881 when Pmode != word_mode. Add length_address attribute.
8882 (sse3_monitor_<mode>): Merge from sse3_monitor and
8883 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
8884 Pmode != word_mode. Update insn length attribute.
8885 * config/i386/i386.c (ix86_option_override_internal): Update
8886 ix86_gen_monitor selection for merged sse3_monitor insn.
8887
8ec9249b
JB
88882013-08-13 Julian Brown <julian@codesourcery.com>
8889
8890 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8891 perform invalid legitimization on greater-than-word-size modes for
8892 TARGET_E500_DOUBLE.
8893
761a8eb7
VM
88942013-08-13 Vladimir Makarov <vmakarov@redhat.com>
8895
8896 * ira.c (setup_class_translate_array): Use aclass instead of cl
8897 for classes not fully covered by allocno classes.
8898
99c2bd54
JJ
88992013-08-13 Jakub Jelinek <jakub@redhat.com>
8900
4029a5e0
JJ
8901 PR tree-optimization/57661
8902 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
8903 * tree-inline.c (tree_function_versioning): Initialize it.
8904 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
8905 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
8906 that is not being copied.
8907
99c2bd54
JJ
8908 PR sanitizer/56417
8909 * asan.c (instrument_strlen_call): Fix typo in comment.
8910 Use char * type even for the lhs of POINTER_PLUS_EXPR.
8911
b5f8f063
SE
89122013-08-13 Steve Ellcey <sellcey@mips.com>
8913
8914 * config/mips/mips.md (prefetch): Use lw instead of ld on
8915 loongson in 32bit mode.
8916
4de80584
NC
89172013-08-13 Nick Clifton <nickc@redhat.com>
8918
8919 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
8920
09ce3660
JH
89212013-08-13 Jan Hubicka <jh@suse.cz>
8922
8923 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
8924 introduced edge; fix typo in sanity check.
8925 (cgraph_resolve_speculation): Export; improve diagnostic.
8926 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
8927 speculation at type mismatch.
8928 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
8929 (cgraph_resolve_speculation): Declare.
8930 (symtab_can_be_discarded): New function.
8931 * value-prof.c (gimple_ic_transform): Remove actual transform code.
8932 * ipa-inline-transform.c (speculation_removed): New global var.
8933 (clone_inlined_nodes): See if speculation can be removed.
8934 (inline_call): If speculations was removed, we growths may not match.
8935 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
8936 (speculation_useful_p): New function.
8937 (resolve_noninline_speculation): New function.
8938 (inline_small_functions): Resolve useless speculations.
8939 * ipa-inline.h (speculation_useful_p): Declare
8940 * ipa.c (can_replace_by_local_alias): Simplify.
8941 (ipa_profile): Produce speculative calls in non-lto, too;
8942 add simple cost model; produce local aliases.
8943
f971dc24
DM
89442013-08-13 David Malcolm <dmalcolm@redhat.com>
8945
8946 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 8947 PASS_MANAGER_H.
f971dc24 8948
2e507b9a
PC
89492013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
8950
8951 * config/i386/i386.c (ix86_function_versions): Use error + inform.
8952
c97fd4b8
UB
89532013-08-12 Uros Bizjak <ubizjak@gmail.com>
8954
8955 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
8956 iterator instead of X87MODEF.
8957
89582013-08-12 Perez Read <netfirewall@gmail.com>
8959
8960 PR target/58132
8961 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
8962 operand 0 for intel asm alternative.
8963 (*movabs<mode>_2): Ditto for operand 1.
8964
f4f4204c
JG
89652013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
8966
8967 * config/aarch64/arm_none.h
8968 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
8969
133b1a8e
NC
89702013-08-12 Nick Clifton <nickc@redhat.com>
8971
8972 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
8973
15dd8b3a
YR
89742013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
8975
8976 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
8977 expand for QI/HImode operand to produce more effictive code for
8978 unsigned char(short) --> float(double) conversion.
8979
94109a6a
AM
89802013-08-12 Alexander Monakov <amonakov@ispras.ru>
8981
8982 * doc/invoke.texi: Mention that -ftls-model does not force the final
8983 model.
8984
4e115102
MP
89852013-08-12 Marek Polacek <polacek@redhat.com>
8986 Marc Glisse <marc.glisse@inria.fr>
8987
8988 PR tree-optimization/57980
8989 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
8990 when creating -1 constant.
8991
748d71f3
JH
89922013-08-10 Jan Hubicka <jh@suse.cz>
8993
1f97e193 8994 Workaround binutils PR14342.
748d71f3
JH
8995 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
8996 (gimple_init_edge_profiler): Likewise.
8997 (gimple_gen_ic_func_profiler): Likewise.
8998
5979aa54
JH
89992013-08-09 Jan Hubicka <jh@suse.cz>
9000
9001 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
9002
ad83025e
XDL
90032013-08-09 Xinliang David Li <davidxl@google.com>
9004
9005 * config/i386/stringop.def: New file.
9006 * config/i386/stringop.opt: New file.
9007 * config/i386/i386-opts.h: Include stringopt.def.
9008 * config/i386/i386.opt: Include stringopt.opt.
9009 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 9010 Override default size based stringop inline strategies with options.
ad83025e
XDL
9011 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
9012 New function.
9013
e59df5fd
JH
90142013-08-09 Jan Hubicka <jh@suse.cz>
9015
c97fd4b8 9016 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 9017
634ab819
JH
90182013-08-09 Jan Hubicka <jh@suse.cz>
9019
9020 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
9021 CGRAPH_FREQ_MAX.
9022 (dump_cgraph_node): Dump profile-id.
9023 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
9024 and common_target_probability.
9025 * lto-cgraph.c (lto_output_edge): Stream common targets.
9026 (lto_output_node): Stream profile ids.
9027 (input_node): Stream profile ids.
9028 (input_edge): Stream common targets.
9029 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
9030 * ipa.c: Include value-prof.h
9031 (ipa_profile_generate_summary): Turn indirect call statement histograms
9032 into common targets.
9033 (ipa_profile): Turn common targets into speculative edges.
9034
2fa3d31b
JH
90352013-08-09 Jan Hubicka <jh@suse.cz>
9036
9037 * cgraph.h (cgraph_node): Add profile_id.
9038 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 9039 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
9040 (del_node_map): Update.
9041 (find_func_by_funcdef_no): Replace by ...
9042 (find_func_by_profile_id): ... this one.
9043 (gimple_ic_transform): Do not remove useful histograms when
9044 speculation is not done; dump info when indirect call removal
9045 can happen at LTO.
9046 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
9047 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
9048 (__gcov_indirect_call_profiler_v2): .. this one.
9049 * profile.h (init_node_map): Update.
9050 * coverage.c (coverage_compute_profile_id): New function.
9051 * coverage.h (coverage_compute_profile_id): Declare.
9052 * tree-profile.c (init_ic_make_global_vars): Make
9053 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
9054 (gimple_init_edge_profiler): Update prototype of
9055 __gcov_indirect_call_profiler.
9056 (gimple_gen_ic_func_profiler): Simplify.
9057 (tree_profiling): Use init_node_map
9058
042ae7d2
JH
90592013-08-09 Jan Hubicka <jh@suse.cz>
9060
c97fd4b8
UB
9061 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
9062 non-speculative refs.
042ae7d2
JH
9063 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
9064 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
9065 (cgraph_set_call_stmt): Likewise.
9066 (cgraph_create_edge_1): Fix release checking compilatoin;
9067 clear lto_stmt_uid.
9068 (cgraph_free_edge): Free indirect info.
9069 (cgraph_turn_edge_to_speculative): New function.
9070 (cgraph_speculative_call_info): New function.
9071 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 9072 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
9073 (dump_cgraph_node): Dump speculation.
9074 (verify_edge_count_and_frequency): Accept speculative edges.
9075 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
9076 (verify_cgraph_node): Handle speculation.
9077 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9078 (cgraph_set_call_stmt): Update prototype.
9079 (cgraph_make_edge_direct): Update prototype.
9080 (cgraph_speculative_call_info): Declare.
9081 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9082 to change; update call of ipa_find_references.
9083 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9084 lto_stmt_uid and speculative flags.
9085 (ipa_dump_references): Dump speculation.
9086 (ipa_clone_references): Clone speculative flag.
9087 (ipa_clone_referring): Likewise.
9088 (ipa_clone_ref): New function.
9089 (ipa_find_reference): Look into lto_stmt_uids
9090 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9091 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9092 (ipa_find_reference): Update declaration.
9093 (ipa_clone_ref): Declare.
9094 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9095 stream speculative flag.
9096 (lto_output_ref): Stream statements uids and speculation.
9097 (input_ref): Likewise.
9098 (input_edge): Stream speuclation.
9099 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9100 (cgraph_set_call_stmt_including_clones): Handle speculation.
9101 * ipa-inline.c (heap_edge_removal_hook): New function.
9102 (inline_small_functions): Register it.
9103 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9104 also initialize refs.
9105 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9106 edge to change.
9107 (try_make_edge_direct_simple_call): Likewise.
9108 (try_make_edge_direct_simple_call): Likewise.
9109 (update_indirect_edges_after_inlining): Likewise.
9110 (remove_described_reference): Look proper lto_stmt_uid.
9111 (propagate_controlled_uses): Likewise.
9112 (propagate_controlled_uses): Liekwise.
9113 * tree-inline.c (copy_bb): Copy speculative edges.
9114 (redirect_all_calls): New function.
c97fd4b8
UB
9115 (copy_cfg_body): Do redirection after loop info is updated.
9116 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9117
aa1e10cc
JH
91182013-08-09 Jan Hubicka <jh@suse.cz>
9119
9120 * lto-streamer-out.c (output_function): Renumber PHIs.
9121 * lto-streamer-in.c (input_function): Likewise.
9122
66adb8eb
JG
91232013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9124
9125 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9126 (get_lane_unsigned): Likewise.
9127 (dup_lane_scalar): Likewise.
9128 (get_lane): enable for VALL.
9129 * config/aarch64/aarch64-simd.md
9130 (aarch64_dup_lane_scalar<mode>): Remove.
9131 (aarch64_get_lane_signed<mode>): Likewise.
9132 (aarch64_get_lane_unsigned<mode>): Likewise.
9133 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9134 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9135 (aarch64_get_lane<mode>): Enable for all vector modes.
9136 (aarch64_get_lanedi): Remove misleading constraints.
9137 * config/aarch64/arm_neon.h
9138 (__aarch64_vget_lane_any): Define.
9139 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9140 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9141 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9142 * config/aarch64/iterators.md (VDQQH): New.
9143 (VDQQHS): Likewise.
9144 (vwcore): Likewise.
9145
1f65ae7a
EB
91462013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9147
9148 * configure.ac: Add GAS check for LEON instructions on SPARC.
9149 * configure: Regenerate.
9150 * config.in: Likewise.
9151 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9152 sparc*-*-* block.
9153 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9154 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9155 for LEON or LEON3.
9156 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9157 (AS_LEON_FLAG): New macro.
9158 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9159 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9160 Deal with LEON and LEON3 for the memory model.
23a6cb78 9161 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9162 (atomic_compare_and_swap<mode>_1): Likewise.
9163 (*atomic_compare_and_swap<mode>_1): Likewise.
9164
ff522f7f
ZC
91652013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9166
9167 * config/arm/neon.md (vcond): Fix floating-point vector
9168 comparisons against 0.
9169
cb1cca12
VM
91702013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9171
9172 * lra-constraints.c (emit_spill_move): Remove assert.
9173 (process_alt_operands): Add more debugging
9174 output. Increase reject for spilling into memory. Decrease
9175 reject for reloading scratch.
9176 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9177
a3719e31
SE
91782013-08-08 Steve Ellcey <sellcey@mips.com>
9179
9180 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9181 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9182 micromips incompatible. Add nan2008.
9183 (MULTILIB_DIRNAMES): Add nan2008.
9184 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9185 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9186 and micromips incompatible. Add nan2008.
9187 (MULTILIB_DIRNAMES): Add nan2008.
9188 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9189
f40423e2
RS
91902013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9191
9192 PR rtl-optimization/58079
9193 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9194 simplify_comparison has widened a comparison with an integer.
9195
869b9125
KT
91962013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9197
9198 * config/arm/neon.md (movmisalign<mode>): Disable when we
9199 don't allow unaligned accesses.
9200 (*movmisalign<mode>_neon_store): Likewise.
9201 (*movmisalign<mode>_neon_load): Likewise.
9202 (*movmisalign<mode>_neon_store): Likewise.
9203 (*movmisalign<mode>_neon_load): Likewise.
9204
71cafea9
JH
92052013-08-08 Jan Hubicka <jh@suse.cz>
9206
9207 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9208 (make_pass_rebuild_cgraph_edges): Also clear references.
9209 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9210 * ipa-inline-transform.c (inline_transform): Remove all references
9211 after inlining.
c97fd4b8
UB
9212 * cgraphunit.c (expand_function): Remove all references after
9213 expansion.
71cafea9
JH
9214 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9215 (ipa_find_reference): Rewrite to iterator.
9216 (remove_stmt_references): Likewise.
9217 (ipa_clear_stmts_in_references): New function.
9218 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9219 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9220 clear references.
71cafea9
JH
9221 * ipa-split.c (split_function): Remove references in split function.
9222
27d2e612
RE
92232013-08-08 Richard Earnshaw <rearnsha@arm.com>
9224
9225 PR target/57431
1f65ae7a 9226 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9227 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9228
5efc661c
RE
92292013-08-08 Richard Earnshaw <rearnsha@arm.com>
9230
9231 PR target/56979
1f65ae7a 9232 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9233 suggested mode for the assignment isn't compatible with the
9234 registers required.
9235
f276d31d
BE
92362013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9237
9238 PR target/58065
9239 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9240
4b8bc035
XDL
92412013-08-07 Xinliang David Li <davidxl@google.com>
9242
9243 * config/i386/i386.opt: New option -mtune-ctrl=.
9244 * config/i386/x86-tune.def: New file.
9245 * config/i386/i386.h: include x86-tune.def.
9246 * config/i386/i386.c (ix86_option_override_internal):
9247 Parsing -mtune-ctrl= option and set tune features.
9248
12211b99 92492013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9250
9251 PR other/12081
03b0ee0a 9252 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9253 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9254 to gen_2arg_fn_t.
9255
5cf6635b
EB
92562013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9257
9258 * rtl.h (update_alignments): Declare.
9259 * final.c (grow_label_align): New function extracted from...
9260 (shorten_branches): ...here. Call it.
9261 (update_alignments): New function.
9262 * reorg.c (sibling_labels): New variable.
9263 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9264 the new label along with it onto the sibling_labels vector.
9265 (fill_simple_delay_slots): Adjust call to get_label_before.
9266 (fill_slots_from_thread): Likewise.
9267 (relax_delay_slots): Likewise.
9268 (make_return_insns): Likewise.
9269 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9270
3c8ca1ab
EB
92712013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9272
9273 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9274 document its semantics.
9275 (diagnostic_report_diagnostic): Adjust accordingly.
9276
5ee5b32c
DM
92772013-08-07 David Malcolm <dmalcolm@redhat.com>
9278
03b0ee0a 9279 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9280 (sparc_option_override): ...and port to new C++ pass API.
9281 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9282
abd566fa
PB
92832013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9284
9285 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9286
2077db1b
CT
92872013-08-06 Caroline Tice <cmtice@google.com>
9288
9289 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9290 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9291 * tree-pass.h: Add pass_vtable_verify.
9292 * varasm.c (assemble_variable): Add code to properly set the comdat
9293 section and name for the .vtable_map_vars section.
9294 (assemble_vtyv_preinit_initializer): New function.
9295 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9296 LINK_ONCE flag.
9297 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9298 * vtable-verify.c: New file.
9299 * vtable-verify.h: New file.
9300 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9301 initialiation levels.
9302 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9303 * passes.def: Insert pass_vtable_verify.
9304 * aclocal.m4: Reorder includes.
9305 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9306 -fvtv-counts options.
9307 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9308 as appropriate, if -fvtable-verify=... is used.
9309 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9310 -fvtable-verify=... is used.
9311 * Makefile.in (OBJS): Add vtable-verify.o to list.
9312 (vtable-verify.o): Add new build rule.
9313 (GTFILES): Add vtable-verify.c to list.
9314 * common.opt (fvtable-verify=): New flag.
9315 (vtv_priority): Values for fvtable-verify= flag.
9316 (fvtv-counts): New flag.
9317 (fvtv-debug): New flag.
9318 * tree.h (save_vtable_map_decl): New extern function decl.
9319
03085d1c
DM
93202013-08-07 David Malcolm <dmalcolm@redhat.com>
9321
9322 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9323 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9324 (pass_data_rl78_devirt): ...new pass_data instance and...
9325 (make_pass_rl78_devirt): ...new function.
9326 (rl78_asm_file_start): Port pass registration to new C++ API.
9327
05555c4a
DM
93282013-08-07 David Malcolm <dmalcolm@redhat.com>
9329
9330 * coretypes.h (rtl_opt_pass): Add.
9331 (gcc::context): Add.
9332 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9333 (epiphany_init): Port to new C++ pass API.
9334 (epiphany_optimize_mode_switching): Likewise.
9335 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9336 (pass_manager::get_pass_mode_switching): New.
9337 (pass_manager::get_pass_peephole2): New.
9338 * mode-switching.c (pass_mode_switching): Add clone method.
9339 * recog.c (pass_peephole2): Add clone method.
9340 (pass_split_all_insns): Add clone method.
9341
c5a12e26
DM
93422013-08-06 David Malcolm <dmalcolm@redhat.com>
9343
03b0ee0a
UB
9344 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9345 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9346
a2e2a668
JH
93472013-08-06 Jan Hubicka <jh@suse.cz>
9348
9349 * cgraph.c (cgraph_get_body): New function based on lto.c
9350 implementation.
9351 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9352 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9353 LTO paths.
a2e2a668
JH
9354 * cgraphunit.c (expand_function): Get body prior expanding.
9355 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9356 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9357 really need.
a2e2a668
JH
9358 * passes.c (do_per_function_toporder): Get body.
9359 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9360 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9361
15682f24
MJ
93622013-08-06 Martin Jambor <mjambor@suse.cz>
9363
9364 PR fortran/57987
9365 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9366 is not re-finalized. Rename second parameter to no_collect.
9367
78f6dd68
MJ
93682013-08-06 Martin Jambor <mjambor@suse.cz>
9369
9370 PR middle-end/58041
9371 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9372 MEM_REF has proper alignment information.
9373
12211b99 93742013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9375
9376 PR other/12081
9377 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9378 class insn_gen_fn.
9379 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9380 rtx (*) (rtx, ...) with insn_gen_fn.
9381 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9382 insn_gen_fn::stored_funcptr. Add initializer braces.
9383
8ac69a6c
DM
93842013-08-05 David Malcolm <dmalcolm@redhat.com>
9385
9386 Rewrite how instances of passes are cloned to remove assumptions
9387 about their sizes (thus allowing pass subclasses to have
9388 additional data fields, albeit non-GC-managed ones at this point).
9389
9390 * passes.c (make_pass_instance): Now that passes have clone
9391 methods, rewrite this function to eliminate XNEW and memcpy
9392 calls that used hardcoded sizes. Since this function no longer
9393 creates pass instances, rename it to...
03b0ee0a
UB
9394 (add_pass_instance): ...this. Document the old way that passes were
9395 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9396 (next_pass_1): Add an initial_pass argument for use by
9397 add_pass_instance.
9398 (position_pass): When adding multiple instances of a pass, use
9399 the pass's clone method, rather than relying on the XNEW/memcpy
9400 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9401 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9402 the initial instance of the current pass within the pass manager.
8ac69a6c 9403
27a4cd48
DM
94042013-08-05 David Malcolm <dmalcolm@redhat.com>
9405
9406 This is the automated part of the conversion of passes from C
9407 structs to C++ classes.
9408
9409 Patch autogenerated by refactor_passes.py from
9410 https://github.com/davidmalcolm/gcc-refactoring-scripts
9411 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9412
9413 * asan.c (pass_asan): Convert from a global struct to a subclass of
9414 gimple_opt_pass along with...
9415 (pass_data_asan): ...new pass_data instance and...
9416 (make_pass_asan): ...new function.
9417 (pass_asan_O0): Convert from a global struct to a subclass of
9418 gimple_opt_pass along with...
9419 (pass_data_asan_O0): ...new pass_data instance and...
9420 (make_pass_asan_O0): ...new function.
9421 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9422 subclass of rtl_opt_pass along with...
9423 (pass_data_inc_dec): ...new pass_data instance and...
9424 (make_pass_inc_dec): ...new function.
9425 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9426 a subclass of rtl_opt_pass along with...
9427 (pass_data_reorder_blocks): ...new pass_data instance and...
9428 (make_pass_reorder_blocks): ...new function.
9429 (pass_duplicate_computed_gotos): Convert from a global struct to a
9430 subclass of rtl_opt_pass along with...
9431 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9432 (make_pass_duplicate_computed_gotos): ...new function.
9433 (pass_partition_blocks): Convert from a global struct to a subclass of
9434 rtl_opt_pass along with...
9435 (pass_data_partition_blocks): ...new pass_data instance and...
9436 (make_pass_partition_blocks): ...new function.
9437 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9438 struct to a subclass of rtl_opt_pass along with...
9439 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9440 and...
9441 (make_pass_branch_target_load_optimize1): ...new function.
9442 (pass_branch_target_load_optimize2): Convert from a global struct to a
9443 subclass of rtl_opt_pass along with...
9444 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9445 and...
9446 (make_pass_branch_target_load_optimize2): ...new function.
9447 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9448 of rtl_opt_pass along with...
9449 (pass_data_jump): ...new pass_data instance and...
9450 (make_pass_jump): ...new function.
9451 (pass_jump2): Convert from a global struct to a subclass of
9452 rtl_opt_pass along with...
9453 (pass_data_jump2): ...new pass_data instance and...
9454 (make_pass_jump2): ...new function.
9455 * cfgexpand.c (pass_expand): Convert from a global struct to a
9456 subclass of rtl_opt_pass along with...
9457 (pass_data_expand): ...new pass_data instance and...
9458 (make_pass_expand): ...new function.
9459 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9460 of rtl_opt_pass along with...
9461 (pass_data_free_cfg): ...new pass_data instance and...
9462 (make_pass_free_cfg): ...new function.
9463 (pass_into_cfg_layout_mode): Convert from a global struct to a
9464 subclass of rtl_opt_pass along with...
9465 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9466 (make_pass_into_cfg_layout_mode): ...new function.
9467 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9468 subclass of rtl_opt_pass along with...
9469 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9470 (make_pass_outof_cfg_layout_mode): ...new function.
9471 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9472 struct to a subclass of gimple_opt_pass along with...
9473 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9474 (make_pass_build_cgraph_edges): ...new function.
9475 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9476 subclass of gimple_opt_pass along with...
9477 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9478 (make_pass_rebuild_cgraph_edges): ...new function.
9479 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9480 subclass of gimple_opt_pass along with...
9481 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9482 and...
9483 (make_pass_remove_cgraph_callee_edges): ...new function.
9484 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9485 struct to a subclass of rtl_opt_pass along with...
9486 (pass_data_stack_adjustments): ...new pass_data instance and...
9487 (make_pass_stack_adjustments): ...new function.
9488 * combine.c (pass_combine): Convert from a global struct to a subclass
9489 of rtl_opt_pass along with...
9490 (pass_data_combine): ...new pass_data instance and...
9491 (make_pass_combine): ...new function.
9492 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9493 global struct to a subclass of rtl_opt_pass along with...
9494 (pass_data_compare_elim_after_reload): ...new pass_data instance
9495 and...
9496 (make_pass_compare_elim_after_reload): ...new function.
9497 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9498 of rtl_opt_pass along with...
9499 (pass_data_rtl_cprop): ...new pass_data instance and...
9500 (make_pass_rtl_cprop): ...new function.
9501 * cse.c (pass_cse): Convert from a global struct to a subclass of
9502 rtl_opt_pass along with...
9503 (pass_data_cse): ...new pass_data instance and...
9504 (make_pass_cse): ...new function.
9505 (pass_cse2): Convert from a global struct to a subclass of
9506 rtl_opt_pass along with...
9507 (pass_data_cse2): ...new pass_data instance and...
9508 (make_pass_cse2): ...new function.
9509 (pass_cse_after_global_opts): Convert from a global struct to a
9510 subclass of rtl_opt_pass along with...
9511 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9512 (make_pass_cse_after_global_opts): ...new function.
9513 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9514 of rtl_opt_pass along with...
9515 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9516 (make_pass_ud_rtl_dce): ...new function.
9517 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9518 rtl_opt_pass along with...
9519 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9520 (make_pass_fast_rtl_dce): ...new function.
9521 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9522 a subclass of rtl_opt_pass along with...
9523 (pass_data_df_initialize_opt): ...new pass_data instance and...
9524 (make_pass_df_initialize_opt): ...new function.
9525 (pass_df_initialize_no_opt): Convert from a global struct to a
9526 subclass of rtl_opt_pass along with...
9527 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9528 (make_pass_df_initialize_no_opt): ...new function.
9529 (pass_df_finish): Convert from a global struct to a subclass of
9530 rtl_opt_pass along with...
9531 (pass_data_df_finish): ...new pass_data instance and...
9532 (make_pass_df_finish): ...new function.
9533 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9534 rtl_opt_pass along with...
9535 (pass_data_rtl_dse1): ...new pass_data instance and...
9536 (make_pass_rtl_dse1): ...new function.
9537 (pass_rtl_dse2): Convert from a global struct to a subclass of
9538 rtl_opt_pass along with...
9539 (pass_data_rtl_dse2): ...new pass_data instance and...
9540 (make_pass_rtl_dse2): ...new function.
9541 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9542 subclass of rtl_opt_pass along with...
9543 (pass_data_dwarf2_frame): ...new pass_data instance and...
9544 (make_pass_dwarf2_frame): ...new function.
9545 * except.c (pass_set_nothrow_function_flags): Convert from a global
9546 struct to a subclass of rtl_opt_pass along with...
9547 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9548 and...
9549 (make_pass_set_nothrow_function_flags): ...new function.
9550 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9551 subclass of rtl_opt_pass along with...
9552 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9553 and...
9554 (make_pass_convert_to_eh_region_ranges): ...new function.
9555 * final.c (pass_compute_alignments): Convert from a global struct to a
9556 subclass of rtl_opt_pass along with...
9557 (pass_data_compute_alignments): ...new pass_data instance and...
9558 (make_pass_compute_alignments): ...new function.
9559 (pass_final): Convert from a global struct to a subclass of
9560 rtl_opt_pass along with...
9561 (pass_data_final): ...new pass_data instance and...
9562 (make_pass_final): ...new function.
9563 (pass_shorten_branches): Convert from a global struct to a subclass of
9564 rtl_opt_pass along with...
9565 (pass_data_shorten_branches): ...new pass_data instance and...
9566 (make_pass_shorten_branches): ...new function.
9567 (pass_clean_state): Convert from a global struct to a subclass of
9568 rtl_opt_pass along with...
9569 (pass_data_clean_state): ...new pass_data instance and...
9570 (make_pass_clean_state): ...new function.
9571 * function.c (pass_instantiate_virtual_regs): Convert from a global
9572 struct to a subclass of rtl_opt_pass along with...
9573 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9574 (make_pass_instantiate_virtual_regs): ...new function.
9575 (pass_leaf_regs): Convert from a global struct to a subclass of
9576 rtl_opt_pass along with...
9577 (pass_data_leaf_regs): ...new pass_data instance and...
9578 (make_pass_leaf_regs): ...new function.
9579 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9580 subclass of rtl_opt_pass along with...
9581 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9582 and...
9583 (make_pass_thread_prologue_and_epilogue): ...new function.
9584 (pass_match_asm_constraints): Convert from a global struct to a
9585 subclass of rtl_opt_pass along with...
9586 (pass_data_match_asm_constraints): ...new pass_data instance and...
9587 (make_pass_match_asm_constraints): ...new function.
9588 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9589 subclass of rtl_opt_pass along with...
9590 (pass_data_rtl_fwprop): ...new pass_data instance and...
9591 (make_pass_rtl_fwprop): ...new function.
9592 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9593 rtl_opt_pass along with...
9594 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9595 (make_pass_rtl_fwprop_addr): ...new function.
9596 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9597 rtl_opt_pass along with...
9598 (pass_data_rtl_pre): ...new pass_data instance and...
9599 (make_pass_rtl_pre): ...new function.
9600 (pass_rtl_hoist): Convert from a global struct to a subclass of
9601 rtl_opt_pass along with...
9602 (pass_data_rtl_hoist): ...new pass_data instance and...
9603 (make_pass_rtl_hoist): ...new function.
9604 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9605 subclass of gimple_opt_pass along with...
9606 (pass_data_lower_cf): ...new pass_data instance and...
9607 (make_pass_lower_cf): ...new function.
9608 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9609 from a global struct to a subclass of gimple_opt_pass along with...
9610 (pass_data_strength_reduction): ...new pass_data instance and...
9611 (make_pass_strength_reduction): ...new function.
9612 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9613 of rtl_opt_pass along with...
9614 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9615 (make_pass_rtl_ifcvt): ...new function.
9616 (pass_if_after_combine): Convert from a global struct to a subclass of
9617 rtl_opt_pass along with...
9618 (pass_data_if_after_combine): ...new pass_data instance and...
9619 (make_pass_if_after_combine): ...new function.
9620 (pass_if_after_reload): Convert from a global struct to a subclass of
9621 rtl_opt_pass along with...
9622 (pass_data_if_after_reload): ...new pass_data instance and...
9623 (make_pass_if_after_reload): ...new function.
9624 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9625 a subclass of rtl_opt_pass along with...
9626 (pass_data_initialize_regs): ...new pass_data instance and...
9627 (make_pass_initialize_regs): ...new function.
9628 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9629 of ipa_opt_pass_d along with...
9630 (pass_data_ipa_cp): ...new pass_data instance and...
9631 (make_pass_ipa_cp): ...new function.
9632 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9633 global struct to a subclass of gimple_opt_pass along with...
9634 (pass_data_inline_parameters): ...new pass_data instance and...
9635 (make_pass_inline_parameters): ...new function.
9636 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9637 subclass of gimple_opt_pass along with...
9638 (pass_data_early_inline): ...new pass_data instance and...
9639 (make_pass_early_inline): ...new function.
9640 (pass_ipa_inline): Convert from a global struct to a subclass of
9641 ipa_opt_pass_d along with...
9642 (pass_data_ipa_inline): ...new pass_data instance and...
9643 (make_pass_ipa_inline): ...new function.
9644 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9645 struct to a subclass of gimple_opt_pass along with...
9646 (pass_data_local_pure_const): ...new pass_data instance and...
9647 (make_pass_local_pure_const): ...new function.
9648 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9649 ipa_opt_pass_d along with...
9650 (pass_data_ipa_pure_const): ...new pass_data instance and...
9651 (make_pass_ipa_pure_const): ...new function.
9652 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9653 to a subclass of ipa_opt_pass_d along with...
9654 (pass_data_ipa_reference): ...new pass_data instance and...
9655 (make_pass_ipa_reference): ...new function.
9656 * ipa-split.c (pass_split_functions): Convert from a global struct to
9657 a subclass of gimple_opt_pass along with...
9658 (pass_data_split_functions): ...new pass_data instance and...
9659 (make_pass_split_functions): ...new function.
9660 (pass_feedback_split_functions): Convert from a global struct to a
9661 subclass of gimple_opt_pass along with...
9662 (pass_data_feedback_split_functions): ...new pass_data instance and...
9663 (make_pass_feedback_split_functions): ...new function.
9664 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9665 global struct to a subclass of simple_ipa_opt_pass along with...
9666 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9667 instance and...
9668 (make_pass_ipa_function_and_variable_visibility): ...new function.
9669 (pass_ipa_free_inline_summary): Convert from a global struct to a
9670 subclass of simple_ipa_opt_pass along with...
9671 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9672 (make_pass_ipa_free_inline_summary): ...new function.
9673 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9674 subclass of ipa_opt_pass_d along with...
9675 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9676 and...
9677 (make_pass_ipa_whole_program_visibility): ...new function.
9678 (pass_ipa_profile): Convert from a global struct to a subclass of
9679 ipa_opt_pass_d along with...
9680 (pass_data_ipa_profile): ...new pass_data instance and...
9681 (make_pass_ipa_profile): ...new function.
9682 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9683 ipa_opt_pass_d along with...
9684 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9685 (make_pass_ipa_cdtor_merge): ...new function.
9686 * ira.c (pass_ira): Convert from a global struct to a subclass of
9687 rtl_opt_pass along with...
9688 (pass_data_ira): ...new pass_data instance and...
9689 (make_pass_ira): ...new function.
9690 (pass_reload): Convert from a global struct to a subclass of
9691 rtl_opt_pass along with...
9692 (pass_data_reload): ...new pass_data instance and...
9693 (make_pass_reload): ...new function.
9694 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9695 subclass of rtl_opt_pass along with...
9696 (pass_data_cleanup_barriers): ...new pass_data instance and...
9697 (make_pass_cleanup_barriers): ...new function.
9698 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9699 of rtl_opt_pass along with...
9700 (pass_data_loop2): ...new pass_data instance and...
9701 (make_pass_loop2): ...new function.
9702 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9703 rtl_opt_pass along with...
9704 (pass_data_rtl_loop_init): ...new pass_data instance and...
9705 (make_pass_rtl_loop_init): ...new function.
9706 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9707 rtl_opt_pass along with...
9708 (pass_data_rtl_loop_done): ...new pass_data instance and...
9709 (make_pass_rtl_loop_done): ...new function.
9710 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9711 subclass of rtl_opt_pass along with...
9712 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9713 (make_pass_rtl_move_loop_invariants): ...new function.
9714 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9715 rtl_opt_pass along with...
9716 (pass_data_rtl_unswitch): ...new pass_data instance and...
9717 (make_pass_rtl_unswitch): ...new function.
9718 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9719 subclass of rtl_opt_pass along with...
9720 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9721 and...
9722 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9723 (pass_rtl_doloop): Convert from a global struct to a subclass of
9724 rtl_opt_pass along with...
9725 (pass_data_rtl_doloop): ...new pass_data instance and...
9726 (make_pass_rtl_doloop): ...new function.
9727 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9728 a subclass of rtl_opt_pass along with...
9729 (pass_data_lower_subreg): ...new pass_data instance and...
9730 (make_pass_lower_subreg): ...new function.
9731 (pass_lower_subreg2): Convert from a global struct to a subclass of
9732 rtl_opt_pass along with...
9733 (pass_data_lower_subreg2): ...new pass_data instance and...
9734 (make_pass_lower_subreg2): ...new function.
9735 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9736 struct to a subclass of ipa_opt_pass_d along with...
9737 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9738 (make_pass_ipa_lto_gimple_out): ...new function.
9739 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9740 of ipa_opt_pass_d along with...
9741 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9742 (make_pass_ipa_lto_finish_out): ...new function.
9743 * mode-switching.c (pass_mode_switching): Convert from a global struct
9744 to a subclass of rtl_opt_pass along with...
9745 (pass_data_mode_switching): ...new pass_data instance and...
9746 (make_pass_mode_switching): ...new function.
9747 * modulo-sched.c (pass_sms): Convert from a global struct to a
9748 subclass of rtl_opt_pass along with...
9749 (pass_data_sms): ...new pass_data instance and...
9750 (make_pass_sms): ...new function.
9751 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9752 subclass of gimple_opt_pass along with...
9753 (pass_data_expand_omp): ...new pass_data instance and...
9754 (make_pass_expand_omp): ...new function.
9755 (pass_lower_omp): Convert from a global struct to a subclass of
9756 gimple_opt_pass along with...
9757 (pass_data_lower_omp): ...new pass_data instance and...
9758 (make_pass_lower_omp): ...new function.
9759 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9760 of gimple_opt_pass along with...
9761 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9762 (make_pass_diagnose_omp_blocks): ...new function.
9763 * passes.c (pass_early_local_passes): Convert from a global struct to
9764 a subclass of simple_ipa_opt_pass along with...
9765 (pass_data_early_local_passes): ...new pass_data instance and...
9766 (make_pass_early_local_passes): ...new function.
9767 (pass_all_early_optimizations): Convert from a global struct to a
9768 subclass of gimple_opt_pass along with...
9769 (pass_data_all_early_optimizations): ...new pass_data instance and...
9770 (make_pass_all_early_optimizations): ...new function.
9771 (pass_all_optimizations): Convert from a global struct to a subclass
9772 of gimple_opt_pass along with...
9773 (pass_data_all_optimizations): ...new pass_data instance and...
9774 (make_pass_all_optimizations): ...new function.
9775 (pass_all_optimizations_g): Convert from a global struct to a subclass
9776 of gimple_opt_pass along with...
9777 (pass_data_all_optimizations_g): ...new pass_data instance and...
9778 (make_pass_all_optimizations_g): ...new function.
9779 (pass_rest_of_compilation): Convert from a global struct to a subclass
9780 of rtl_opt_pass along with...
9781 (pass_data_rest_of_compilation): ...new pass_data instance and...
9782 (make_pass_rest_of_compilation): ...new function.
9783 (pass_postreload): Convert from a global struct to a subclass of
9784 rtl_opt_pass along with...
9785 (pass_data_postreload): ...new pass_data instance and...
9786 (make_pass_postreload): ...new function.
9787 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9788 subclass of rtl_opt_pass along with...
9789 (pass_data_gcse2): ...new pass_data instance and...
9790 (make_pass_gcse2): ...new function.
9791 * postreload.c (pass_postreload_cse): Convert from a global struct to
9792 a subclass of rtl_opt_pass along with...
9793 (pass_data_postreload_cse): ...new pass_data instance and...
9794 (make_pass_postreload_cse): ...new function.
9795 * predict.c (pass_profile): Convert from a global struct to a subclass
9796 of gimple_opt_pass along with...
9797 (pass_data_profile): ...new pass_data instance and...
9798 (make_pass_profile): ...new function.
9799 (pass_strip_predict_hints): Convert from a global struct to a subclass
9800 of gimple_opt_pass along with...
9801 (pass_data_strip_predict_hints): ...new pass_data instance and...
9802 (make_pass_strip_predict_hints): ...new function.
9803 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9804 of rtl_opt_pass along with...
9805 (pass_data_peephole2): ...new pass_data instance and...
9806 (make_pass_peephole2): ...new function.
9807 (pass_split_all_insns): Convert from a global struct to a subclass of
9808 rtl_opt_pass along with...
9809 (pass_data_split_all_insns): ...new pass_data instance and...
9810 (make_pass_split_all_insns): ...new function.
9811 (pass_split_after_reload): Convert from a global struct to a subclass
9812 of rtl_opt_pass along with...
9813 (pass_data_split_after_reload): ...new pass_data instance and...
9814 (make_pass_split_after_reload): ...new function.
9815 (pass_split_before_regstack): Convert from a global struct to a
9816 subclass of rtl_opt_pass along with...
9817 (pass_data_split_before_regstack): ...new pass_data instance and...
9818 (make_pass_split_before_regstack): ...new function.
9819 (pass_split_before_sched2): Convert from a global struct to a subclass
9820 of rtl_opt_pass along with...
9821 (pass_data_split_before_sched2): ...new pass_data instance and...
9822 (make_pass_split_before_sched2): ...new function.
9823 (pass_split_for_shorten_branches): Convert from a global struct to a
9824 subclass of rtl_opt_pass along with...
9825 (pass_data_split_for_shorten_branches): ...new pass_data instance
9826 and...
9827 (make_pass_split_for_shorten_branches): ...new function.
9828 * ree.c (pass_ree): Convert from a global struct to a subclass of
9829 rtl_opt_pass along with...
9830 (pass_data_ree): ...new pass_data instance and...
9831 (make_pass_ree): ...new function.
9832 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9833 subclass of rtl_opt_pass along with...
9834 (pass_data_stack_regs): ...new pass_data instance and...
9835 (make_pass_stack_regs): ...new function.
9836 (pass_stack_regs_run): Convert from a global struct to a subclass of
9837 rtl_opt_pass along with...
9838 (pass_data_stack_regs_run): ...new pass_data instance and...
9839 (make_pass_stack_regs_run): ...new function.
9840 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
9841 subclass of rtl_opt_pass along with...
9842 (pass_data_cprop_hardreg): ...new pass_data instance and...
9843 (make_pass_cprop_hardreg): ...new function.
9844 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
9845 subclass of rtl_opt_pass along with...
9846 (pass_data_reginfo_init): ...new pass_data instance and...
9847 (make_pass_reginfo_init): ...new function.
9848 * regmove.c (pass_regmove): Convert from a global struct to a subclass
9849 of rtl_opt_pass along with...
9850 (pass_data_regmove): ...new pass_data instance and...
9851 (make_pass_regmove): ...new function.
9852 * regrename.c (pass_regrename): Convert from a global struct to a
9853 subclass of rtl_opt_pass along with...
9854 (pass_data_regrename): ...new pass_data instance and...
9855 (make_pass_regrename): ...new function.
9856 * reorg.c (pass_delay_slots): Convert from a global struct to a
9857 subclass of rtl_opt_pass along with...
9858 (pass_data_delay_slots): ...new pass_data instance and...
9859 (make_pass_delay_slots): ...new function.
9860 (pass_machine_reorg): Convert from a global struct to a subclass of
9861 rtl_opt_pass along with...
9862 (pass_data_machine_reorg): ...new pass_data instance and...
9863 (make_pass_machine_reorg): ...new function.
9864 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
9865 of rtl_opt_pass along with...
9866 (pass_data_sched): ...new pass_data instance and...
9867 (make_pass_sched): ...new function.
9868 (pass_sched2): Convert from a global struct to a subclass of
9869 rtl_opt_pass along with...
9870 (pass_data_sched2): ...new pass_data instance and...
9871 (make_pass_sched2): ...new function.
9872 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
9873 to a subclass of rtl_opt_pass along with...
9874 (pass_data_stack_ptr_mod): ...new pass_data instance and...
9875 (make_pass_stack_ptr_mod): ...new function.
9876 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
9877 to a subclass of rtl_opt_pass along with...
9878 (pass_data_rtl_store_motion): ...new pass_data instance and...
9879 (make_pass_rtl_store_motion): ...new function.
9880 * tracer.c (pass_tracer): Convert from a global struct to a subclass
9881 of gimple_opt_pass along with...
9882 (pass_data_tracer): ...new pass_data instance and...
9883 (make_pass_tracer): ...new function.
9884 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
9885 to a subclass of gimple_opt_pass along with...
9886 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
9887 (make_pass_diagnose_tm_blocks): ...new function.
9888 (pass_lower_tm): Convert from a global struct to a subclass of
9889 gimple_opt_pass along with...
9890 (pass_data_lower_tm): ...new pass_data instance and...
9891 (make_pass_lower_tm): ...new function.
9892 (pass_tm_init): Convert from a global struct to a subclass of
9893 gimple_opt_pass along with...
9894 (pass_data_tm_init): ...new pass_data instance and...
9895 (make_pass_tm_init): ...new function.
9896 (pass_tm_mark): Convert from a global struct to a subclass of
9897 gimple_opt_pass along with...
9898 (pass_data_tm_mark): ...new pass_data instance and...
9899 (make_pass_tm_mark): ...new function.
9900 (pass_tm_edges): Convert from a global struct to a subclass of
9901 gimple_opt_pass along with...
9902 (pass_data_tm_edges): ...new pass_data instance and...
9903 (make_pass_tm_edges): ...new function.
9904 (pass_tm_memopt): Convert from a global struct to a subclass of
9905 gimple_opt_pass along with...
9906 (pass_data_tm_memopt): ...new pass_data instance and...
9907 (make_pass_tm_memopt): ...new function.
9908 (pass_ipa_tm): Convert from a global struct to a subclass of
9909 simple_ipa_opt_pass along with...
9910 (pass_data_ipa_tm): ...new pass_data instance and...
9911 (make_pass_ipa_tm): ...new function.
9912 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
9913 subclass of gimple_opt_pass along with...
9914 (pass_data_call_cdce): ...new pass_data instance and...
9915 (make_pass_call_cdce): ...new function.
9916 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
9917 subclass of gimple_opt_pass along with...
9918 (pass_data_build_cfg): ...new pass_data instance and...
9919 (make_pass_build_cfg): ...new function.
9920 (pass_split_crit_edges): Convert from a global struct to a subclass of
9921 gimple_opt_pass along with...
9922 (pass_data_split_crit_edges): ...new pass_data instance and...
9923 (make_pass_split_crit_edges): ...new function.
9924 (pass_warn_function_return): Convert from a global struct to a
9925 subclass of gimple_opt_pass along with...
9926 (pass_data_warn_function_return): ...new pass_data instance and...
9927 (make_pass_warn_function_return): ...new function.
9928 (pass_warn_function_noreturn): Convert from a global struct to a
9929 subclass of gimple_opt_pass along with...
9930 (pass_data_warn_function_noreturn): ...new pass_data instance and...
9931 (make_pass_warn_function_noreturn): ...new function.
9932 (pass_warn_unused_result): Convert from a global struct to a subclass
9933 of gimple_opt_pass along with...
9934 (pass_data_warn_unused_result): ...new pass_data instance and...
9935 (make_pass_warn_unused_result): ...new function.
9936 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
9937 a subclass of gimple_opt_pass along with...
9938 (pass_data_merge_phi): ...new pass_data instance and...
9939 (make_pass_merge_phi): ...new function.
9940 * tree-complex.c (pass_lower_complex): Convert from a global struct to
9941 a subclass of gimple_opt_pass along with...
9942 (pass_data_lower_complex): ...new pass_data instance and...
9943 (make_pass_lower_complex): ...new function.
9944 (pass_lower_complex_O0): Convert from a global struct to a subclass of
9945 gimple_opt_pass along with...
9946 (pass_data_lower_complex_O0): ...new pass_data instance and...
9947 (make_pass_lower_complex_O0): ...new function.
9948 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
9949 subclass of gimple_opt_pass along with...
9950 (pass_data_lower_eh): ...new pass_data instance and...
9951 (make_pass_lower_eh): ...new function.
9952 (pass_refactor_eh): Convert from a global struct to a subclass of
9953 gimple_opt_pass along with...
9954 (pass_data_refactor_eh): ...new pass_data instance and...
9955 (make_pass_refactor_eh): ...new function.
9956 (pass_lower_resx): Convert from a global struct to a subclass of
9957 gimple_opt_pass along with...
9958 (pass_data_lower_resx): ...new pass_data instance and...
9959 (make_pass_lower_resx): ...new function.
9960 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
9961 of gimple_opt_pass along with...
9962 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
9963 (make_pass_lower_eh_dispatch): ...new function.
9964 (pass_cleanup_eh): Convert from a global struct to a subclass of
9965 gimple_opt_pass along with...
9966 (pass_data_cleanup_eh): ...new pass_data instance and...
9967 (make_pass_cleanup_eh): ...new function.
9968 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
9969 to a subclass of simple_ipa_opt_pass along with...
9970 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
9971 (make_pass_ipa_lower_emutls): ...new function.
9972 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
9973 a subclass of gimple_opt_pass along with...
9974 (pass_data_if_conversion): ...new pass_data instance and...
9975 (make_pass_if_conversion): ...new function.
9976 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
9977 subclass of gimple_opt_pass along with...
9978 (pass_data_build_ssa): ...new pass_data instance and...
9979 (make_pass_build_ssa): ...new function.
9980 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
9981 global struct to a subclass of gimple_opt_pass along with...
9982 (pass_data_loop_distribution): ...new pass_data instance and...
9983 (make_pass_loop_distribution): ...new function.
9984 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
9985 subclass of gimple_opt_pass along with...
9986 (pass_data_mudflap_1): ...new pass_data instance and...
9987 (make_pass_mudflap_1): ...new function.
9988 (pass_mudflap_2): Convert from a global struct to a subclass of
9989 gimple_opt_pass along with...
9990 (pass_data_mudflap_2): ...new pass_data instance and...
9991 (make_pass_mudflap_2): ...new function.
9992 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
9993 subclass of gimple_opt_pass along with...
9994 (pass_data_mudflap_1): ...new pass_data instance and...
9995 (make_pass_mudflap_1): ...new function.
9996 (pass_mudflap_2): Convert from a global struct to a subclass of
9997 gimple_opt_pass along with...
9998 (pass_data_mudflap_2): ...new pass_data instance and...
9999 (make_pass_mudflap_2): ...new function.
10000 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
10001 gimple_opt_pass along with...
10002 (pass_data_nrv): ...new pass_data instance and...
10003 (make_pass_nrv): ...new function.
10004 (pass_return_slot): Convert from a global struct to a subclass of
10005 gimple_opt_pass along with...
10006 (pass_data_return_slot): ...new pass_data instance and...
10007 (make_pass_return_slot): ...new function.
10008 * tree-object-size.c (pass_object_sizes): Convert from a global struct
10009 to a subclass of gimple_opt_pass along with...
10010 (pass_data_object_sizes): ...new pass_data instance and...
10011 (make_pass_object_sizes): ...new function.
10012 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
10013 global struct to a subclass of gimple_opt_pass along with...
10014 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
10015 and...
10016 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10017 (pass_fixup_cfg): Convert from a global struct to a subclass of
10018 gimple_opt_pass along with...
10019 (pass_data_fixup_cfg): ...new pass_data instance and...
10020 (make_pass_fixup_cfg): ...new function.
10021 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
10022 (make_pass_mudflap_1): ...new function.
10023 (pass_mudflap_2): Replace declaration with that of...
10024 (make_pass_mudflap_2): ...new function.
10025 (pass_asan): Replace declaration with that of...
10026 (make_pass_asan): ...new function.
10027 (pass_asan_O0): Replace declaration with that of...
10028 (make_pass_asan_O0): ...new function.
10029 (pass_tsan): Replace declaration with that of...
10030 (make_pass_tsan): ...new function.
10031 (pass_tsan_O0): Replace declaration with that of...
10032 (make_pass_tsan_O0): ...new function.
10033 (pass_lower_cf): Replace declaration with that of...
10034 (make_pass_lower_cf): ...new function.
10035 (pass_refactor_eh): Replace declaration with that of...
10036 (make_pass_refactor_eh): ...new function.
10037 (pass_lower_eh): Replace declaration with that of...
10038 (make_pass_lower_eh): ...new function.
10039 (pass_lower_eh_dispatch): Replace declaration with that of...
10040 (make_pass_lower_eh_dispatch): ...new function.
10041 (pass_lower_resx): Replace declaration with that of...
10042 (make_pass_lower_resx): ...new function.
10043 (pass_build_cfg): Replace declaration with that of...
10044 (make_pass_build_cfg): ...new function.
10045 (pass_early_tree_profile): Replace declaration with that of...
10046 (make_pass_early_tree_profile): ...new function.
10047 (pass_cleanup_eh): Replace declaration with that of...
10048 (make_pass_cleanup_eh): ...new function.
10049 (pass_sra): Replace declaration with that of...
10050 (make_pass_sra): ...new function.
10051 (pass_sra_early): Replace declaration with that of...
10052 (make_pass_sra_early): ...new function.
10053 (pass_early_ipa_sra): Replace declaration with that of...
10054 (make_pass_early_ipa_sra): ...new function.
10055 (pass_tail_recursion): Replace declaration with that of...
10056 (make_pass_tail_recursion): ...new function.
10057 (pass_tail_calls): Replace declaration with that of...
10058 (make_pass_tail_calls): ...new function.
10059 (pass_tree_loop): Replace declaration with that of...
10060 (make_pass_tree_loop): ...new function.
10061 (pass_tree_loop_init): Replace declaration with that of...
10062 (make_pass_tree_loop_init): ...new function.
10063 (pass_lim): Replace declaration with that of...
10064 (make_pass_lim): ...new function.
10065 (pass_tree_unswitch): Replace declaration with that of...
10066 (make_pass_tree_unswitch): ...new function.
10067 (pass_predcom): Replace declaration with that of...
10068 (make_pass_predcom): ...new function.
10069 (pass_iv_canon): Replace declaration with that of...
10070 (make_pass_iv_canon): ...new function.
10071 (pass_scev_cprop): Replace declaration with that of...
10072 (make_pass_scev_cprop): ...new function.
10073 (pass_empty_loop): Replace declaration with that of...
10074 (make_pass_empty_loop): ...new function.
10075 (pass_record_bounds): Replace declaration with that of...
10076 (make_pass_record_bounds): ...new function.
10077 (pass_graphite): Replace declaration with that of...
10078 (make_pass_graphite): ...new function.
10079 (pass_graphite_transforms): Replace declaration with that of...
10080 (make_pass_graphite_transforms): ...new function.
10081 (pass_if_conversion): Replace declaration with that of...
10082 (make_pass_if_conversion): ...new function.
10083 (pass_loop_distribution): Replace declaration with that of...
10084 (make_pass_loop_distribution): ...new function.
10085 (pass_vectorize): Replace declaration with that of...
10086 (make_pass_vectorize): ...new function.
10087 (pass_slp_vectorize): Replace declaration with that of...
10088 (make_pass_slp_vectorize): ...new function.
10089 (pass_complete_unroll): Replace declaration with that of...
10090 (make_pass_complete_unroll): ...new function.
10091 (pass_complete_unrolli): Replace declaration with that of...
10092 (make_pass_complete_unrolli): ...new function.
10093 (pass_parallelize_loops): Replace declaration with that of...
10094 (make_pass_parallelize_loops): ...new function.
10095 (pass_loop_prefetch): Replace declaration with that of...
10096 (make_pass_loop_prefetch): ...new function.
10097 (pass_iv_optimize): Replace declaration with that of...
10098 (make_pass_iv_optimize): ...new function.
10099 (pass_tree_loop_done): Replace declaration with that of...
10100 (make_pass_tree_loop_done): ...new function.
10101 (pass_ch): Replace declaration with that of...
10102 (make_pass_ch): ...new function.
10103 (pass_ccp): Replace declaration with that of...
10104 (make_pass_ccp): ...new function.
10105 (pass_phi_only_cprop): Replace declaration with that of...
10106 (make_pass_phi_only_cprop): ...new function.
10107 (pass_build_ssa): Replace declaration with that of...
10108 (make_pass_build_ssa): ...new function.
10109 (pass_build_alias): Replace declaration with that of...
10110 (make_pass_build_alias): ...new function.
10111 (pass_build_ealias): Replace declaration with that of...
10112 (make_pass_build_ealias): ...new function.
10113 (pass_dominator): Replace declaration with that of...
10114 (make_pass_dominator): ...new function.
10115 (pass_dce): Replace declaration with that of...
10116 (make_pass_dce): ...new function.
10117 (pass_dce_loop): Replace declaration with that of...
10118 (make_pass_dce_loop): ...new function.
10119 (pass_cd_dce): Replace declaration with that of...
10120 (make_pass_cd_dce): ...new function.
10121 (pass_call_cdce): Replace declaration with that of...
10122 (make_pass_call_cdce): ...new function.
10123 (pass_merge_phi): Replace declaration with that of...
10124 (make_pass_merge_phi): ...new function.
10125 (pass_split_crit_edges): Replace declaration with that of...
10126 (make_pass_split_crit_edges): ...new function.
10127 (pass_pre): Replace declaration with that of...
10128 (make_pass_pre): ...new function.
10129 (pass_profile): Replace declaration with that of...
10130 (make_pass_profile): ...new function.
10131 (pass_strip_predict_hints): Replace declaration with that of...
10132 (make_pass_strip_predict_hints): ...new function.
10133 (pass_lower_complex_O0): Replace declaration with that of...
10134 (make_pass_lower_complex_O0): ...new function.
10135 (pass_lower_complex): Replace declaration with that of...
10136 (make_pass_lower_complex): ...new function.
10137 (pass_lower_vector): Replace declaration with that of...
10138 (make_pass_lower_vector): ...new function.
10139 (pass_lower_vector_ssa): Replace declaration with that of...
10140 (make_pass_lower_vector_ssa): ...new function.
10141 (pass_lower_omp): Replace declaration with that of...
10142 (make_pass_lower_omp): ...new function.
10143 (pass_diagnose_omp_blocks): Replace declaration with that of...
10144 (make_pass_diagnose_omp_blocks): ...new function.
10145 (pass_expand_omp): Replace declaration with that of...
10146 (make_pass_expand_omp): ...new function.
10147 (pass_expand_omp_ssa): Replace declaration with that of...
10148 (make_pass_expand_omp_ssa): ...new function.
10149 (pass_object_sizes): Replace declaration with that of...
10150 (make_pass_object_sizes): ...new function.
10151 (pass_strlen): Replace declaration with that of...
10152 (make_pass_strlen): ...new function.
10153 (pass_fold_builtins): Replace declaration with that of...
10154 (make_pass_fold_builtins): ...new function.
10155 (pass_stdarg): Replace declaration with that of...
10156 (make_pass_stdarg): ...new function.
10157 (pass_early_warn_uninitialized): Replace declaration with that of...
10158 (make_pass_early_warn_uninitialized): ...new function.
10159 (pass_late_warn_uninitialized): Replace declaration with that of...
10160 (make_pass_late_warn_uninitialized): ...new function.
10161 (pass_cse_reciprocals): Replace declaration with that of...
10162 (make_pass_cse_reciprocals): ...new function.
10163 (pass_cse_sincos): Replace declaration with that of...
10164 (make_pass_cse_sincos): ...new function.
10165 (pass_optimize_bswap): Replace declaration with that of...
10166 (make_pass_optimize_bswap): ...new function.
10167 (pass_optimize_widening_mul): Replace declaration with that of...
10168 (make_pass_optimize_widening_mul): ...new function.
10169 (pass_warn_function_return): Replace declaration with that of...
10170 (make_pass_warn_function_return): ...new function.
10171 (pass_warn_function_noreturn): Replace declaration with that of...
10172 (make_pass_warn_function_noreturn): ...new function.
10173 (pass_cselim): Replace declaration with that of...
10174 (make_pass_cselim): ...new function.
10175 (pass_phiopt): Replace declaration with that of...
10176 (make_pass_phiopt): ...new function.
10177 (pass_forwprop): Replace declaration with that of...
10178 (make_pass_forwprop): ...new function.
10179 (pass_phiprop): Replace declaration with that of...
10180 (make_pass_phiprop): ...new function.
10181 (pass_tree_ifcombine): Replace declaration with that of...
10182 (make_pass_tree_ifcombine): ...new function.
10183 (pass_dse): Replace declaration with that of...
10184 (make_pass_dse): ...new function.
10185 (pass_nrv): Replace declaration with that of...
10186 (make_pass_nrv): ...new function.
10187 (pass_rename_ssa_copies): Replace declaration with that of...
10188 (make_pass_rename_ssa_copies): ...new function.
10189 (pass_sink_code): Replace declaration with that of...
10190 (make_pass_sink_code): ...new function.
10191 (pass_fre): Replace declaration with that of...
10192 (make_pass_fre): ...new function.
10193 (pass_check_data_deps): Replace declaration with that of...
10194 (make_pass_check_data_deps): ...new function.
10195 (pass_copy_prop): Replace declaration with that of...
10196 (make_pass_copy_prop): ...new function.
10197 (pass_vrp): Replace declaration with that of...
10198 (make_pass_vrp): ...new function.
10199 (pass_uncprop): Replace declaration with that of...
10200 (make_pass_uncprop): ...new function.
10201 (pass_return_slot): Replace declaration with that of...
10202 (make_pass_return_slot): ...new function.
10203 (pass_reassoc): Replace declaration with that of...
10204 (make_pass_reassoc): ...new function.
10205 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10206 (make_pass_rebuild_cgraph_edges): ...new function.
10207 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10208 (make_pass_remove_cgraph_callee_edges): ...new function.
10209 (pass_build_cgraph_edges): Replace declaration with that of...
10210 (make_pass_build_cgraph_edges): ...new function.
10211 (pass_local_pure_const): Replace declaration with that of...
10212 (make_pass_local_pure_const): ...new function.
10213 (pass_tracer): Replace declaration with that of...
10214 (make_pass_tracer): ...new function.
10215 (pass_warn_unused_result): Replace declaration with that of...
10216 (make_pass_warn_unused_result): ...new function.
10217 (pass_diagnose_tm_blocks): Replace declaration with that of...
10218 (make_pass_diagnose_tm_blocks): ...new function.
10219 (pass_lower_tm): Replace declaration with that of...
10220 (make_pass_lower_tm): ...new function.
10221 (pass_tm_init): Replace declaration with that of...
10222 (make_pass_tm_init): ...new function.
10223 (pass_tm_mark): Replace declaration with that of...
10224 (make_pass_tm_mark): ...new function.
10225 (pass_tm_memopt): Replace declaration with that of...
10226 (make_pass_tm_memopt): ...new function.
10227 (pass_tm_edges): Replace declaration with that of...
10228 (make_pass_tm_edges): ...new function.
10229 (pass_split_functions): Replace declaration with that of...
10230 (make_pass_split_functions): ...new function.
10231 (pass_feedback_split_functions): Replace declaration with that of...
10232 (make_pass_feedback_split_functions): ...new function.
10233 (pass_strength_reduction): Replace declaration with that of...
10234 (make_pass_strength_reduction): ...new function.
10235 (pass_ipa_lower_emutls): Replace declaration with that of...
10236 (make_pass_ipa_lower_emutls): ...new function.
10237 (pass_ipa_function_and_variable_visibility): Replace declaration with
10238 that of...
10239 (make_pass_ipa_function_and_variable_visibility): ...new function.
10240 (pass_ipa_tree_profile): Replace declaration with that of...
10241 (make_pass_ipa_tree_profile): ...new function.
10242 (pass_early_local_passes): Replace declaration with that of...
10243 (make_pass_early_local_passes): ...new function.
10244 (pass_ipa_whole_program_visibility): Replace declaration with that
10245 of...
10246 (make_pass_ipa_whole_program_visibility): ...new function.
10247 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10248 (make_pass_ipa_lto_gimple_out): ...new function.
10249 (pass_ipa_increase_alignment): Replace declaration with that of...
10250 (make_pass_ipa_increase_alignment): ...new function.
10251 (pass_ipa_inline): Replace declaration with that of...
10252 (make_pass_ipa_inline): ...new function.
10253 (pass_ipa_free_lang_data): Replace declaration with that of...
10254 (make_pass_ipa_free_lang_data): ...new function.
10255 (pass_ipa_free_inline_summary): Replace declaration with that of...
10256 (make_pass_ipa_free_inline_summary): ...new function.
10257 (pass_ipa_cp): Replace declaration with that of...
10258 (make_pass_ipa_cp): ...new function.
10259 (pass_ipa_reference): Replace declaration with that of...
10260 (make_pass_ipa_reference): ...new function.
10261 (pass_ipa_pure_const): Replace declaration with that of...
10262 (make_pass_ipa_pure_const): ...new function.
10263 (pass_ipa_pta): Replace declaration with that of...
10264 (make_pass_ipa_pta): ...new function.
10265 (pass_ipa_lto_finish_out): Replace declaration with that of...
10266 (make_pass_ipa_lto_finish_out): ...new function.
10267 (pass_ipa_tm): Replace declaration with that of...
10268 (make_pass_ipa_tm): ...new function.
10269 (pass_ipa_profile): Replace declaration with that of...
10270 (make_pass_ipa_profile): ...new function.
10271 (pass_ipa_cdtor_merge): Replace declaration with that of...
10272 (make_pass_ipa_cdtor_merge): ...new function.
10273 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10274 of...
10275 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10276 (pass_init_datastructures): Replace declaration with that of...
10277 (make_pass_init_datastructures): ...new function.
10278 (pass_fixup_cfg): Replace declaration with that of...
10279 (make_pass_fixup_cfg): ...new function.
10280 (pass_expand): Replace declaration with that of...
10281 (make_pass_expand): ...new function.
10282 (pass_instantiate_virtual_regs): Replace declaration with that of...
10283 (make_pass_instantiate_virtual_regs): ...new function.
10284 (pass_rtl_fwprop): Replace declaration with that of...
10285 (make_pass_rtl_fwprop): ...new function.
10286 (pass_rtl_fwprop_addr): Replace declaration with that of...
10287 (make_pass_rtl_fwprop_addr): ...new function.
10288 (pass_jump): Replace declaration with that of...
10289 (make_pass_jump): ...new function.
10290 (pass_jump2): Replace declaration with that of...
10291 (make_pass_jump2): ...new function.
10292 (pass_lower_subreg): Replace declaration with that of...
10293 (make_pass_lower_subreg): ...new function.
10294 (pass_cse): Replace declaration with that of...
10295 (make_pass_cse): ...new function.
10296 (pass_fast_rtl_dce): Replace declaration with that of...
10297 (make_pass_fast_rtl_dce): ...new function.
10298 (pass_ud_rtl_dce): Replace declaration with that of...
10299 (make_pass_ud_rtl_dce): ...new function.
10300 (pass_rtl_dce): Replace declaration with that of...
10301 (make_pass_rtl_dce): ...new function.
10302 (pass_rtl_dse1): Replace declaration with that of...
10303 (make_pass_rtl_dse1): ...new function.
10304 (pass_rtl_dse2): Replace declaration with that of...
10305 (make_pass_rtl_dse2): ...new function.
10306 (pass_rtl_dse3): Replace declaration with that of...
10307 (make_pass_rtl_dse3): ...new function.
10308 (pass_rtl_cprop): Replace declaration with that of...
10309 (make_pass_rtl_cprop): ...new function.
10310 (pass_rtl_pre): Replace declaration with that of...
10311 (make_pass_rtl_pre): ...new function.
10312 (pass_rtl_hoist): Replace declaration with that of...
10313 (make_pass_rtl_hoist): ...new function.
10314 (pass_rtl_store_motion): Replace declaration with that of...
10315 (make_pass_rtl_store_motion): ...new function.
10316 (pass_cse_after_global_opts): Replace declaration with that of...
10317 (make_pass_cse_after_global_opts): ...new function.
10318 (pass_rtl_ifcvt): Replace declaration with that of...
10319 (make_pass_rtl_ifcvt): ...new function.
10320 (pass_into_cfg_layout_mode): Replace declaration with that of...
10321 (make_pass_into_cfg_layout_mode): ...new function.
10322 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10323 (make_pass_outof_cfg_layout_mode): ...new function.
10324 (pass_loop2): Replace declaration with that of...
10325 (make_pass_loop2): ...new function.
10326 (pass_rtl_loop_init): Replace declaration with that of...
10327 (make_pass_rtl_loop_init): ...new function.
10328 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10329 (make_pass_rtl_move_loop_invariants): ...new function.
10330 (pass_rtl_unswitch): Replace declaration with that of...
10331 (make_pass_rtl_unswitch): ...new function.
10332 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10333 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10334 (pass_rtl_doloop): Replace declaration with that of...
10335 (make_pass_rtl_doloop): ...new function.
10336 (pass_rtl_loop_done): Replace declaration with that of...
10337 (make_pass_rtl_loop_done): ...new function.
10338 (pass_web): Replace declaration with that of...
10339 (make_pass_web): ...new function.
10340 (pass_cse2): Replace declaration with that of...
10341 (make_pass_cse2): ...new function.
10342 (pass_df_initialize_opt): Replace declaration with that of...
10343 (make_pass_df_initialize_opt): ...new function.
10344 (pass_df_initialize_no_opt): Replace declaration with that of...
10345 (make_pass_df_initialize_no_opt): ...new function.
10346 (pass_reginfo_init): Replace declaration with that of...
10347 (make_pass_reginfo_init): ...new function.
10348 (pass_inc_dec): Replace declaration with that of...
10349 (make_pass_inc_dec): ...new function.
10350 (pass_stack_ptr_mod): Replace declaration with that of...
10351 (make_pass_stack_ptr_mod): ...new function.
10352 (pass_initialize_regs): Replace declaration with that of...
10353 (make_pass_initialize_regs): ...new function.
10354 (pass_combine): Replace declaration with that of...
10355 (make_pass_combine): ...new function.
10356 (pass_if_after_combine): Replace declaration with that of...
10357 (make_pass_if_after_combine): ...new function.
10358 (pass_ree): Replace declaration with that of...
10359 (make_pass_ree): ...new function.
10360 (pass_partition_blocks): Replace declaration with that of...
10361 (make_pass_partition_blocks): ...new function.
10362 (pass_match_asm_constraints): Replace declaration with that of...
10363 (make_pass_match_asm_constraints): ...new function.
10364 (pass_regmove): Replace declaration with that of...
10365 (make_pass_regmove): ...new function.
10366 (pass_split_all_insns): Replace declaration with that of...
10367 (make_pass_split_all_insns): ...new function.
10368 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10369 (make_pass_fast_rtl_byte_dce): ...new function.
10370 (pass_lower_subreg2): Replace declaration with that of...
10371 (make_pass_lower_subreg2): ...new function.
10372 (pass_mode_switching): Replace declaration with that of...
10373 (make_pass_mode_switching): ...new function.
10374 (pass_sms): Replace declaration with that of...
10375 (make_pass_sms): ...new function.
10376 (pass_sched): Replace declaration with that of...
10377 (make_pass_sched): ...new function.
10378 (pass_ira): Replace declaration with that of...
10379 (make_pass_ira): ...new function.
10380 (pass_reload): Replace declaration with that of...
10381 (make_pass_reload): ...new function.
10382 (pass_clean_state): Replace declaration with that of...
10383 (make_pass_clean_state): ...new function.
10384 (pass_branch_prob): Replace declaration with that of...
10385 (make_pass_branch_prob): ...new function.
10386 (pass_value_profile_transformations): Replace declaration with that
10387 of...
10388 (make_pass_value_profile_transformations): ...new function.
10389 (pass_postreload_cse): Replace declaration with that of...
10390 (make_pass_postreload_cse): ...new function.
10391 (pass_gcse2): Replace declaration with that of...
10392 (make_pass_gcse2): ...new function.
10393 (pass_split_after_reload): Replace declaration with that of...
10394 (make_pass_split_after_reload): ...new function.
10395 (pass_branch_target_load_optimize1): Replace declaration with that
10396 of...
10397 (make_pass_branch_target_load_optimize1): ...new function.
10398 (pass_thread_prologue_and_epilogue): Replace declaration with that
10399 of...
10400 (make_pass_thread_prologue_and_epilogue): ...new function.
10401 (pass_stack_adjustments): Replace declaration with that of...
10402 (make_pass_stack_adjustments): ...new function.
10403 (pass_peephole2): Replace declaration with that of...
10404 (make_pass_peephole2): ...new function.
10405 (pass_if_after_reload): Replace declaration with that of...
10406 (make_pass_if_after_reload): ...new function.
10407 (pass_regrename): Replace declaration with that of...
10408 (make_pass_regrename): ...new function.
10409 (pass_cprop_hardreg): Replace declaration with that of...
10410 (make_pass_cprop_hardreg): ...new function.
10411 (pass_reorder_blocks): Replace declaration with that of...
10412 (make_pass_reorder_blocks): ...new function.
10413 (pass_branch_target_load_optimize2): Replace declaration with that
10414 of...
10415 (make_pass_branch_target_load_optimize2): ...new function.
10416 (pass_leaf_regs): Replace declaration with that of...
10417 (make_pass_leaf_regs): ...new function.
10418 (pass_split_before_sched2): Replace declaration with that of...
10419 (make_pass_split_before_sched2): ...new function.
10420 (pass_compare_elim_after_reload): Replace declaration with that of...
10421 (make_pass_compare_elim_after_reload): ...new function.
10422 (pass_sched2): Replace declaration with that of...
10423 (make_pass_sched2): ...new function.
10424 (pass_stack_regs): Replace declaration with that of...
10425 (make_pass_stack_regs): ...new function.
10426 (pass_stack_regs_run): Replace declaration with that of...
10427 (make_pass_stack_regs_run): ...new function.
10428 (pass_df_finish): Replace declaration with that of...
10429 (make_pass_df_finish): ...new function.
10430 (pass_compute_alignments): Replace declaration with that of...
10431 (make_pass_compute_alignments): ...new function.
10432 (pass_duplicate_computed_gotos): Replace declaration with that of...
10433 (make_pass_duplicate_computed_gotos): ...new function.
10434 (pass_variable_tracking): Replace declaration with that of...
10435 (make_pass_variable_tracking): ...new function.
10436 (pass_free_cfg): Replace declaration with that of...
10437 (make_pass_free_cfg): ...new function.
10438 (pass_machine_reorg): Replace declaration with that of...
10439 (make_pass_machine_reorg): ...new function.
10440 (pass_cleanup_barriers): Replace declaration with that of...
10441 (make_pass_cleanup_barriers): ...new function.
10442 (pass_delay_slots): Replace declaration with that of...
10443 (make_pass_delay_slots): ...new function.
10444 (pass_split_for_shorten_branches): Replace declaration with that of...
10445 (make_pass_split_for_shorten_branches): ...new function.
10446 (pass_split_before_regstack): Replace declaration with that of...
10447 (make_pass_split_before_regstack): ...new function.
10448 (pass_convert_to_eh_region_ranges): Replace declaration with that
10449 of...
10450 (make_pass_convert_to_eh_region_ranges): ...new function.
10451 (pass_shorten_branches): Replace declaration with that of...
10452 (make_pass_shorten_branches): ...new function.
10453 (pass_set_nothrow_function_flags): Replace declaration with that of...
10454 (make_pass_set_nothrow_function_flags): ...new function.
10455 (pass_dwarf2_frame): Replace declaration with that of...
10456 (make_pass_dwarf2_frame): ...new function.
10457 (pass_final): Replace declaration with that of...
10458 (make_pass_final): ...new function.
10459 (pass_rtl_seqabstr): Replace declaration with that of...
10460 (make_pass_rtl_seqabstr): ...new function.
10461 (pass_release_ssa_names): Replace declaration with that of...
10462 (make_pass_release_ssa_names): ...new function.
10463 (pass_early_inline): Replace declaration with that of...
10464 (make_pass_early_inline): ...new function.
10465 (pass_inline_parameters): Replace declaration with that of...
10466 (make_pass_inline_parameters): ...new function.
10467 (pass_update_address_taken): Replace declaration with that of...
10468 (make_pass_update_address_taken): ...new function.
10469 (pass_convert_switch): Replace declaration with that of...
10470 (make_pass_convert_switch): ...new function.
10471 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10472 to a subclass of simple_ipa_opt_pass along with...
10473 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10474 (make_pass_ipa_tree_profile): ...new function.
10475 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10476 subclass of gimple_opt_pass along with...
10477 (pass_data_sra_early): ...new pass_data instance and...
10478 (make_pass_sra_early): ...new function.
10479 (pass_sra): Convert from a global struct to a subclass of
10480 gimple_opt_pass along with...
10481 (pass_data_sra): ...new pass_data instance and...
10482 (make_pass_sra): ...new function.
10483 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10484 gimple_opt_pass along with...
10485 (pass_data_early_ipa_sra): ...new pass_data instance and...
10486 (make_pass_early_ipa_sra): ...new function.
10487 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10488 subclass of gimple_opt_pass along with...
10489 (pass_data_ccp): ...new pass_data instance and...
10490 (make_pass_ccp): ...new function.
10491 (pass_fold_builtins): Convert from a global struct to a subclass of
10492 gimple_opt_pass along with...
10493 (pass_data_fold_builtins): ...new pass_data instance and...
10494 (make_pass_fold_builtins): ...new function.
10495 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10496 subclass of gimple_opt_pass along with...
10497 (pass_data_copy_prop): ...new pass_data instance and...
10498 (make_pass_copy_prop): ...new function.
10499 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10500 global struct to a subclass of gimple_opt_pass along with...
10501 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10502 (make_pass_rename_ssa_copies): ...new function.
10503 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10504 subclass of gimple_opt_pass along with...
10505 (pass_data_dce): ...new pass_data instance and...
10506 (make_pass_dce): ...new function.
10507 (pass_dce_loop): Convert from a global struct to a subclass of
10508 gimple_opt_pass along with...
10509 (pass_data_dce_loop): ...new pass_data instance and...
10510 (make_pass_dce_loop): ...new function.
10511 (pass_cd_dce): Convert from a global struct to a subclass of
10512 gimple_opt_pass along with...
10513 (pass_data_cd_dce): ...new pass_data instance and...
10514 (make_pass_cd_dce): ...new function.
10515 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10516 subclass of gimple_opt_pass along with...
10517 (pass_data_dominator): ...new pass_data instance and...
10518 (make_pass_dominator): ...new function.
10519 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10520 gimple_opt_pass along with...
10521 (pass_data_phi_only_cprop): ...new pass_data instance and...
10522 (make_pass_phi_only_cprop): ...new function.
10523 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10524 subclass of gimple_opt_pass along with...
10525 (pass_data_dse): ...new pass_data instance and...
10526 (make_pass_dse): ...new function.
10527 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10528 a subclass of gimple_opt_pass along with...
10529 (pass_data_forwprop): ...new pass_data instance and...
10530 (make_pass_forwprop): ...new function.
10531 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10532 struct to a subclass of gimple_opt_pass along with...
10533 (pass_data_tree_ifcombine): ...new pass_data instance and...
10534 (make_pass_tree_ifcombine): ...new function.
10535 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10536 subclass of gimple_opt_pass along with...
10537 (pass_data_ch): ...new pass_data instance and...
10538 (make_pass_ch): ...new function.
10539 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10540 subclass of gimple_opt_pass along with...
10541 (pass_data_tree_loop): ...new pass_data instance and...
10542 (make_pass_tree_loop): ...new function.
10543 (pass_tree_loop_init): Convert from a global struct to a subclass of
10544 gimple_opt_pass along with...
10545 (pass_data_tree_loop_init): ...new pass_data instance and...
10546 (make_pass_tree_loop_init): ...new function.
10547 (pass_lim): Convert from a global struct to a subclass of
10548 gimple_opt_pass along with...
10549 (pass_data_lim): ...new pass_data instance and...
10550 (make_pass_lim): ...new function.
10551 (pass_tree_unswitch): Convert from a global struct to a subclass of
10552 gimple_opt_pass along with...
10553 (pass_data_tree_unswitch): ...new pass_data instance and...
10554 (make_pass_tree_unswitch): ...new function.
10555 (pass_predcom): Convert from a global struct to a subclass of
10556 gimple_opt_pass along with...
10557 (pass_data_predcom): ...new pass_data instance and...
10558 (make_pass_predcom): ...new function.
10559 (pass_vectorize): Convert from a global struct to a subclass of
10560 gimple_opt_pass along with...
10561 (pass_data_vectorize): ...new pass_data instance and...
10562 (make_pass_vectorize): ...new function.
10563 (pass_graphite): Convert from a global struct to a subclass of
10564 gimple_opt_pass along with...
10565 (pass_data_graphite): ...new pass_data instance and...
10566 (make_pass_graphite): ...new function.
10567 (pass_graphite_transforms): Convert from a global struct to a subclass
10568 of gimple_opt_pass along with...
10569 (pass_data_graphite_transforms): ...new pass_data instance and...
10570 (make_pass_graphite_transforms): ...new function.
10571 (pass_check_data_deps): Convert from a global struct to a subclass of
10572 gimple_opt_pass along with...
10573 (pass_data_check_data_deps): ...new pass_data instance and...
10574 (make_pass_check_data_deps): ...new function.
10575 (pass_iv_canon): Convert from a global struct to a subclass of
10576 gimple_opt_pass along with...
10577 (pass_data_iv_canon): ...new pass_data instance and...
10578 (make_pass_iv_canon): ...new function.
10579 (pass_scev_cprop): Convert from a global struct to a subclass of
10580 gimple_opt_pass along with...
10581 (pass_data_scev_cprop): ...new pass_data instance and...
10582 (make_pass_scev_cprop): ...new function.
10583 (pass_record_bounds): Convert from a global struct to a subclass of
10584 gimple_opt_pass along with...
10585 (pass_data_record_bounds): ...new pass_data instance and...
10586 (make_pass_record_bounds): ...new function.
10587 (pass_complete_unroll): Convert from a global struct to a subclass of
10588 gimple_opt_pass along with...
10589 (pass_data_complete_unroll): ...new pass_data instance and...
10590 (make_pass_complete_unroll): ...new function.
10591 (pass_complete_unrolli): Convert from a global struct to a subclass of
10592 gimple_opt_pass along with...
10593 (pass_data_complete_unrolli): ...new pass_data instance and...
10594 (make_pass_complete_unrolli): ...new function.
10595 (pass_parallelize_loops): Convert from a global struct to a subclass
10596 of gimple_opt_pass along with...
10597 (pass_data_parallelize_loops): ...new pass_data instance and...
10598 (make_pass_parallelize_loops): ...new function.
10599 (pass_loop_prefetch): Convert from a global struct to a subclass of
10600 gimple_opt_pass along with...
10601 (pass_data_loop_prefetch): ...new pass_data instance and...
10602 (make_pass_loop_prefetch): ...new function.
10603 (pass_iv_optimize): Convert from a global struct to a subclass of
10604 gimple_opt_pass along with...
10605 (pass_data_iv_optimize): ...new pass_data instance and...
10606 (make_pass_iv_optimize): ...new function.
10607 (pass_tree_loop_done): Convert from a global struct to a subclass of
10608 gimple_opt_pass along with...
10609 (pass_data_tree_loop_done): ...new pass_data instance and...
10610 (make_pass_tree_loop_done): ...new function.
10611 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10612 struct to a subclass of gimple_opt_pass along with...
10613 (pass_data_cse_reciprocals): ...new pass_data instance and...
10614 (make_pass_cse_reciprocals): ...new function.
10615 (pass_cse_sincos): Convert from a global struct to a subclass of
10616 gimple_opt_pass along with...
10617 (pass_data_cse_sincos): ...new pass_data instance and...
10618 (make_pass_cse_sincos): ...new function.
10619 (pass_optimize_bswap): Convert from a global struct to a subclass of
10620 gimple_opt_pass along with...
10621 (pass_data_optimize_bswap): ...new pass_data instance and...
10622 (make_pass_optimize_bswap): ...new function.
10623 (pass_optimize_widening_mul): Convert from a global struct to a
10624 subclass of gimple_opt_pass along with...
10625 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10626 (make_pass_optimize_widening_mul): ...new function.
10627 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10628 subclass of gimple_opt_pass along with...
10629 (pass_data_phiopt): ...new pass_data instance and...
10630 (make_pass_phiopt): ...new function.
10631 (pass_cselim): Convert from a global struct to a subclass of
10632 gimple_opt_pass along with...
10633 (pass_data_cselim): ...new pass_data instance and...
10634 (make_pass_cselim): ...new function.
10635 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10636 subclass of gimple_opt_pass along with...
10637 (pass_data_phiprop): ...new pass_data instance and...
10638 (make_pass_phiprop): ...new function.
10639 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10640 subclass of gimple_opt_pass along with...
10641 (pass_data_pre): ...new pass_data instance and...
10642 (make_pass_pre): ...new function.
10643 (pass_fre): Convert from a global struct to a subclass of
10644 gimple_opt_pass along with...
10645 (pass_data_fre): ...new pass_data instance and...
10646 (make_pass_fre): ...new function.
10647 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10648 subclass of gimple_opt_pass along with...
10649 (pass_data_reassoc): ...new pass_data instance and...
10650 (make_pass_reassoc): ...new function.
10651 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10652 subclass of gimple_opt_pass along with...
10653 (pass_data_sink_code): ...new pass_data instance and...
10654 (make_pass_sink_code): ...new function.
10655 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10656 subclass of gimple_opt_pass along with...
10657 (pass_data_strlen): ...new pass_data instance and...
10658 (make_pass_strlen): ...new function.
10659 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10660 struct to a subclass of gimple_opt_pass along with...
10661 (pass_data_build_alias): ...new pass_data instance and...
10662 (make_pass_build_alias): ...new function.
10663 (pass_build_ealias): Convert from a global struct to a subclass of
10664 gimple_opt_pass along with...
10665 (pass_data_build_ealias): ...new pass_data instance and...
10666 (make_pass_build_ealias): ...new function.
10667 (pass_ipa_pta): Convert from a global struct to a subclass of
10668 simple_ipa_opt_pass along with...
10669 (pass_data_ipa_pta): ...new pass_data instance and...
10670 (make_pass_ipa_pta): ...new function.
10671 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10672 subclass of gimple_opt_pass along with...
10673 (pass_data_uncprop): ...new pass_data instance and...
10674 (make_pass_uncprop): ...new function.
10675 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10676 global struct to a subclass of gimple_opt_pass along with...
10677 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10678 (make_pass_late_warn_uninitialized): ...new function.
10679 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10680 to a subclass of gimple_opt_pass along with...
10681 (pass_data_init_datastructures): ...new pass_data instance and...
10682 (make_pass_init_datastructures): ...new function.
10683 (pass_early_warn_uninitialized): Convert from a global struct to a
10684 subclass of gimple_opt_pass along with...
10685 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10686 (make_pass_early_warn_uninitialized): ...new function.
10687 (pass_update_address_taken): Convert from a global struct to a
10688 subclass of gimple_opt_pass along with...
10689 (pass_data_update_address_taken): ...new pass_data instance and...
10690 (make_pass_update_address_taken): ...new function.
10691 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10692 struct to a subclass of gimple_opt_pass along with...
10693 (pass_data_release_ssa_names): ...new pass_data instance and...
10694 (make_pass_release_ssa_names): ...new function.
10695 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10696 subclass of gimple_opt_pass along with...
10697 (pass_data_stdarg): ...new pass_data instance and...
10698 (make_pass_stdarg): ...new function.
10699 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10700 global struct to a subclass of gimple_opt_pass along with...
10701 (pass_data_convert_switch): ...new pass_data instance and...
10702 (make_pass_convert_switch): ...new function.
10703 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10704 to a subclass of gimple_opt_pass along with...
10705 (pass_data_tail_recursion): ...new pass_data instance and...
10706 (make_pass_tail_recursion): ...new function.
10707 (pass_tail_calls): Convert from a global struct to a subclass of
10708 gimple_opt_pass along with...
10709 (pass_data_tail_calls): ...new pass_data instance and...
10710 (make_pass_tail_calls): ...new function.
10711 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10712 struct to a subclass of gimple_opt_pass along with...
10713 (pass_data_lower_vector): ...new pass_data instance and...
10714 (make_pass_lower_vector): ...new function.
10715 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10716 gimple_opt_pass along with...
10717 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10718 (make_pass_lower_vector_ssa): ...new function.
10719 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10720 to a subclass of gimple_opt_pass along with...
10721 (pass_data_slp_vectorize): ...new pass_data instance and...
10722 (make_pass_slp_vectorize): ...new function.
10723 (pass_ipa_increase_alignment): Convert from a global struct to a
10724 subclass of simple_ipa_opt_pass along with...
10725 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10726 (make_pass_ipa_increase_alignment): ...new function.
10727 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10728 gimple_opt_pass along with...
10729 (pass_data_vrp): ...new pass_data instance and...
10730 (make_pass_vrp): ...new function.
10731 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10732 subclass of simple_ipa_opt_pass along with...
10733 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10734 (make_pass_ipa_free_lang_data): ...new function.
10735 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10736 gimple_opt_pass along with...
10737 (pass_data_tsan): ...new pass_data instance and...
10738 (make_pass_tsan): ...new function.
10739 (pass_tsan_O0): Convert from a global struct to a subclass of
10740 gimple_opt_pass along with...
10741 (pass_data_tsan_O0): ...new pass_data instance and...
10742 (make_pass_tsan_O0): ...new function.
10743 * var-tracking.c (pass_variable_tracking): Convert from a global
10744 struct to a subclass of rtl_opt_pass along with...
10745 (pass_data_variable_tracking): ...new pass_data instance and...
10746 (make_pass_variable_tracking): ...new function.
10747 * web.c (pass_web): Convert from a global struct to a subclass of
10748 rtl_opt_pass along with...
10749 (pass_data_web): ...new pass_data instance and...
10750 (make_pass_web): ...new function.
10751 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10752 declaration with that of...
10753 (make_pass_mode_switch_use): ...new function.
10754 (pass_resolve_sw_modes): Replace declaration with that of...
10755 (make_pass_resolve_sw_modes): ...new function.
10756 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10757 from a global struct to a subclass of rtl_opt_pass along with...
10758 (pass_data_mode_switch_use): ...new pass_data instance and...
10759 (make_pass_mode_switch_use): ...new function.
10760 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10761 from a global struct to a subclass of rtl_opt_pass along with...
10762 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10763 (make_pass_resolve_sw_modes): ...new function.
10764 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10765 struct to a subclass of rtl_opt_pass along with...
10766 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10767 (make_pass_insert_vzeroupper): ...new function.
10768 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10769 global struct to a subclass of rtl_opt_pass along with...
10770 (pass_data_work_around_errata): ...new pass_data instance and...
10771 (make_pass_work_around_errata): ...new function.
10772 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10773 struct to a subclass of rtl_opt_pass along with...
10774 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10775 (make_pass_mips_machine_reorg2): ...new function.
10776
6a389ed5
DM
107772013-08-05 David Malcolm <dmalcolm@redhat.com>
10778
10779 * passes.c (pass_manager::operator new): New.
10780
f7695dbf
DM
107812013-08-05 David Malcolm <dmalcolm@redhat.com>
10782
10783 Handwritten part of conversion of passes to C++ classes.
10784
10785 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10786 (toplev.o): Add dep on PASS_MANAGER_H.
10787 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10788 of early local pases to reflect this moving from a global to a
10789 member of gcc::pass_manager.
10790 (cgraph_add_new_function): Likewise.
10791 * lto-cgraph.c (lto_output_node): Update for conversion of
10792 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10793 * passes.c (opt_pass::clone): New.
10794 (opt_pass::gate): New.
10795 (opt_pass::execute): New.
10796 (opt_pass::opt_pass): New.
10797 (pass_manager::execute_early_local_passes): New.
10798 (pass_manager::execute_pass_mode_switching): new.
10799 (finish_optimization_passes): Convert to...
10800 (pass_manager::finish_optimization_passes): ...this.
10801 (finish_optimization_passes): Update for conversion of passes to
10802 C++ classes.
10803 (register_dump_files_1): Use has_gate since we cannot portably
10804 check a vtable entry against NULL.
10805 (dump_one_pass): Likewise.
10806 (ipa_write_summaries_2): Likewise.
10807 (ipa_write_optimization_summaries_1): Likewise.
10808 (ipa_read_summaries_1): Likewise.
10809 (ipa_read_optimization_summaries_1): Likewise.
10810 (execute_ipa_stmt_fixups): Likewise.
10811 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10812 pass-creation functions rather than wiring up globals, and
10813 storing the results in fields of pass_manager generated using
10814 pass-instances.def.
10815 (pass_manager::dump_profile_report): Update for conversion of
10816 passes to C++ classes.
10817 (pass_manager::execute_ipa_summary_passes): Likewise.
10818 (execute_one_ipa_transform_pass): Likewise.
10819 (execute_one_pass): Use has_gate and has_execute since we cannot
10820 portably check a vtable entry against NULL.
10821 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10822 (pass_manager): Use pass-instances.def to add fields for the
10823 various pass instances.
10824 * toplev.c (finalize): Update for move of
10825 finish_optimization_passes to a method of gcc::pass_manager.
10826 * toplev.h (finish_optimization_passes): Move to method of class
10827 pass_manager.
10828 * tree-pass.h (struct pass_data): New.
03b0ee0a 10829 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
10830 (opt_pass::gate): Convert to virtual function.
10831 (opt_pass::~opt_pass): New.
10832 (opt_pass::clone): New.
10833 (opt_pass::execute): Convert to virtual function.
10834 (opt_pass::opt_pass): New.
10835 (opt_pass::ctxt_): new.
10836 (gimple_opt_pass): Convert to subclass of opt_pass.
10837 (gimple_opt_pass::gimple_opt_pass): New.
10838 (rtl_opt_pass): Convert to subclass of opt_pass.
10839 (rtl_opt_pass::rtl_opt_pass): New.
10840 (ipa_opt_pass_d): Convert to subclass of opt_pass.
10841 (ipa_opt_pass_d::ipa_opt_pass_d): New.
10842 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
10843 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
10844 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
10845 invocation of pass_mode_switching to reflect this moving from a
10846 global to a member of gcc::pass_manager.
10847 (ix86_option_override): Rework how pass_insert_vzeroupper is
10848 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 10849 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 10850
d0b2f831
RE
108512013-08-05 Richard Earnshaw <rearnsha@arm.com>
10852
10853 PR rtl-optimization/57708
10854 * recog.c (peep2_find_free_register): Validate all regs in a
10855 multi-reg mode.
10856
51a5c0c2
JH
108572013-08-05 Jan Hubicka <jh@suse.cz>
10858
10859 PR lto/57602
03b0ee0a
UB
10860 * cgraph.c (verify_cgraph_node): Accept local flags from other
10861 partitions.
51a5c0c2
JH
10862 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
10863 (function_and_variable_visibility): Likewise.
10864 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
10865
65f0a120
GDR
108662013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10867
10868 * graph.c (init_graph_slim_pretty_print): Remove.
10869 (print_graph_cfg): Do not call it. Use local pretty printer.
10870 (start_graph_dump): Likewise.
10871
b3f80694
GDR
108722013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10873
10874 * gimple-pretty-print.c (buffer): Remove.
10875 (initialized): Likewise.
10876 (maybe_init_pretty_print): Likewise.
10877 (print_gimple_stmt): Do not call it. Use non-static local
10878 pretty_printer variable.
10879 (print_gimple_expr): Likewise.
10880 (print_gimple_seq): Likewise.
10881 (gimple_dump_bb): Likewise.
10882
11a877b3
GDR
108832013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10884
10885 * asan.c (asan_pp): Remove.
10886 (asan_pp_initialized): Likewise.
10887 (asan_pp_initialize): Likewise.
10888 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
10889 (asan_emit_stack_protection): Tidy. Use local pretty printer.
10890 (asan_add_global): Likewise.
10891
b066401f
GDR
108922013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
10893
10894 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
10895 * diagnostic.h (diagnostic_flush_buffer): Adjust.
10896 * pretty-print.c (pp_formatted_text_data): Likewise.
10897 (pp_indent): Rename from pp_base_indent.
10898 (pp_format): Rename from pp_base_format.
10899 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
10900 (pp_format_verbatim): Rename from pp_base_format_verbatim.
10901 (pp_flush): Rename from pp_base_flush.
10902 (pp_set_line_maximum_length): Rename from
10903 pp_base_set_line_maximum_length.
10904 (pp_clear_output_area): Rename from pp_base_clear_output_area.
10905 (pp_set_prefix): Rename from pp_base_set_prefix.
10906 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
10907 (pp_emit_prefix): Rename from pp_base_emit_prefix.
10908 (pp_append_text): Rename from pp_base_append_text.
10909 (pp_formatted_text): Rename from pp_base_formatted_text.
10910 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
10911 (pp_remaining_character_count_for_line): Rename from
10912 pp_base_remaining_character_count_for_line.
10913 (pp_newline): Rename from pp_base_newline.
10914 (pp_character): Rename from pp_base_character.
10915 (pp_string): Rename from pp_base_string.
10916 (pp_maybe_space): Rename from pp_base_maybe_space.
10917 * asan.c (asan_pp_string): Adjust.
10918 (asan_emit_stack_protection): Likewise.
10919 (asan_add_global): Likewise.
10920 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
10921 * tree-mudflap.c (mf_varname_tree): Likewise.
10922 * tree-pretty-print.c (pp_tree_identifier): Rename from
10923 pp_base_tree_identifier.
10924 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
10925 Declare as function.
10926
137a1a27
GDR
109272013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10928
10929 * pretty-print.h (pp_bar_bar): New.
10930 (pp_ampersand_ampersand): Likewise.
10931 (pp_less_equal): Likewise.
10932 (pp_greater_equal): Likewise.
10933 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
10934 printer functions instead of pp_string or operators and punctuators.
10935 (dump_gimple_call): Likewise.
10936 (dump_gimple_omp_for): Likewise.
10937 (dump_gimple_transaction): Likewise.
10938 (dump_gimple_phi): Likewise.
10939 (pp_gimple_stmt_1): Likewise.
10940 * sched-vis.c (print_insn): Likewise.
10941 * tree-mudflap.c (mf_varname_tree): Likewise.
10942 * tree-pretty-print.c (dump_block_node): Likewise.
10943 (dump_generic_node): Likewise.
10944
815effe1
JH
109452013-08-02 Jan Hubicka <jh@suse.cz>
10946
10947 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
10948 boundaries.
10949 * lto-streamer-out.c (tree_is_indexable): Results decls and
10950 parm decls are not indexable.
10951 (DFS_write_tree_body): Do not follow args and results.
10952 (hash_tree): Likewise.
10953 (output_functions): Rearrange so struct function is needed
10954 only when real body is output; be able to also ouptut abstract
10955 functions; output DECL_ARGUMENTS and DECL_RESULT.
10956 (lto_output): When not in WPA, ale store abstract functions.
10957 (write_symbol): Do not care about RESULT_DECL.
10958 (output_symbol_p): Handle correctly sbtract decls.
10959 * lto-streamer-in.c (input_function): Rearrange so struct
10960 function can be NULL at entry; allow streaming of
10961 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
10962 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
10963 sanity check during LTO.
10964 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
10965 RESULT_DECl and DECL_ARGUMENTS.
10966 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
10967 Likewise.
10968
07838b13
GDR
109692013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10970
10971 * pretty-print.h (pp_underscore): New.
10972 (pp_comma): Tidy.
10973 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
10974 printer functions instead of pp_character.
10975 (dump_binary_rhs): Likewise.
10976 (dump_ternary_rhs): Likewise.
10977 (dump_gimple_call_args): Likewise.
10978 (pp_points_to_solution): Likewise.
10979 (dump_gimple_call): Likewise.
10980 (dump_gimple_switch): Likewise.
10981 (dump_gimple_cond): Likewise.
10982 (dump_gimple_bind): Likewise.
10983 (dump_gimple_try): Likewise.
10984 (dump_gimple_omp_for): Likewise.
10985 (dump_gimple_omp_continue): Likewise.
10986 (dump_gimple_omp_single): Likewise.
10987 (dump_gimple_omp_sections): Likewise.
10988 (dump_gimple_omp_block): Likewise.
10989 (dump_gimple_omp_critical): Likewise.
10990 (dump_gimple_transaction): Likewise.
10991 (dump_gimple_asm): Likewise.
10992 (dump_gimple_phi): Likewise.
10993 (dump_gimple_omp_parallel): Likewise.
10994 (dump_gimple_omp_task): Likewise.
10995 (dump_gimple_omp_atomic_load): Likewise.
10996 (dump_gimple_omp_atomic_store): Likewise.
10997 (dump_gimple_mem_ops): Likewise.
10998 (pp_gimple_stmt_1): Likewise.
10999 (pp_cfg_jump): Likewise.
11000 (dump_implicit_edges): Likewise.
11001 (gimple_dump_bb_for_graph): Likewise.
11002 * graph.c (draw_cfg_node): Likewise.
11003 * langhooks.c (lhd_print_error_function): Likewise.
11004 * sched-vis.c (print_exp): Likewise.
11005 (print_value): Likewise.
11006 (print_pattern): Likewise.
11007 (print_insn): Likewise.
11008 (rtl_dump_bb_for_graph): Likewise.
11009 * tree-pretty-print.c (dump_function_declaration): Likewise.
11010 (dump_array_domain): Likewise.
11011 (dump_omp_clause): Likewise.
11012 (dump_location): Likewise.
11013 (dump_generic_node): Likewise.
11014 (print_struct_decl): Likewise.
11015 * diagnostic.c (diagnostic_show_locus): Use pp_space.
11016
bb0d2039
BS
110172013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11018
11019 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
11020 candidate table when replacing a candidate statement.
11021 (replace_rhs_if_not_dup): Likewise.
11022 (replace_one_candidate): Likewise.
11023
bc0ec027 110242013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 11025 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
11026
11027 * cgraphunit.c (add_new_function): Fix logic when adding from
11028 late IPA pass.
11029 (assemble_thunk): Rename to ...
03b0ee0a
UB
11030 (expand_thunk); .. this one; export; get it working with
11031 general functions; make produced gimple valid.
bc0ec027
JH
11032 * cgraph.h (expand_thunk): Declare.
11033
0e8853ee
JH
110342013-08-02 Jan Hubicka <jh@suse.cz>
11035
03b0ee0a
UB
11036 * ipa-cp.c (gather_context_independent_values): Use
11037 ipa_get_param_move_cost.
11038 (get_replacement_map): Remove PARAM; move parameter folding
11039 into tree-inline.c
0e8853ee
JH
11040 (create_specialized_node): Update.
11041 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
11042 assert that we have gimple body; update move_cost.
11043 (count_formal_params): Assert that we have gimple body.
11044 (ipa_dump_param): New function.
11045 (ipa_alloc_node_params): Break out from ...
11046 (ipa_initialize_node_params): ... here.
11047 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
11048 (ipa_write_node_info): Stream move costs.
11049 (ipa_read_node_info): Read move costs.
11050 (ipa_update_after_lto_read): Do not recompute node params.
11051 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
11052 (ipa_get_param): Check we are not in WPA.
11053 (ipa_get_param_move_cost): New.
11054 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
11055 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
11056 parm numbers to be present.
11057
ecee672b
VM
110582013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11059
11060 PR rtl-optimization/58048
11061 * lra-constraints.c (process_alt_operands): Don't check asm
11062 operand on register.
11063
13ec0527
EB
110642013-08-02 Eric Botcazou <ebotcazou@adacore.com>
11065
11066 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
11067 the implied StoreLoad barrier for atomic operations if before.
11068
af15184a
JH
110692013-08-02 Jan Hubicka <jh@suse.cz>
11070 Martin Liska <marxin.liska@gmail.com>
11071
03b0ee0a
UB
11072 * cgraph.c (cgraph_function_body_availability): Do not check
11073 cgraph flags.
af15184a
JH
11074 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
11075 symtab_node_availability): Declare.
11076 * ipa.c (can_replace_by_local_alias): New.
11077 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11078 * symtab.c (symtab_for_node_and_aliases,
11079 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11080
01e54ef8
VM
110812013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11082
11083 PR rtl-optimization/57963
03b0ee0a 11084 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11085 (lra_constraints): Use them.
11086
e2fd7ca7
SN
110872013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11088
03b0ee0a
UB
11089 * config/arm/types.md (define_attr "type"): Add "load_acq"
11090 and "store_rel".
e2fd7ca7
SN
11091 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11092 changes.
11093 (cortex_a53_store1): Likewise.
11094
0dcc26c3
JH
110952013-08-01 Jan Hubicka <jh@suse.cz>
11096
03b0ee0a
UB
11097 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11098 partitions are not needed.
0dcc26c3 11099
0bd72901
UB
111002013-08-01 Uros Bizjak <ubizjak@gmail.com>
11101
11102 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11103 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11104 MAYBE_NON_Q_CLASS_P where appropriate.
11105
12123452
JH
111062013-08-01 Jan Hubicka <jh@suse.cz>
11107
11108 * cgraph.h (release_function_body): Declare.
11109 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11110 of unused delcarations.
11111
ce852f9c
KT
111122013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11113
03b0ee0a
UB
11114 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11115 RTL form when subtracting a constant.
ce852f9c 11116
c743b246
KT
111172013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11118
11119 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11120 Generate canonical plus rtx with negated immediate instead of minus
11121 where appropriate.
11122 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11123
c0c123ef
JH
111242013-08-01 Jan Hubicka <jh@suse.cz>
11125
11126 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11127 (cgraph_release_function_body): Likewise.
11128 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11129 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11130 to used_as_abstract_origin.
11131 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11132 symbols used as abstract origins.
11133 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11134 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11135 used_as_abstract_origin.
c0c123ef 11136 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11137 used_as_abstract_origin; be ready for DECL_RESULT and
11138 DECL_ARGUMENTS to be NULL.
c0c123ef 11139
0bd72901
UB
11140 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11141 for abstract functions.
11142 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11143 real symbols.
c0c123ef 11144
1f029433
JH
111452013-08-01 Jan Hubicka <jh@suse.cz>
11146
11147 * profile.c (compute_value_histograms): Fix thinko.
11148
c451f4d6
SN
111492013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11150
11151 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11152 aarch-common-protos.h to extra_headers.
11153 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11154 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11155 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11156
34b512f5
SN
111572013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11158
11159 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11160 Include "../arm/types.md". Define "type" attribute for all patterns.
11161 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11162 attribute changes.
11163
d86e633a
MM
111642013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11165
11166 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11167 to support power8 load fusion.
11168 (fusion_gpr_mem_load): Likewise.
11169
11170 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11171
11172 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11173 declarations for power8 load fusion.
11174 (emit_fusion_gpr_load): Likewise.
11175
11176 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11177 tuning for power8, turn on fusion mode by default. Turn on sign
11178 extending fusion mode if normal fusion mode is on, and we are at
11179 -O2 or -O3.
11180 (fusion_gpr_load_p): New function, return true if we can fuse an
11181 addis instruction with a dependent load to a GPR.
11182 (emit_fusion_gpr_load): Emit the instructions for power8 load
11183 fusion to GPRs.
11184
0bd72901 11185 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11186 (VSX load fusion peepholes): New peepholes to fuse together an
11187 addi instruction with a VSX load instruction.
11188
11189 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11190 peepholes to fuse an addis instruction with a load to a GPR base
11191 register. If we are supporting sign extending fusions, convert
11192 sign extending loads to zero extending loads and add an explicit
11193 sign extension.
11194
c3f35647
SN
111952013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11196
11197 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11198 aarch-common-protos.h to extra_headers.
11199 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11200 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11201 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11202 (arm_no_early_alu_shift_dep): Likewise.
11203 (arm_no_early_alu_shift_value_dep): Likewise.
11204 (arm_no_early_mul_dep): Likewise.
11205 (arm_no_early_store_addr_dep): Likewise.
11206 (arm_mac_accumulator_is_mul_result): Likewise.
11207 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11208 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11209 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11210 here to ...
c3f35647 11211 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11212 (arm_no_early_alu_shift_dep): Likewise.
11213 (arm_no_early_alu_shift_value_dep): Likewise.
11214 (arm_no_early_mul_dep): Likewise.
11215 (arm_no_early_store_addr_dep): Likewise.
11216 (arm_mac_accumulator_is_mul_result): Likewise.
11217 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11218 * config/arm/aarch-common-protos.h: ... here. New file.
11219 * config/arm/t-arm (aarch-common.o): Define.
11220
112212013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11222
11223 * config/arm/arm.md: Include new file "types.md".
11224 (define_attr "type"): Move from here to ...
11225 (define_attr "mul32"): Likewise.
11226 (define_attr "mul64"): Likewise.
11227 * config/arm/types.md: ... here. New file.
11228
228c1313
SH
112292013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11230
11231 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11232 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11233
d6e9046d 112342013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11235
11236 * gen-pass-instances.awk: Fix offset of substr().
11237
a167b052
DM
112382013-07-31 David Malcolm <dmalcolm@redhat.com>
11239
11240 * Makefile.in (pass-instances.def): New.
11241 (passes.o): Replace dependency on passes.def with one on
11242 pass-instances.def
11243
11244 * gen-pass-instances.awk: New.
11245
11246 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11247 rather than passes.def, updating local definition of NEXT_PASS
11248 macro to add an extra NUM parameter (currently unused).
11249
315f8c0e
DM
112502013-07-30 David Malcolm <dmalcolm@redhat.com>
11251
11252 * Makefile.in (PASS_MANAGER_H): New.
11253 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11254 (passes.o): Likewise.
11255 (statistics.o): Likewise.
11256 (cgraphunit.o): Likewise.
11257 (context.o): Depend on PASS_MANAGER_H.
11258
11259 * pass_manager.h: New.
11260
11261 * cgraphunit.c (cgraph_add_new_function): Update for moves
11262 of globals to fields of pass_manager.
11263 (analyze_function): Likewise.
11264 (expand_function): Likewise.
11265 (ipa_passes): Likewise.
11266 (compile): Likewise.
11267
11268 * context.c (context::context): New.
11269 * context.h (context::context): New.
11270 (context::get_passes): New.
11271 (context::passes_): New.
11272
11273 * lto-cgraph.c (input_node): Update for moves of globals to
11274 fields of pass_manager.
11275
11276 * passes.c (all_passes): Remove, in favor of a field of the
11277 same name within the new class pass_manager.
11278 (all_small_ipa_passes): Likewise.
11279 (all_lowering_passes): Likewise.
11280 (all_regular_ipa_passes): Likewise.
11281 (all_late_ipa_passes): Likewise.
11282 (all_lto_gen_passes): Likewise.
11283 (passes_by_id): Likewise.
11284 (passes_by_id_size): Likewise.
11285 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11286 the new class pass_manager.
11287 (set_pass_for_id): Convert to...
11288 (pass_manager::set_pass_for_id): ...method.
11289 (get_pass_for_id): Convert to...
11290 (pass_manager::get_pass_for_id): ...method.
11291 (register_one_dump_file): Move body of implementation into...
11292 (pass_manager::register_one_dump_file): ...here.
11293 (register_dump_files_1): Convert to...
11294 (pass_manager::register_dump_files_1): ...method.
11295 (register_dump_files): Convert to...
11296 (pass_manager::register_dump_files): ...method.
11297 (create_pass_tab): Update for moves of globals to fields of
11298 pass_manager.
11299 (dump_passes): Move body of implementation into...
11300 (pass_manager::dump_passes): ...here.
11301 (register_pass): Move body of implementation into...
11302 (pass_manager::register_pass): ...here.
11303 (init_optimization_passes): Convert into...
11304 (pass_manager::pass_manager): ...constructor for new
11305 pass_manager class, and initialize the pass_lists array.
11306 (check_profile_consistency): Update for moves of globals to
11307 fields of pass_manager.
11308 (dump_profile_report): Move body of implementation into...
11309 (pass_manager::dump_profile_report): ...here.
11310 (ipa_write_summaries_1): Update for moves of pass lists from
11311 being globals to fields of pass_manager.
11312 (ipa_write_optimization_summaries): Likewise.
11313 (ipa_read_summaries): Likewise.
11314 (ipa_read_optimization_summaries): Likewise.
11315 (execute_all_ipa_stmt_fixups): Likewise.
11316
11317 * statistics.c (statistics_fini): Update for moves of globals to
11318 fields of pass_manager.
11319
11320 * toplev.c (general_init): Replace call to
11321 init_optimization_passes with construction of the pass_manager
11322 instance.
11323
11324 * tree-pass.h (all_passes): Remove, in favor of a field of the
11325 same name within the new class pass_manager.
11326 (all_small_ipa_passes): Likewise.
11327 (all_lowering_passes): Likewise.
11328 (all_regular_ipa_passes): Likewise.
11329 (all_lto_gen_passes): Likewise.
11330 (all_late_ipa_passes): Likewise.
11331 (passes_by_id): Likewise.
11332 (passes_by_id_size): Likewise.
11333 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11334 the new class pass_manager.
11335 (get_pass_for_id): Remove.
11336
02cab1c1
RE
113372013-07-30 Richard Earnshaw <rearnsha@arm.com>
11338
11339 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11340 configs.
11341
b2d3f886
RE
113422013-07-30 Richard Earnshaw <rearnsha@arm.com>
11343
11344 * arm.md (mulhi3): New expand pattern.
11345
605e86fa
JH
113462013-07-30 Jan Hubicka <jh@suse.cz>
11347 Martin Liska <marxin.liska@gmail.com>
11348
11349 * profile.c (compute_value_histograms): Do not ICE when
11350 there is mismatch only on some counters.
11351
14a87636
ZC
113522013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11353
11354 PR rtl-optimization/57637
11355 * function.c (move_insn_for_shrink_wrap): Also check the
11356 GEN set of the LIVE problem for the liveness analysis
11357 if it exists, otherwise give up.
11358
0100cd3f
BS
113592013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11360
11361 PR tree-optimization/57993
11362 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11363 replaced statement in the candidate table.
11364 (phi_add_costs): Return infinite cost when the hidden basis does
11365 not dominate all phis on which the candidate is dependent.
11366 (replace_one_candidate): Record replaced statement in the
11367 candidate table.
11368
f0d811f7
JR
113692013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11370
11371 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11372 (ashlv2si3): New expander.
11373 (*ashlv2si3_i): New define_insn_and_split.
11374 * predicates.md (float_operation): Allow patterns with three
11375 basic sub-patterns.
11376
bba33211
JR
11377 PR rtl-optimization/58021
11378 * mode-switching.c (create_pre_exit): Always split off preceding
11379 insns if we are not at the basic block head.
11380
ff3f3951
MR
113812013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11382
11383 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11384 (UCLIBC_DYNAMIC_LINKER): New macro.
11385 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11386 `-mnan=2008'.
11387 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11388 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11389 `-mnan=2008'.
11390 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11391 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11392 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11393 for SF and DF modes. Use ieee_quad_format for TF mode.
11394 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11395 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11396 (mips_option_override): Handle `-mnan=legacy'.
11397 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11398 `-mabs=2008' and `-mnan=2008'.
11399 (OPTION_DEFAULT_SPECS): Add "nan" default.
11400 (ASM_SPEC): Handle `-mnan='.
11401 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11402 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11403 comment accordingly.
11404 (neg<mode>2): Likewise.
11405 * config/mips/mips.opt (mabs, mnan): New options.
11406 * doc/install.texi (Configuration): Document `--with-nan=' option.
11407 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11408 `-mnan=' options.
11409 (MIPS Options): Document them.
11410 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11411 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11412 * configure: Regenerate.
11413 * config.in: Regenerate.
11414
576e2f37
UB
114152013-07-29 Uros Bizjak <ubizjak@gmail.com>
11416
11417 * config/i386/i386.md (float post-reload splitters): Do not check
11418 for subregs of SSE registers.
11419
114202013-07-29 Uros Bizjak <ubizjak@gmail.com>
11421 H.J. Lu <hongjiu.lu@intel.com>
11422
11423 PR target/57954
11424 PR target/57988
11425 * config/i386/i386.md (post-reload splitter
11426 to avoid partial SSE reg dependency stalls): New pattern.
11427
a71f0749
DV
114282013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11429
11430 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11431
4c97f1cc
JR
114322013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11433
11434 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11435 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11436
b0c733d8
CC
114372013-07-26 Cary Coutant <ccoutant@google.com>
11438
11439 * dwarf2out.c (die_checksum_ordered): Don't include template
11440 instantiations in signature.
11441 (is_template_parameter): New function.
11442 (is_template_instantiation): New function.
11443 (generate_skeleton_bottom_up): Don't include template instantiations
11444 in type unit DIE.
11445 (generate_skeleton): Likewise.
11446 (break_out_comdat_types): Move recursive call to break out nested
11447 types earlier.
11448 (prune_unused_types_mark_generic_parms_dies): Call
11449 is_template_parameter.
11450
040d8a1c
IB
114512013-07-26 Ian Bolton <ian.bolton@arm.com>
11452
11453 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11454 uses vector registers.
89fdc743 11455 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11456
85bd4ac6 114572013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11458 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11459
11460 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11461 where appropriate.
85bd4ac6
KT
11462 * config/arm/arm.md (movcond_addsi): New splitter.
11463
b6051207
SA
114642013-07-25 Sterling Augustine <saugustine@google.com>
11465
11466 * dwarf2out.c (size_of_pubnames): Move code to...
11467 (include_pubname_in_output): ...here. New.
11468 (want_pubnames): Rearrange.
11469 (output_pubnames): Call include_pubname_in_output. Move assertion.
11470
41a7c215
CM
114712013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11472
11473 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11474
114752013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11476
11477 PR target/38836
11478 * doc/extend.texi: Remove obsolete builtins. Fix
11479 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11480
49bde175
JH
114812013-07-25 Jan Hubicka <jh@suse.cz>
11482
11483 * cgraph.c (release_function_body): Break out from ...
11484 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11485 and DECL_ARGUMENTS.
11486 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11487 old_tree in the map.
11488 (create_specialized_node): Update.
11489 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11490 into index.
41a7c215
CM
11491 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11492 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11493 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11494 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11495 DECL_RESULT.
11496
4870352d
KT
114972013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11498
11499 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11500 addsi3_carryin_alt2_<optab>): Correct output template.
11501
1d6aee1c
KT
115022013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11503
11504 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11505 Adjust for arm_restrict_it.
11506 Remove trailing whitespace.
11507
c7cafd75
MK
115082013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11509
017d38f5
MK
11510 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11511 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11512
c7cafd75
MK
11513 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11514
00b7527b
VM
115152013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11516
11517 PR rtl-optimization/57960
11518 * lra-constraints.c (process_alt_operands): Use the right mode
11519 when checking strict_low.
11520
4f63dfc6
JH
115212013-07-25 Jan Hubicka <jh@suse.cz>
11522
11523 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11524 * cgraph.c (cgraph_remove_node): Do not release function body
11525 when in cgraph streaming.
11526 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11527 in other partitions are not considered reachable; fix handling of
11528 clones.
4f63dfc6 11529
e6dcfa18
RR
115302013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11531
11532 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11533
0b93d3b6
RR
115342013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11535
11536 PR target/19599
11537 PR target/57731
bb80c2eb 11538 PR target/57837
e6dcfa18 11539 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11540 Ss with US. Adjust output for v5 and v4t.
41a7c215 11541 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11542
0b93d3b6
RR
11543 * config/arm/constraints.md ("Ss"): Rename to US.
11544
690688b3
TG
115452013-07-25 Terry Guo <terry.guo@arm.com>
11546
11547 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11548 shift_add/shift_sub0/shift_sub1 RTXs.
11549
a4ad093b 115502013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11551 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11552
11553 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11554 (altivec_vpks<VI_char>ss): Likewise.
11555 (altivec_vpks<VI_char>us): Likewise.
11556 (altivec_vpku<VI_char>us): Likewise.
11557 (altivec_vpku<VI_char>um): Likewise.
11558
8c5005ce
DM
115592013-07-24 David Malcolm <dmalcolm@redhat.com>
11560
11561 Introduce context class.
11562
11563 * Makefile.in (CONTEXT_H): New.
11564 (OBJS): Add context.o.
11565 (toplev.o): Add CONTEXT_H to dependencies.
11566 (context.o): New.
11567
41a7c215 11568 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11569
11570 * context.c: New.
11571
11572 * context.h: New.
11573
ce4a9422
JR
115742013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11575
11576 PR rtl-optimization/57968
11577 * mode-switching.c (create_pre_exit): Allow instructions that
11578 don't set a return register to need a non-exit mode.
11579
493f4c9e 115802013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11581 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11582
b5860fd3
WS
11583 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11584 operands to vperm for little endian.
11585 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11586 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11587
73792b92 115882013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11589 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11590
11591 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11592 two operands for little-endian.
11593
14c21302
SE
115942013-07-23 Steve Ellcey <sellcey@mips.com>
11595
11596 * config/mips/mips.c (mips_case_values_threshold): New.
11597 (TARGET_CASE_VALUES_THRESHOLD): Define.
11598
a6056198 115992013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11600 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11601
11602 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11603 selection of field for vector splat in little endian mode.
11604
dd7a40e1
MM
116052013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11606
11607 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11608 expanders to rs6000.md.
11609 (ior<mode>3): Likewise.
11610 (and<mode>3): Likewise.
11611 (one_cmpl<mode>2): Likewise.
11612 (nor<mode>3): Likewise.
11613 (andc<mode>3): Likewise.
11614 (eqv<mode>3): Likewise.
11615 (nand<mode>3): Likewise.
11616 (orc<mode>3): Likewise.
11617
11618 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11619 declaration.
11620
11621 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11622 to split multi-word logical operations.
11623 (rs6000_split_logical_di): Likewise.
11624 (rs6000_split_logical): Likewise.
11625
11626 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11627 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11628 and allow TImode operations in 32-bit.
11629 (vsx_and<mode>3_64bit): Likewise.
11630 (vsx_ior<mode>3_32bit): Likewise.
11631 (vsx_ior<mode>3_64bit): Likewise.
11632 (vsx_xor<mode>3_32bit): Likewise.
11633 (vsx_xor<mode>3_64bit): Likewise.
11634 (vsx_one_cmpl<mode>2_32bit): Likewise.
11635 (vsx_one_cmpl<mode>2_64bit): Likewise.
11636 (vsx_nor<mode>3_32bit): Likewise.
11637 (vsx_nor<mode>3_64bit): Likewise.
11638 (vsx_andc<mode>3_32bit): Likewise.
11639 (vsx_andc<mode>3_64bit): Likewise.
11640 (vsx_eqv<mode>3_32bit): Likewise.
11641 (vsx_eqv<mode>3_64bit): Likewise.
11642 (vsx_nand<mode>3_32bit): Likewise.
11643 (vsx_nand<mode>3_64bit): Likewise.
11644 (vsx_orc<mode>3_32bit): Likewise.
11645 (vsx_orc<mode>3_64bit): Likewise.
11646
11647 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11648 logical types in GPRs.
11649
11650 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11651 logical insns to rs6000.md, and allow TImode operations in
11652 32-bit.
11653 (altivec_ior<mode>3): Likewise.
11654 (altivec_xor<mode>3): Likewise.
11655 (altivec_one_cmpl<mode>2): Likewise.
11656 (altivec_nor<mode>3): Likewise.
11657 (altivec_andc<mode>3): Likewise.
11658
11659 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11660 attributes for moving the 128-bit logical operations into
11661 rs6000.md.
11662 (BOOL_REGS_OUTPUT): Likewise.
11663 (BOOL_REGS_OP1): Likewise.
11664 (BOOL_REGS_OP2): Likewise.
11665 (BOOL_REGS_UNARY): Likewise.
11666 (BOOL_REGS_AND_CR0): Likewise.
11667 (one_cmpl<mode>2): Add support for DI logical operations on
11668 32-bit, splitting the operations to 32-bit.
11669 (anddi3): Likewise.
11670 (iordi3): Likewise.
11671 (xordi3): Likewise.
11672 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11673 changes to combine the 32/64-bit code, allow logical operations on
11674 TI mode in 32-bit, and to use similar match_operator patterns like
11675 scalar mode uses. Combine the Altivec and VSX code for logical
11676 operations, and move it here.
11677 (ior<mode>3, 128-bit types): Likewise.
11678 (xor<mode>3, 128-bit types): Likewise.
11679 (one_cmpl<mode>3, 128-bit types): Likewise.
11680 (nor<mode>3, 128-bit types): Likewise.
11681 (andc<mode>3, 128-bit types): Likewise.
11682 (eqv<mode>3, 128-bit types): Likewise.
11683 (nand<mode>3, 128-bit types): Likewise.
11684 (orc<mode>3, 128-bit types): Likewise.
11685 (and<mode>3_internal): Likewise.
11686 (bool<mode>3_internal): Likewise.
11687 (boolc<mode>3_internal1): Likewise.
11688 (boolc<mode>3_internal2): Likewise.
11689 (boolcc<mode>3_internal1): Likewise.
11690 (boolcc<mode>3_internal2): Likewise.
11691 (eqv<mode>3_internal1): Likewise.
11692 (eqv<mode>3_internal2): Likewise.
11693 (one_cmpl1<mode>3_internal): Likewise.
11694
12211b99 116952013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11696
11697 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11698 Rename flag_stack_usage to flag_stack_usage_info.
11699
12211b99 117002013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11701
a5f257fd
ME
11702 * config/microblaze/sync.md: New file.
11703 * config/microblaze/microblaze.md: Include sync.md
11704 * config/microblaze/microblaze.c: Add print_operand 'y'.
11705 * config/microblaze/constraints.md: Add memory_contraint
11706 'Q' which is a single register.
450b0ebb 11707
49fba14f
EB
117082013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11709
11710 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11711
c7b3b99f
PCC
117122013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11713
11714 * reload.c (find_reloads): Exit loop once we find this operand
11715 cannot be reloaded somehow for this alternative.
11716
11717 * reload.c (find_reloads): Exit loop once we find a hard register.
11718
11719 * rtlanal.c (computed_jump_p): Exit loop once we find label
11720 reference is used.
11721
11722 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11723
11724 * cfgloopmanip.c (remove_path): Exit loop after setting
11725 irred_invalidated.
11726
11727 * gensupport.c (subst_dup): Avoid loop if code is not
11728 MATCH_DUP nor MATCH_OP_DUP.
11729
c8fbf1fa
NBJ
117302013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11731
11732 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11733
9259db42
YZ
117342013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11735
11736 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11737 true for SP_REGNUM if mode == ptr_mode.
11738 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11739 with value R0_REGNUM + 31.
11740
00edcfbe
YZ
117412013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11742
11743 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11744 pad pointer-typed argument downward.
11745
43be9a95
YZ
117462013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11747
11748 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11749 and __ILP32__ when the ILP32 model is in use.
11750
28514dda
YZ
117512013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11752
11753 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11754 (aarch64_load_symref_appropriately): In the case of
11755 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11756 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11757 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11758 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11759 if 'mode' doesn't equal to 'ptr_mode'.
11760 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11761 'vcall_offset'; change to call aarch64_emit_move differently depending
11762 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11763 to calculate the upper bound of 'vcall_offset'.
11764 (aarch64_cannot_force_const_mem): Change to also return true if
11765 mode != ptr_mode.
11766 (aarch64_legitimize_reload_address): In the case of large
11767 displacements, add new local variable 'xmode' and an assertion
11768 based on it; change to use 'xmode' to generate the new rtx and
11769 reload.
11770 (aarch64_asm_trampoline_template): Change to generate the template
11771 differently depending on TARGET_ILP32 or not; change to use
11772 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11773 (aarch64_trampoline_size): Removed.
11774 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11775 and replace immediate literals with it. Change to use 'ptr_mode'
11776 instead of 'DImode' and call convert_memory_address if the mode
11777 of 'fnaddr' doesn't equal to 'ptr_mode'.
11778 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11779 to output symbol.
11780 (aarch64_elf_asm_destructor): Likewise.
11781 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11782 on TARGET_ILP32 instead of aarch64_trampoline_size.
11783 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11784 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11785 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11786 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11787 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11788 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11789 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11790 depending on the value of 'mode'.
11791 (add_losym_<mode>): New.
11792 (ldr_got_small_<mode>): New, based on ldr_got_small.
11793 (ldr_got_small): Remove.
11794 (ldr_got_small_sidi): New.
11795 * config/aarch64/iterators.md (P): New.
11796 (PTR): Change to 'ptr_mode' in the condition.
11797
17a819cb
YZ
117982013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11799
11800 * config.gcc (aarch64*-*-*): Support --with-abi.
11801 (aarch64*-*-elf): Support --with-multilib-list.
11802 (aarch64*-*-linux*): Likewise.
11803 (supported_defaults): Add abi to aarch64*-*-*.
11804 * configure.ac: Mention AArch64 for --with-multilib-list.
11805 * configure: Re-generated.
11806 * config/aarch64/biarchilp32.h: New file.
11807 * config/aarch64/biarchlp64.h: New file.
11808 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11809 (ABI_SPEC): Ditto.
11810 (MULTILIB_DEFAULTS): Ditto.
11811 (DRIVER_SELF_SPECS): Ditto.
11812 (ASM_SPEC): Update to also substitute -mabi.
11813 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11814 file whose name depends on -mabi= and -mbig-endian.
11815 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11816 TARGET_ILP32.
11817 (POINTER_SIZE): New define.
11818 (POINTERS_EXTEND_UNSIGNED): Ditto.
11819 (enum aarch64_abi_type): New enumeration tag.
11820 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11821 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11822 (TARGET_ILP32): New define.
11823 * config/aarch64/aarch64.opt (mabi): New.
11824 (aarch64_abi): New.
11825 (ilp32, lp64): New values for -mabi.
11826 * config/aarch64/t-aarch64 (comma): New define.
11827 (MULTILIB_OPTIONS): Ditto.
11828 (MULTILIB_DIRNAMES): Ditto.
11829 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11830 * doc/invoke.texi: Document -mabi for AArch64.
11831
9f9cbdce
GJL
118322013-07-23 Georg-Johann Lay <avr@gjlay.de>
11833
11834 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11835
7061977b 118362013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11837 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
11838
11839 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
11840 endianness when selecting field to splat.
11841
75a41878
EC
118422013-07-22 Eric Christopher <echristo@gmail.com>
11843
11844 * dwarf2out.c (die_odr_checksum): New function to use
11845 CHECKSUM_ macros and ULEB128 for DIE tag.
11846 (generate_type_signature): Use.
41a7c215 11847
38ae58ca
EB
118482013-07-22 Eric Botcazou <ebotcazou@adacore.com>
11849
11850 * config.gcc (sparc*-*-*): Accept leon3 processor.
11851 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
11852 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
11853 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
11854 * config/sparc/sparc.opt (enum processor_type): Add leon3.
11855 (mfix-ut699): Adjust comment.
11856 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
11857 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
11858 (CPP_CPU_SPEC): Likewise.
11859 (ASM_CPU_SPEC): Likewise.
11860 * config/sparc/sparc.c (leon3_cost): New constant.
11861 (sparc_option_override): Add leon3 support.
11862 (mem_ref): New function.
11863 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
11864 (sparc_do_work_around_errata): Look into the instruction in the delay
11865 slot and adjust accordingly. Add fix for the data cache nullify issues
11866 of the UT699. Change insertion position for the NOP.
11867 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
11868 (leon3_load): New reservation.
11869 (leon_store): Bump latency to 2.
11870 (grfpu): New automaton.
11871 (grfpu_alu): New unit.
11872 (grfpu_ds): Likewise.
11873 (leon_fp_alu): Adjust.
11874 (leon_fp_mult): Delete.
11875 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
11876 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
11877 * config/sparc/sparc.md (cpu): Add leon3.
11878 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
11879 (swapsi): Likewise.
11880 (atomic_test_and_set): Likewise.
11881 (ldstub): Likewise.
11882
04dfc6df
JU
118832013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
11884
11885 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
11886 default for R5900 targets.
11887 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
11888 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
11889 * config/mips/mips.c (mips_option_override): Report an error for
11890 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
11891 for -march=r5900 -mhard-float.
11892
c7b3b99f 118932013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
11894
11895 * df-problems.c (can_move_insns_across): Exit loop once we
11896 find a non-fixed, non-global register.
11897
11898 * ipa-pure-const.c (propagate_nothrow): Exit loop after
11899 setting can_throw.
11900
11901 * omega.c (omega_eliminate_red): Break after setting red_found.
11902 (omega_problem_has_red_equations): Similarly after setting found.
11903 (omega_query_variable): Similarly after setting coupled.
11904
9b6e6981
MP
119052013-07-22 Marek Polacek <polacek@redhat.com>
11906
11907 * gimplify.c: Don't include gimple.h twice.
11908
5e5f7673
KT
119092013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11910
11911 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
11912 instead of TARGET_THUMB1.
11913 (Pz): New constraint.
11914 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
11915 encodings.
11916 (compare_negsi_si): Likewise.
11917 (compare_addsi2_op0): Likewise.
11918 (compare_addsi2_op1): Likewise.
11919 (addsi3_carryin_<optab>): Likewise.
11920 (addsi3_carryin_alt2_<optab>): Likewise.
11921 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
11922 for arm_restrict_it.
11923 (subsi3_carryin): Likewise.
11924 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
11925 (minmax_arithsi): Disable for arm_restrict_it.
11926 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
11927 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
11928 (satsi_<SAT:code>_shift): Likewise.
11929 (arm_shiftsi3): Add alternative for 16-bit encoding.
11930 (arm32_movhf): Disable for arm_restrict_it.
11931 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
11932 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
11933
859abddd
SN
119342013-07-22 Sofiane Naci <sofiane.naci@arm.com>
11935
11936 * config/arm/arm.md (attribute "insn"): Delete.
11937 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
11938 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
11939 (not_shiftsi): Update for attribute change.
11940 (not_shiftsi_compare0): Likewise.
11941 (not_shiftsi_compare0_scratch): Likewise.
11942 (arm_one_cmplsi2): Likewise.
11943 (thumb1_one_cmplsi2): Likewise.
11944 (notsi_compare0): Likewise.
11945 (notsi_compare0_scratch): Likewise.
11946 (thumb1_movdi_insn): Likewise.
11947 (arm_movsi_insn): Likewise.
11948 (movhi_insn_arch4): Likewise.
11949 (movhi_bytes): Likewise.
11950 (arm_movqi_insn): Likewise.
11951 (thumb1_movqi_insn): Likewise.
11952 (arm32_movhf): Likewise.
11953 (thumb1_movhf): Likewise.
11954 (arm_movsf_soft_insn): Likewise.
11955 (thumb1_movsf_insn): Likewise.
11956 (thumb_movdf_insn): Likewise.
11957 (movsicc_insn): Likewise.
11958 (movsfcc_soft_insn): Likewise.
11959 (and_scc): Likewise.
11960 (cond_move): Likewise.
11961 (if_move_not): Likewise.
11962 (if_not_move): Likewise.
11963 (if_shift_move): Likewise.
11964 (if_move_shift): Likewise.
11965 (if_shift_shift): Likewise.
11966 (if_not_arith): Likewise.
11967 (if_arith_not): Likewise.
11968 (cond_move_not): Likewise.
11969 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
11970 (neon_mov<mode>): Likewise.
11971 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
11972 (thumb2_movsi_vfp): Likewise.
11973 (movsf_vfp): Likewise.
11974 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
11975 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11976 change.
859abddd
SN
11977 (cortexa7_older_only): Likewise.
11978 (cortexa7_younger): Likewise.
11979 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
11980 (1020alu_shift_op): Likewise.
11981 (1020alu_shift_reg_op): Likewise.
11982 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
11983 (alu_shift_op): Likewise.
11984 (alu_shift_reg_op): Likewise.
11985 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
11986 (11_alu_shift_op): Likewise.
11987 (11_alu_shift_reg_op): Likewise.
11988 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
11989 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11990 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11991 change.
859abddd
SN
11992 (cortex_a15_alu_shift): Likewise.
11993 (cortex_a15_alu_shift_reg): Likewise.
11994 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
11995 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
11996 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
11997 change.
859abddd 11998 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
11999 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12000 change.
859abddd
SN
12001 (cortex_a7_alu_reg): Likewise.
12002 (cortex_a7_alu_shift): Likewise.
12003 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12004 (cortex_a8_alu_shift): Likewise.
12005 (cortex_a8_alu_shift_reg): Likewise.
12006 (cortex_a8_mov): Likewise.
12007 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
12008 (cortex_a9_dp_shift): Likewise.
12009 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
12010 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
12011 (cortex_r4_mov): Likewise.
12012 (cortex_r4_alu_shift): Likewise.
12013 (cortex_r4_alu_shift_reg): Likewise.
12014 * config/arm/fa526.md (526_alu_op): Update for attribute change.
12015 (526_alu_shift_op): Likewise.
12016 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
12017 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
12018 (626te_alu_shift_op): Likewise.
12019 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
12020 (726te_alu_op): Likewise.
12021 (726te_alu_shift_op): Likewise.
12022 (726te_alu_shift_reg_op): Likewise.
12023 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
12024 (mp626_alu_shift_op): Likewise.
12025 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
12026 (pj4_alu_e1_conds): Likewise.
12027 (pj4_alu): Likewise.
12028 (pj4_alu_conds): Likewise.
12029 (pj4_shift): Likewise.
12030 (pj4_shift_conds): Likewise.
12031 (pj4_alu_shift): Likewise.
12032 (pj4_alu_shift_conds): Likewise.
12033
95b97fac
KT
120342013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12035
12036 * config/arm/predicates.md (shiftable_operator_strict_it):
12037 New predicate.
12038 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
12039 Disable cond_exec version for arm_restrict_it.
12040 (thumb2_smaxsi3): Convert to generate cond_exec.
12041 (thumb2_sminsi3): Likewise.
12042 (thumb32_umaxsi3): Likewise.
12043 (thumb2_uminsi3): Likewise.
12044 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
12045 (thumb2_neg_abssi2): Likewise.
12046 (thumb2_mov_scc): Add alternative for 16-bit encoding.
12047 (thumb2_movsicc_insn): Adjust alternatives.
12048 (thumb2_mov_negscc): Disable for arm_restrict_it.
12049 (thumb2_mov_negscc_strict_it): New pattern.
12050 (thumb2_mov_notscc_strict_it): New pattern.
12051 (thumb2_mov_notscc): Disable for arm_restrict_it.
12052 (thumb2_ior_scc): Likewise.
12053 (thumb2_ior_scc_strict_it): New pattern.
12054 (thumb2_cond_move): Adjust for arm_restrict_it.
12055 (thumb2_cond_arith): Disable for arm_restrict_it.
12056 (thumb2_cond_arith_strict_it): New pattern.
12057 (thumb2_cond_sub): Adjust for arm_restrict_it.
12058 (thumb2_movcond): Likewise.
12059 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
12060 (thumb2_zero_extendhisi2_v6): Likewise.
12061 (thumb2_zero_extendqisi2_v6): Likewise.
12062 (orsi_notsi_si): Likewise.
12063 (orsi_not_shiftsi_si): Likewise.
12064
d5a6ef82
GJL
120652013-07-22 Georg-Johann Lay <avr@gjlay.de>
12066
12067 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
12068 instruction sequence is 1 byte shorter.
12069
d9e71154
UB
120702013-07-22 Uros Bizjak <ubizjak@gmail.com>
12071
12072 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
12073 it is not needed after split.
12074
8c6381ec
IS
120752013-07-20 Iain Sandoe <iain@codesourcery.com>
12076
12077 PR target/51784
12078 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12079 second label for nonlocal goto receivers. Don't output pic base labels
12080 unless we're producing PIC; mark that action unreachable().
12081 (ix86_save_reg): If the function contains a nonlocal label, save the
12082 PIC base reg.
12083 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12084 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12085 (update_pic_label_number_if_needed): New.
12086 (machopic_output_function_base_name): Adjust for nonlocal receiver
12087 case.
12088 (machopic_should_output_picbase_label): New.
12089 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12090 (nonlocal_goto_receiver): New insn and split.
12091
d05d0709
JG
120922013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12093
12094 * config/aarch64/aarch64-builtins.c
12095 (aarch64_fold_builtin): Fold abs in all modes.
12096 * config/aarch64/aarch64-simd-builtins.def
12097 (abs): Enable for all modes.
12098 * config/aarch64/arm_neon.h
12099 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12100 (vabs_f64): Add missing intrinsic.
12101
ba590e63
IB
121022013-07-19 Ian Bolton <ian.bolton@arm.com>
12103
12104 * config/aarch64/arm_neon.h (vabs_s64): New function
12105
02371798
GJL
121062013-07-19 Georg-Johann Lay <avr@gjlay.de>
12107
12108 PR target/57516
12109 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12110 * config/avr/avr.md (adjust_len): Add `round'.
12111 * config/avr/avr-protos.h (avr_out_round): New prototype.
12112 (avr_out_plus): Add `out_label' argument.
12113 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12114 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12115 Handle the case where `insn' is just a pattern.
12116 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12117 (avr_out_round): New function.
12118 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12119
12211b99 121202013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12121
12122 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12123 Add check for flag_stack_usage to handle -fstack-usage support
12124
12211b99 121252013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12126
12127 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12128 interaction for new Power8 flags and VSX.
12129
df9dda2d
ST
121302013-07-18 Sriraman Tallam <tmsriram@google.com>
12131
12132 PR middle-end/57698
12133 * tree-inline.c (expand_call_inline): Emit errors during
12134 early_inlining only if optimization is not turned on.
12135
0f9cdef4
DM
121362013-07-18 David Malcolm <dmalcolm@redhat.com>
12137
12138 * passes.def: New.
12139
12140 * passes.c (init_optimization_passes): Move the construction of
12141 the pass hierarchy into a new passes.def file.
12142
12143 * Makefile.in (passes.o): Add dependency on passes.def.
12144
2efa4087
DM
121452013-07-18 David Malcolm <dmalcolm@redhat.com>
12146
12147 * passes.c (init_optimization_passes): Introduce macros for
12148 constructing the tree of passes (INSERT_PASSES_AFTER,
12149 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12150 TERMINATE_PASS_LIST).
12151
bc404e1b
VM
121522013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12153 Wei Mi <wmi@google.com>
12154
12155 PR rtl-optimization/57878
12156 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12157 top.
12158 (reload_pseudo_compare_func): Check nregs first for reload
12159 pseudos.
12160
d675843f
DM
121612013-07-18 David Malcolm <dmalcolm@redhat.com>
12162
12163 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12164
c7b3b99f 121652013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12166
12167 * read-rtl.c (validate_const_int): Once an invalid character is
12168 seen, quit the loop.
12169
12170 * gengtype.c (write_roots): Similarly once we find the "deletable"
12171 or "if_marked" option.
12172
52fceb44
SN
121732013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12174
12175 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12176 "xtab" and "sat". Move value "clz" from here to ...
12177 (attriubte "type"): ... here.
12178 (satsi_<SAT:code>): Delete "insn" attribute.
12179 (satsi_<SAT:code>_shift): Likewise.
12180 (arm_zero_extendqisi2addsi): Likewise.
12181 (arm_extendqisi2addsi): Likewise.
12182 (clzsi2): Update for attribute changes.
12183 (rbitsi2): Likewise.
371e77e3
UB
12184 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12185 attribute.
52fceb44
SN
12186 (arm_usatsihi): Likewise.
12187 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12188
006bd006
SN
121892013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12190
12191 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12192 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12193 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12194 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12195 in alphabetical order.
12196 (attribute "core_cycles"): Update for attribute changes.
12197 (arm_addsi3): Likewise.
12198 (addsi3_compare0): Likewise.
12199 (addsi3_compare0_scratch): Likewise.
12200 (addsi3_compare_op1): Likewise.
12201 (addsi3_compare_op2): Likewise.
12202 (compare_addsi2_op0): Likewise.
12203 (compare_addsi2_op1): Likewise.
12204 (addsi3_carryin_shift_<optab>): Likewise.
12205 (subsi3_carryin_shift): Likewise.
12206 (rsbsi3_carryin_shift): Likewise.
12207 (arm_subsi3_insn): Likewise.
12208 (subsi3_compare0): Likewise.
12209 (subsi3_compare): Likewise.
12210 (arm_andsi3_insn): Likewise.
12211 (thumb1_andsi3_insn): Likewise.
12212 (andsi3_compare0): Likewise.
12213 (andsi3_compare0_scratch): Likewise.
12214 (zeroextractsi_compare0_scratch
12215 (andsi_not_shiftsi_si): Likewise.
12216 (iorsi3_insn): Likewise.
12217 (iorsi3_compare0): Likewise.
12218 (iorsi3_compare0_scratch): Likewise.
12219 (arm_xorsi3): Likewise.
12220 (thumb1_xorsi3_insn): Likewise.
12221 (xorsi3_compare0): Likewise.
12222 (xorsi3_compare0_scratch): Likewise.
12223 (satsi_<SAT:code>_shift): Likewise.
12224 (rrx): Likewise.
12225 (arm_shiftsi3): Likewise.
12226 (shiftsi3_compare0): Likewise.
12227 (not_shiftsi): Likewise.
12228 (not_shiftsi_compare0): Likewise.
12229 (not_shiftsi_compare0_scratch): Likewise.
12230 (arm_one_cmplsi2): Likewise.
12231 (thumb_one_complsi2): Likewise.
12232 (notsi_compare0): Likewise.
12233 (notsi_compare0_scratch): Likewise.
12234 (thumb1_zero_extendhisi2): Likewise.
12235 (arm_zero_extendhisi2): Likewise.
12236 (arm_zero_extendhisi2_v6): Likewise.
12237 (arm_zero_extendhisi2addsi): Likewise.
12238 (thumb1_zero_extendqisi2): Likewise.
12239 (thumb1_zero_extendqisi2_v6): Likewise.
12240 (arm_zero_extendqisi2): Likewise.
12241 (arm_zero_extendqisi2_v6): Likewise.
12242 (arm_zero_extendqisi2addsi): Likewise.
12243 (thumb1_extendhisi2): Likewise.
12244 (arm_extendhisi2): Likewise.
12245 (arm_extendhisi2_v6): Likewise.
12246 (arm_extendqisi): Likewise.
12247 (arm_extendqisi_v6): Likewise.
12248 (arm_extendqisi2addsi): Likewise.
12249 (thumb1_extendqisi2): Likewise.
12250 (thumb1_movdi_insn): Likewise.
12251 (arm_movsi_insn): Likewise.
12252 (movsi_compare0): Likewise.
12253 (movhi_insn_arch4): Likewise.
12254 (movhi_bytes): Likewise.
12255 (arm_movqi_insn): Likewise.
12256 (thumb1_movqi_insn): Likewise.
12257 (arm32_movhf): Likewise.
12258 (thumb1_movhf): Likewise.
12259 (arm_movsf_soft_insn): Likewise.
12260 (thumb1_movsf_insn): Likewise.
12261 (movdf_soft_insn): Likewise.
12262 (thumb_movdf_insn): Likewise.
12263 (arm_cmpsi_insn): Likewise.
12264 (cmpsi_shiftsi): Likewise.
12265 (cmpsi_shiftsi_swp): Likewise.
12266 (arm_cmpsi_negshiftsi_si): Likewise.
12267 (movsicc_insn): Likewise.
12268 (movsfcc_soft_insn): Likewise.
12269 (arith_shiftsi): Likewise.
12270 (arith_shiftsi_compare0
12271 (arith_shiftsi_compare0_scratch
12272 (sub_shiftsi): Likewise.
12273 (sub_shiftsi_compare0
12274 (sub_shiftsi_compare0_scratch
12275 (and_scc): Likewise.
12276 (cond_move): Likewise.
12277 (if_plus_move): Likewise.
12278 (if_move_plus): Likewise.
12279 (if_move_not): Likewise.
12280 (if_not_move): Likewise.
12281 (if_shift_move): Likewise.
12282 (if_move_shift): Likewise.
12283 (if_shift_shift): Likewise.
12284 (if_not_arith): Likewise.
12285 (if_arith_not): Likewise.
12286 (cond_move_not): Likewise.
12287 (thumb1_ashlsi3): Set type attribute.
12288 (thumb1_ashrsi3): Likewise.
12289 (thumb1_lshrsi3): Likewise.
12290 (thumb1_rotrsi3): Likewise.
12291 (shiftsi3_compare0_scratch): Likewise.
12292 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12293 (neon_mov<mode>): Likewise.
371e77e3
UB
12294 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12295 attribute changes.
006bd006
SN
12296 (thumb2_movsi_insn): Likewise.
12297 (thumb2_cmpsi_neg_shiftsi): Likewise.
12298 (thumb2_extendqisi_v6): Likewise.
12299 (thumb2_zero_extendhisi2_v6): Likewise.
12300 (thumb2_zero_extendqisi2_v6): Likewise.
12301 (thumb2_shiftsi3_short): Likewise.
12302 (thumb2_addsi3_compare0_scratch): Likewise.
12303 (orsi_not_shiftsi_si): Likewise.
12304 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12305 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12306 changes.
12307 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12308 (1020alu_shift_op): Likewise.
12309 (1020alu_shift_reg_op): Likewise.
12310 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12311 (alu_shift_op): Likewise.
12312 (alu_shift_reg_op): Likewise.
12313 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12314 (11_alu_shift_op): Likewise.
12315 (11_alu_shift_reg_op): Likewise.
12316 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12317 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12318 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12319 changes.
006bd006
SN
12320 (cortex_a15_alu_shift): Likewise.
12321 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12322 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12323 changes.
006bd006
SN
12324 (cortex_a5_alu_shift): Likewise.
12325 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12326 changes.
12327 (cortex_a53_alu_shift): Likewise.
12328 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12329 changes.
12330 (cortex_a7_alu_reg): Likewise.
12331 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12332 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12333 changes.
006bd006
SN
12334 (cortex_a8_alu_shift): Likewise.
12335 (cortex_a8_alu_shift_reg): Likewise.
12336 (cortex_a8_mov): Likewise.
12337 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12338 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12339 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12340 changes.
12341 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12342 changes.
006bd006
SN
12343 (cortex_r4_mov): Likewise.
12344 (cortex_r4_alu_shift): Likewise.
12345 (cortex_r4_alu_shift_reg): Likewise.
12346 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12347 (526_alu_shift_op): Likewise.
12348 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12349 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12350 (626te_alu_shift_op): Likewise.
12351 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12352 (726te_alu_op): Likewise.
12353 (726te_alu_shift_op): Likewise.
12354 (726te_alu_shift_reg_op): Likewise.
12355 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12356 (mp626_alu_shift_op): Likewise.
12357 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12358 (pj4_alu_e1_conds): Likewise.
12359 (pj4_alu): Likewise.
12360 (pj4_alu_conds): Likewise.
12361 (pj4_shift): Likewise.
12362 (pj4_shift_conds): Likewise.
12363 (pj4_alu_shift): Likewise.
12364 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12365 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12366 changes.
006bd006
SN
12367 (cortexa7_older_only): Likewise.
12368 (cortexa7_younger): Likewise.
12369
651df1b2
DM
123702013-07-18 David Malcolm <dmalcolm@redhat.com>
12371
12372 * ipa-pure-const.c (generate_summary): Rename to...
12373 (pure_const_generate_summary): ... this.
12374
ea717bd7
IS
123752013-07-17 Iain Sandoe <iain@codesourcery.com>
12376
12377 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12378
a1259a13
YR
123792013-07-17 Yvan Roux <yvan.roux@linaro.org>
12380
12381 PR target/57909
12382 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12383 usage in HI mode.
12384
167f68ed
AK
123852013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12386
12387 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12388 enabled without -march=zEC12.
12389 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12390 flags to be set.
12391
f900a982
MR
123922013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12393
12394 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12395 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12396 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12397 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12398 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12399 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12400 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12401 ISA_HAS_FP4.
12402 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12403 and ISA_HAS_NMADD3_NMSUB3.
12404 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12405 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12406 (nmsub4<mode>, nmsub3<mode>): Likewise.
12407 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12408
d4ed27eb
MR
124092013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12410
12411 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12412 TARGET_MIPS5400 checking.
12413
7a5add18
PB
124142013-07-16 Jakub Jelinek <jakub@redhat.com>
12415 Peter Bergner <bergner@vnet.ibm.com>
12416
12417 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12418 registers in the comment.
12419 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12420 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12421 rather than FIRST_PSEUDO_REGISTERS.
12422
124232013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12424
12425 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12426 enable extra ISA flags with TARGET_HTM.
12427
d2ab0929
MR
124282013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12429
12430 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12431 Fix comment typos.
12432
839c74bc
CH
124332013-07-15 Cong Hou <congh@google.com>
12434
12435 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12436 in compare function for sorting.
12437
7a5add18 124382013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12439
12440 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12441 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12442 * config/rs6000/rs6000.opt: Add -mhtm option.
12443 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12444 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12445 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12446 __HTM__ if the HTM instructions are available.
12447 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12448 htm_spr_reg_operand): New define_predicates.
12449 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12450 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12451 Include htm.md.
12452 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12453 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12454 HTM builtin functions.
12455 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12456 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12457 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12458 (rs6000_builtin_mask_calculate): Likewise.
12459 (rs6000_option_override_internal): Likewise.
12460 (bdesc_htm): Add new HTM builtin support.
12461 (htm_spr_num): New function.
12462 (htm_spr_regno): Likewise.
12463 (rs6000_htm_spr_icode): Likewise.
12464 (htm_expand_builtin): Likewise.
12465 (htm_init_builtins): Likewise.
12466 (rs6000_expand_builtin): Add support for HTM builtin functions.
12467 (rs6000_init_builtins): Likewise.
371e77e3
UB
12468 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12469 option.
0258b6e4
PB
12470 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12471 (TARGET_HTM, MASK_HTM): Define macros.
12472 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12473 (FIXED_REGISTERS): Likewise.
12474 (CALL_USED_REGISTERS): Likewise.
12475 (CALL_REALLY_USED_REGISTERS): Likewise.
12476 (REG_ALLOC_ORDER): Likewise.
12477 (enum reg_class): Likewise.
12478 (REG_CLASS_NAMES): Likewise.
12479 (REG_CLASS_CONTENTS): Likewise.
12480 (REGISTER_NAMES): Likewise.
12481 (ADDITIONAL_REGISTER_NAMES): Likewise.
12482 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12483 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12484 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12485 * config/rs6000/htm.md: New file.
12486 * config/rs6000/htmintrin.h: New file.
12487 * config/rs6000/htmxlintrin.h: New file.
12488
87dd8ab0
MS
124892013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12490
12491 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12492 Define SYMBOL_TINY_GOT, update comment.
12493 * config/aarch64/aarch64.c
12494 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12495 (aarch64_expand_mov_immediate): Likewise.
12496 (aarch64_print_operand): Likewise.
12497 (aarch64_classify_symbol): Likewise.
12498 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12499 (ldr_got_tiny): Define.
12500
52d676b6
TG
125012013-07-13 Tobias Grosser <tobias@grosser.es>
12502
12503 PR tree-optimization/54094
12504 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12505 scheduling dimension for the parallelism check from the polyhedral
12506 information in the AST.
12507 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12508 in 2D + 1 form.
12509
286e8fc1
JM
125102013-07-13 Jason Merrill <jason@redhat.com>
12511
12512 * print-tree.c (debug_vec_tree): Use debug_raw.
12513 (debug_raw (vec<tree, va_gc> &)): New.
12514 (debug_raw (vec<tree, va_gc> *)): New.
12515 * tree.h: Declare them.
12516
e43257e8
BC
125172013-07-13 Bin Cheng <bin.cheng@arm.com>
12518
12519 * ifcvt.c (ifcvt_after_combine): New static variable.
12520 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12521 for size.
12522 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12523 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12524 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12525
da582d46
MR
125262013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12527
12528 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12529
18b0ea8f
MM
125302013-07-12 Michael Matz <matz@suse.de>
12531
12532 PR middle-end/55771
12533 * convert.c (convert_to_real): Reject non-float inner types.
12534
e4f0f84d
TB
125352013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12536
12537 * config/aarch64/aarch64-protos.h
12538 (aarch64_simd_immediate_valid_for_move): Remove.
12539 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12540 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12541 cases.
12542 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12543
76500022
SE
125442013-07-11 Steve Ellcey <sellcey@mips.com>
12545
12546 * config/mips/mips.c (mips_conditional_register_usage): Do not
12547 use t[0-7] registers in MIPS16 mode when optimizing for size.
12548
78039734
ST
125492013-07-11 Sriraman Tallam <tmsriram@google.com>
12550
12551 * config/i386/i386.c (dispatch_function_versions): Fix array
12552 indexing of function_version_info to match actual_versions.
12553
7b24b675
TJ
125542013-07-11 Teresa Johnson <tejohnson@google.com>
12555
12556 * vec.h (struct va_gc): Move release out-of-line.
12557 (va_gc::release): Call ggc_free on released vec.
12558
85d4cbb8
UW
125592013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12560
12561 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12562 Require GOT register as additional operand in UNSPEC.
12563 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12564 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12565 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12566 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12567 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12568 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12569 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12570
52b3f9e2
GJL
125712013-07-11 Georg-Johann Lay <avr@gjlay.de>
12572
12573 PR target/57631
12574 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12575 name seen by assembler/linker rather if available.
12576
3f3e266e
AS
125772013-07-11 Andreas Schwab <schwab@suse.de>
12578
12579 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12580
21231ca6
VM
125812013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12582
371e77e3 12583 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12584
d331d374
JM
125852013-07-10 Joseph Myers <joseph@codesourcery.com>
12586
673c2f63
JM
12587 * doc/tm.texi.in: Move hook documentation to ....
12588 * target.def: ... here.
12589
d331d374
JM
12590 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12591 text on @hook line.
12592 * doc/tm.texi: Regenerate.
12593
dfeadaa0
PC
125942013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12595
12596 PR c++/57869
12597 * doc/invoke.texi: Document -Wconditionally-supported.
12598
bb6f2bac
GJL
125992013-07-10 Georg-Johann Lay <avr@gjlay.de>
12600
12601 PR target/57844
12602 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12603 of my_fp.
12604
5219b232
GJL
126052013-07-10 Georg-Johann Lay <avr@gjlay.de>
12606
12607 PR target/57506
12608 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12609 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12610 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12611 Remove duplicate devices.
12612 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12613 * config/avr/t-multilib: Regenerate.
12614 * config/avr/avr-tables.opt: Regenerate.
12615 * doc/avr-mmcu.texi: Regenerate.
12616
283045c0
GJL
126172013-07-10 Georg-Johann Lay <avr@gjlay.de>
12618
12619 PR target/56987
12620 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12621
ceb2d59f 126222013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12623
ceb2d59f
GS
12624 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12625 the cost of MULT when optimizing for size.
12626
055e0a99
JBG
126272013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12628
12629 * config/cr16/cr16-protos.h: Don't include target.h.
12630
ef43e868
JM
126312013-07-09 Joseph Myers <joseph@codesourcery.com>
12632
12633 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12634 adjust register size for TDmode and TFmode for VSX registers.
12635
4a283fdf
KT
126362013-07-08 Kai Tietz <ktietz@redhat.com>
12637
12638 PR target/56892
12639 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12640 hook_bool_const_tree_true.
12641
2cf4c39e
AK
126422013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12643
12644 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12645 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12646 * config/s390/s390.md: Define FPR*_REGNUM constants.
12647 Fix FPR2_REGNUM constant (18 -> 17).
12648 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12649 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12650 ("trunc<BFP:mode><DFP_ALL:mode>2")
12651 ("trunc<DFP_ALL:mode><BFP:mode>2")
12652 ("*extend<BFP:mode><DFP_ALL:mode>2")
12653 ("*extend<DFP_ALL:mode><BFP:mode>2")
12654 ("extend<BFP:mode><DFP_ALL:mode>2")
12655 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12656 FPR4_REGNUM.
12657
e6ac0270 126582013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12659
6a2fa4b2 12660 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12661
b89b22fc
AK
126622013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12663
12664 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12665 and cfun_fpr_bit_p to cfun_fpr_save_p.
12666 (s390_frame_area, s390_register_info, s390_frame_info)
12667 (s390_emit_prologue, s390_emit_epilogue)
12668 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12669 register numbers.
12670 * config/s390/s390.h: Define *_REGNUM macros for floating point
12671 register numbers.
12672
07f398aa
EB
126732013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12674
12675 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12676
75fefa91
PCC
126772013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12678
12679 PR rtl-optimization/57786
12680 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12681 and break out of the loop when it is set to false.
12682
046f1eee
JJ
126832013-07-08 Jakub Jelinek <jakub@redhat.com>
12684
8140c065
JJ
12685 PR target/57819
12686 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12687 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12688 (const_int 63)) 0)).
12689 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12690 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12691 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12692
046f1eee
JJ
12693 PR rtl-optimization/57829
12694 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12695 mask bits outside of mode are just sign-extension from mode to HWI.
12696
930b700b
MZ
126972013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12698
12699 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12700 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12701 adjust_address instead of change_address to keep info about alignment.
12702 (emit_strmov): Remove.
12703 (emit_memmov): New function.
12704 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12705 (expand_movmem_epilogue): Likewise and return updated rtx for
12706 destination.
12707 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12708 destination and source.
12709 (decide_alignment): Refactor, handle vector_loop.
12710 (ix86_expand_movmem): Likewise.
12711 (ix86_expand_setmem): Likewise.
12712 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12713
7b9d1bd8
UB
127142013-07-07 Uros Bizjak <ubizjak@gmail.com>
12715
12716 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12717 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12718
eabb5f48
UB
127192013-07-06 Uros Bizjak <ubizjak@gmail.com>
12720
12721 * config/i386/sse.md (sse_movlhps): Change alternative 3
12722 of operand 2 to "m".
12723
127242013-07-06 Uros Bizjak <ubizjak@gmail.com>
12725
12726 PR target/57807
12727 * config/i386/sse.md (iptr): New mode attribute.
12728 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12729 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12730 (<sse>_vmmul<mode>3): Ditto.
12731 (<sse>_vmdiv<mode>3): Ditto.
12732 (sse_vmrcpv4sf2): Ditto.
12733 (<sse>_vmsqrt<mode>2): Ditto.
12734 (sse_vmrsqrtv4sf2): Ditto.
12735 (<sse>_vm<code><mode>3): Ditto.
12736 (avx_vmcmp<mode>3): Ditto.
12737 (<sse>_vmmaskcmp<mode>3): Ditto.
12738 (<sse>_comi): Ditto.
12739 (<sse>_ucomi): Ditto.
12740 (*xop_vmfrcz_<mode>): Ditto.
12741 (*fmai_fmadd_<mode>): Ditto.
12742 (*fmai_fmsub_<mode>): Ditto.
12743 (*fmai_fnmadd_<mode>): Ditto.
12744 (*fmai_fnmsub_<mode>): Ditto.
12745 (*fma4i_vmfmadd_<mode>): Ditto.
12746 (*fma4i_vmfmsub_<mode>): Ditto.
12747 (*fma4i_vmfnmadd_<mode>): Ditto.
12748 (*fma4i_vmfnmsub_<mode>): Ditto.
12749 (*xop_vmfrcz_<mode>): Ditto.
12750 (sse_cvtps2pi): Ditto.
12751 (sse_cvttps2pi): Ditto.
12752 (sse_cvtss2si): Ditto.
12753 (sse_cvtss2si_2): Ditto.
12754 (sse_cvtss2siq_2): Ditto.
12755 (sse_cvttss2si): Ditto.
12756 (sse_cvttss2siq): Ditto.
12757 (sse_cvtsd2si): Ditto.
12758 (sse_cvtsd2si_2): Ditto.
12759 (sse_cvtsd2siq_2): Ditto.
12760 (sse_cvttsd2si): Ditto.
12761 (sse_cvttsd2siq): Ditto.
12762 (sse_cvtsd2ss): Ditto.
12763 (sse_cvtss2sd): Ditto.
12764 (avx2_pbroadcast<mode>): Ditto.
12765 (avx2_pbroadcast<mode>_1): Ditto.
12766 (*avx_vperm_broadcast_v4sf): Ditto.
12767
12768 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12769 (sse_movlhps): Ditto.
12770 (sse_storehps): Ditto.
12771 (sse_loadhps): Ditto.
12772 (sse_storelps): Ditto.
12773 (sse_loadlps): Ditto.
12774 (*vec_concatv4sf): Ditto.
12775 (*vec_interleave_highv2df): Ditto.
12776 (*vec_interleave_lowv2df): Ditto.
12777 (*vec_extractv2df_1_sse): Ditto.
12778 (*vec_extractv2df_0_sse): Ditto.
12779 (sse2_storelpd): Ditto.
12780 (sse2_loadlpd): Ditto.
12781 (sse2_movsd): Ditto.
12782 (*vec_concatv4si): Ditto.
12783 (vec_concatv2di): Ditto.
12784
12785 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12786 for Intel asm dialect.
12787 (mmx_punpcklwd): Ditto.
12788 (mmx_punpckldq): Ditto.
12789
12790 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12791 for intel assembler dialect.
12792
1f6eac90
JJ
127932013-07-06 Jakub Jelinek <jakub@redhat.com>
12794
12795 PR target/29776
12796 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12797 for BUILT_IN_C{LZ,LRSB}*.
12798 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12799 * tree-vrp.c (extract_range_basic): Handle
12800 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12801 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12802 fall thru to code calling set_value*.
12803 * builtins.c (expand_builtin): Remove *IMAX cases.
12804 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12805 if width is bigger than 2*HWI.
12806
2b778c9d
VM
128072013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12808
12809 PR rtl-optimization/55342
12810 * lra-int.h (lra_subreg_reload_pseudos): New.
12811 * lra.c: Add undoing optional reloads to the block diagram.
12812 (lra_subreg_reload_pseudos): New.
12813 (lra_optional_reload_pseudos): Change comments.
12814 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12815 lra_optional_reload_pseudos after undo transformations.
12816 * lra-assigns.c (pseudo_prefix_title): New.
12817 (lra_setup_reg_renumber): Use it.
12818 (spill_for): Ditto. Check subreg reload pseudos too.
12819 (assign_by_spills): Consider subreg reload pseudos too.
12820 * lra-constraints.c (simplify_operand_subreg): Use
12821 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12822 (curr_insn_transform): Recognize and do optional reloads.
12823 (undo_optional_reloads): New.
12824 (lra_undo_inheritance): Call undo_optional_reloads.
12825
207156e4
TQ
128262013-07-05 Thomas Quinot <quinot@adacore.com>
12827
12828 * tree-complex.c (expand_complex_operations_1): Fix typo.
12829
8990e73a
TB
128302013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12831
12832 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12833 (tune_params): New member 'const vec_costs'.
12834 * config/aarch64/aarch64.c (generic_vector_cost): New.
12835 (generic_tunings): New member 'generic_vector_cost'.
12836 (aarch64_builtin_vectorization_cost): New.
12837 (aarch64_add_stmt_cost): New.
12838 (TARGET_VECTORIZE_ADD_STMT_COST): New.
12839 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
12840
f7bc421d
JJ
128412013-07-03 Jakub Jelinek <jakub@redhat.com>
12842
12843 PR target/57777
12844 * config/i386/predicates.md (vsib_address_operand): Disallow
12845 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
12846
e90d1568
HPN
128472013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
12848
12849 PR middle-end/55030
12850 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
12851 expand_builtin_setjmp_receiver.
12852 (expand_label): Adjust, call expand_builtin_setjmp_receiver
12853 with NULL for the label parameter.
12854 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
12855 the frame-pointer. Adjust comments.
12856 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
12857 only if LABEL is non-NULL.
12858
cbd7413b
YZ
128592013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
12860
12861 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
12862 (ARM_ABI_AAPCS64): Ditto.
12863 (arm_abi): Ditto.
12864 (ARM_DEFAULT_ABI): Ditto.
12865
dec11868
JG
128662013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
12867
12868 * config/aarch64/aarch64-builtins.c
12869 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
12870 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
12871 (st1): Likewise.
12872 * config/aarch64/aarch64-simd.md
12873 (aarch64_ld1<VALL:mode>): New.
12874 (aarch64_st1<VALL:mode>): Likewise.
12875 * config/aarch64/arm_neon.h
12876 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
12877
786fb9b6
ST
128782013-07-02 Sriraman Tallam <tmsriram@google.com>
12879
0ba6aff3
UB
12880 * config/i386/i386.c (gate_insert_vzeroupper): Check if
12881 target ISA is AVX.
786fb9b6
ST
12882 (ix86_option_override_internal):Turn on all -mavx target flags by
12883 default as they are dependent on AVX anyway.
12884
4b043553
CC
128852013-07-02 Cary Coutant <ccoutant@google.com>
12886
12887 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
12888 deterministic hash.
12889 (loc_checksum_ordered): Likewise.
12890 (hash_loc_operands): Remove inline keyword.
12891
c4e87a13
JJ
128922013-07-02 Jakub Jelinek <jakub@redhat.com>
12893
12894 PR tree-optimization/57741
12895 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
12896 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
12897 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
12898 Allow REAL_CST step_exprs if flag_associative_math.
12899 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
12900
26366d28
IB
129012013-07-02 Ian Bolton <ian.bolton@arm.com>
12902
0ba6aff3 12903 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 12904
2879bb2b
IB
129052013-07-02 Ian Bolton <ian.bolton@arm.com>
12906
12907 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
12908
afc5e8a6
KT
129092013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12910
12911 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
12912 encoding.
12913 (iorsi3_insn): Likewise.
12914 (arm_xorsi3): Likewise.
12915
31f8442b
SN
129162013-07-01 Sofiane Naci <sofiane.naci@arm.com>
12917
12918 * arm.md (attribute "wtype"): Delete. Move attribute values from here
12919 to ...
12920 (attribute "type"): ... here, and prefix with "wmmx_".
12921 (attribute "core_cycles"): Update for attribute changes.
12922 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
12923 (tbcstv4hi): Likewise.
12924 (tbcstv2si): Likewise.
12925 (iwmmxt_iordi3): Likewise.
12926 (iwmmxt_xordi3): Likewise.
12927 (iwmmxt_anddi3): Likewise.
12928 (iwmmxt_nanddi3): Likewise.
12929 (iwmmxt_arm_movdi): Likewise.
12930 (iwmmxt_movsi_insn): Likewise.
12931 (mov<mode>_internal): Likewise.
12932 (and<mode>3_iwmmxt): Likewise.
12933 (ior<mode>3_iwmmxt): Likewise.
12934 (xor<mode>3_iwmmxt): Likewise.
12935 (add<mode>3_iwmmxt): Likewise.
12936 (ssaddv8qi3): Likewise.
12937 (ssaddv4hi3): Likewise.
12938 (ssaddv2si3): Likewise.
12939 (usaddv8qi3): Likewise.
12940 (usaddv4hi3): Likewise.
12941 (usaddv2si3): Likewise.
12942 (sub<mode>3_iwmmxt): Likewise.
12943 (sssubv8qi3): Likewise.
12944 (sssubv4hi3): Likewise.
12945 (sssubv2si3): Likewise.
12946 (ussubv8qi3): Likewise.
12947 (ussubv4hi3): Likewise.
12948 (ussubv2si3): Likewise.
12949 (mulv4hi3_iwmmxt): Likewise.
12950 (smulv4hi3_highpart): Likewise.
12951 (umulv4hi3_highpart): Likewise.
12952 (iwmmxt_wmacs): Likewise.
12953 (iwmmxt_wmacsz): Likewise.
12954 (iwmmxt_wmacu): Likewise.
12955 (iwmmxt_wmacuz): Likewise.
12956 (iwmmxt_clrdi): Likewise.
12957 (iwmmxt_clrv8qi): Likewise.
12958 (iwmmxt_clr4hi): Likewise.
12959 (iwmmxt_clr2si): Likewise.
12960 (iwmmxt_uavgrndv8qi3): Likewise.
12961 (iwmmxt_uavgrndv4hi3): Likewise.
12962 (iwmmxt_uavgv8qi3): Likewise.
12963 (iwmmxt_uavgv4hi3): Likewise.
12964 (iwmmxt_tinsrb): Likewise.
12965 (iwmmxt_tinsrh): Likewise.
12966 (iwmmxt_tinsrw): Likewise.
12967 (iwmmxt_textrmub): Likewise.
12968 (iwmmxt_textrmsb): Likewise.
12969 (iwmmxt_textrmuh): Likewise.
12970 (iwmmxt_textrmsh): Likewise.
12971 (iwmmxt_textrmw): Likewise.
12972 (iwmxxt_wshufh): Likewise.
12973 (eqv8qi3): Likewise.
12974 (eqv4hi3): Likewise.
12975 (eqv2si3): Likewise.
12976 (gtuv8qi3): Likewise.
12977 (gtuv4hi3): Likewise.
12978 (gtuv2si3): Likewise.
12979 (gtv8qi3): Likewise.
12980 (gtv4hi3): Likewise.
12981 (gtv2si3): Likewise.
12982 (smax<mode>3_iwmmxt): Likewise.
12983 (umax<mode>3_iwmmxt): Likewise.
12984 (smin<mode>3_iwmmxt): Likewise.
12985 (umin<mode>3_iwmmxt): Likewise.
12986 (iwmmxt_wpackhss): Likewise.
12987 (iwmmxt_wpackwss): Likewise.
12988 (iwmmxt_wpackdss): Likewise.
12989 (iwmmxt_wpackhus): Likewise.
12990 (iwmmxt_wpackwus): Likewise.
12991 (iwmmxt_wpackdus): Likewise.
12992 (iwmmxt_wunpckihb): Likewise.
12993 (iwmmxt_wunpckihh): Likewise.
12994 (iwmmxt_wunpckihw): Likewise.
12995 (iwmmxt_wunpckilb): Likewise.
12996 (iwmmxt_wunpckilh): Likewise.
12997 (iwmmxt_wunpckilw): Likewise.
12998 (iwmmxt_wunpckehub): Likewise.
12999 (iwmmxt_wunpckehuh): Likewise.
13000 (iwmmxt_wunpckehuw): Likewise.
13001 (iwmmxt_wunpckehsb): Likewise.
13002 (iwmmxt_wunpckehsh): Likewise.
13003 (iwmmxt_wunpckehsw): Likewise.
13004 (iwmmxt_wunpckelub): Likewise.
13005 (iwmmxt_wunpckeluh): Likewise.
13006 (iwmmxt_wunpckeluw): Likewise.
13007 (iwmmxt_wunpckelsb): Likewise.
13008 (iwmmxt_wunpckelsh): Likewise.
13009 (iwmmxt_wunpckelsw): Likewise.
13010 (ror<mode>3): Likewise.
13011 (ashr<mode>3_iwmmxt): Likewise.
13012 (lshr<mode>3_iwmmxt): Likewise.
13013 (ashl<mode>3_iwmmxt): Likewise.
13014 (ror<mode>3_di): Likewise.
13015 (ashr<mode>3_di): Likewise.
13016 (lshr<mode>3_di): Likewise.
13017 (ashl<mode>3_di): Likewise.
13018 (iwmmxt_wmadds): Likewise.
13019 (iwmmxt_wmaddu): Likewise.
13020 (iwmmxt_tmia): Likewise.
13021 (iwmmxt_tmiaph): Likewise.
13022 (iwmmxt_tmiabb): Likewise.
13023 (iwmmxt_tmiatb): Likewise.
13024 (iwmmxt_tmiabt): Likewise.
13025 (iwmmxt_tmiatt): Likewise.
13026 (iwmmxt_tmovmskb): Likewise.
13027 (iwmmxt_tmovmskh): Likewise.
13028 (iwmmxt_tmovmskw): Likewise.
13029 (iwmmxt_waccb): Likewise.
13030 (iwmmxt_wacch): Likewise.
13031 (iwmmxt_waccw): Likewise.
13032 (iwmmxt_waligni): Likewise.
13033 (iwmmxt_walignr): Likewise.
13034 (iwmmxt_walignr0): Likewise.
13035 (iwmmxt_walignr1): Likewise.
13036 (iwmmxt_walignr2): Likewise.
13037 (iwmmxt_walignr3): Likewise.
13038 (iwmmxt_wsadb): Likewise.
13039 (iwmmxt_wsadh): Likewise.
13040 (iwmmxt_wsadbz): Likewise.
13041 (iwmmxt_wsadhz): Likewise.
13042 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
13043 (iwmmxt_wabsdiffb): Likewise.
13044 (iwmmxt_wabsdiffh): Likewise.
13045 (iwmmxt_wabsdiffw): Likewise.
13046 (iwmmxt_waddsubhx): Likewise
13047 (iwmmxt_wsubaddhx): Likewise.
13048 (addc<mode>3): Likewise.
13049 (iwmmxt_avg4): Likewise.
13050 (iwmmxt_avg4r): Likewise.
13051 (iwmmxt_wmaddsx): Likewise.
13052 (iwmmxt_wmaddux): Likewise.
13053 (iwmmxt_wmaddsn): Likewise.
13054 (iwmmxt_wmaddun): Likewise.
13055 (iwmmxt_wmulwsm): Likewise.
13056 (iwmmxt_wmulwum): Likewise.
13057 (iwmmxt_wmulsmr): Likewise.
13058 (iwmmxt_wmulumr): Likewise.
13059 (iwmmxt_wmulwsmr): Likewise.
13060 (iwmmxt_wmulwumr): Likewise.
13061 (iwmmxt_wmulwl): Likewise.
13062 (iwmmxt_wqmulm): Likewise.
13063 (iwmmxt_wqmulwm): Likewise.
13064 (iwmmxt_wqmulmr): Likewise.
13065 (iwmmxt_wqmulwmr): Likewise.
13066 (iwmmxt_waddbhusm): Likewise.
13067 (iwmmxt_waddbhusl): Likewise.
13068 (iwmmxt_wqmiabb): Likewise.
13069 (iwmmxt_wqmiabt): Likewise.
13070 (iwmmxt_wqmiatb): Likewise.
13071 (iwmmxt_wqmiatt): Likewise.
13072 (iwmmxt_wqmiabbn): Likewise.
13073 (iwmmxt_wqmiabtn): Likewise.
13074 (iwmmxt_wqmiatbn): Likewise.
13075 (iwmmxt_wqmiattn): Likewise.
13076 (iwmmxt_wmiabb): Likewise.
13077 (iwmmxt_wmiabt): Likewise.
13078 (iwmmxt_wmiatb): Likewise.
13079 (iwmmxt_wmiatt): Likewise.
13080 (iwmmxt_wmiabbn): Likewise.
13081 (iwmmxt_wmiabtn): Likewise.
13082 (iwmmxt_wmiatbn): Likewise.
13083 (iwmmxt_wmiattn): Likewise.
13084 (iwmmxt_wmiawbb): Likewise.
13085 (iwmmxt_wmiawbt): Likewise.
13086 (iwmmxt_wmiawtb): Likewise.
13087 (iwmmxt_wmiawtt): Likewise.
13088 (iwmmxt_wmiawbbn): Likewise.
13089 (iwmmxt_wmiawbtn): Likewise.
13090 (iwmmxt_wmiawtbn): Likewise.
13091 (iwmmxt_wmiawttn): Likewise.
13092 (iwmmxt_wmerge): Likewise.
13093 (iwmmxt_tandc<mode>3): Likewise.
13094 (iwmmxt_torc<mode>3): Likewise.
13095 (iwmmxt_torvsc<mode>3): Likewise.
13096 (iwmmxt_textrc<mode>3): Likewise.
13097 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13098 (wmmxt_pack): Likewise.
13099 (wmmxt_mult_c1): Likewise.
13100 (wmmxt_mult_c2): Likewise.
13101 (wmmxt_alu_c1): Likewise.
13102 (wmmxt_alu_c2): Likewise.
13103 (wmmxt_alu_c3): Likewise.
13104 (wmmxt_transfer_c1): Likewise.
13105 (wmmxt_transfer_c2): Likewise.
13106 (wmmxt_transfer_c3): Likewise.
13107 (marvell_f_iwmmxt_wstr): Likewise.
13108 (marvell_f_iwmmxt_wldr): Likewise.
13109
bdb7bf8a
YZ
131102013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13111
0ba6aff3 13112 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13113
e6631d38
VM
131142013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13115
13116 Revert:
13117 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13118 * lra-constraints.c (need_for_split_p): Check call used hard regs
13119 living through calls.
13120
13121 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13122 call used regs for call insn.
13123
53c1275b
JJ
131242013-06-28 Jakub Jelinek <jakub@redhat.com>
13125
13126 PR target/57736
0ba6aff3
UB
13127 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13128 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13129
1141ed3f
BI
131302013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13131
13132 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13133
e32e4c4a
VM
131342013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13135
13136 * lra-constraints.c (need_for_split_p): Check call used hard regs
13137 living through calls.
13138
f161bfd3
MM
131392013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13140
13141 PR target/57744
13142 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13143 to tie with any other modes. Eliminate Altivec vector mode tests,
13144 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13145 code, to return 0 if testing MODE2 for a condition, if we've
13146 already tested MODE1 for the same condition.
13147
7eda14e1
MS
131482013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13149
13150 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13151 layout.
13152
c822f852
MS
131532013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13154
13155 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13156 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13157
da4f13a4
MS
131582013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13159
0ba6aff3
UB
13160 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13161 Define.
da4f13a4
MS
13162 (aarch64_symbolic_constant_p): Remove.
13163 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13164 static. Fix line length and white space.
13165 (aarch64_symbolic_constant_p): Remove.
13166 * config/aarch64/predicates.md (aarch64_valid_symref):
13167 Use aarch64_classify_symbol_expression.
13168
956a95a5
KT
131692013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13170
13171 * config/arm/constraints.md (Ts): New constraint.
13172 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13173 16-bit encodings.
13174 (compare_scc): Use "Ts" constraint for operand 0.
13175 (ior_scc_scc): Likewise.
13176 (and_scc_scc): Likewise.
13177 (and_scc_scc_nodom): Likewise.
13178 (ior_scc_scc_cmp): Likewise for operand 7.
13179 (and_scc_scc_cmp): Likewise.
13180 * config/arm/thumb2.md (thumb2_movsi_insn):
13181 Add alternatives for 16-bit encodings.
13182 (thumb2_movhi_insn): Likewise.
13183 (thumb2_movsicc_insn): Likewise.
13184 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13185 (thumb2_negscc): Use "Ts" constraint.
13186 Move mvn instruction outside cond_exec block.
13187 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13188 for 16-bit encodings.
13189
31dfce10
KT
131902013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13191
13192 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13193 encoding.
13194 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13195 (mulsi3subsi): Likewise.
13196 (mulsidi3adddi): Likewise.
13197 (mulsidi3_v6): Likewise.
13198 (umulsidi3_v6): Likewise.
13199 (umulsidi3adddi_v6): Likewise.
13200 (smulsi3_highpart_v6): Likewise.
13201 (umulsi3_highpart_v6): Likewise.
13202 (mulhisi3tb): Likewise.
13203 (mulhisi3bt): Likewise.
13204 (mulhisi3tt): Likewise.
13205 (maddhisi4): Likewise.
13206 (maddhisi4tb): Likewise.
13207 (maddhisi4tt): Likewise.
13208 (maddhidi4): Likewise.
13209 (maddhidi4tb): Likewise.
13210 (maddhidi4tt): Likewise.
13211 (zeroextractsi_compare0_scratch): Likewise.
13212 (insv_zero): Likewise.
13213 (insv_t2): Likewise.
13214 (anddi_notzesidi_di): Likewise.
13215 (anddi_notsesidi_di): Likewise.
13216 (andsi_notsi_si): Likewise.
13217 (iordi_zesidi_di): Likewise.
13218 (xordi_zesidi_di): Likewise.
13219 (andsi_iorsi3_notsi): Likewise.
13220 (smax_0): Likewise.
13221 (smax_m1): Likewise.
13222 (smin_0): Likewise.
13223 (not_shiftsi): Likewise.
13224 (unaligned_loadsi): Likewise.
13225 (unaligned_loadhis): Likewise.
13226 (unaligned_loadhiu): Likewise.
13227 (unaligned_storesi): Likewise.
13228 (unaligned_storehi): Likewise.
13229 (extv_reg): Likewise.
13230 (extzv_t2): Likewise.
13231 (divsi3): Likewise.
13232 (udivsi3): Likewise.
13233 (arm_zero_extendhisi2addsi): Likewise.
13234 (arm_zero_extendqisi2addsi): Likewise.
13235 (compareqi_eq0): Likewise.
13236 (arm_extendhisi2_v6): Likewise.
13237 (arm_extendqisi2addsi): Likewise.
13238 (arm_movt): Likewise.
13239 (thumb2_ldrd): Likewise.
13240 (thumb2_ldrd_base): Likewise.
13241 (thumb2_ldrd_base_neg): Likewise.
13242 (thumb2_strd): Likewise.
13243 (thumb2_strd_base): Likewise.
13244 (thumb2_strd_base_neg): Likewise.
13245 (arm_negsi2): Add alternative for 16-bit encoding.
13246 (arm_one_cmplsi2): Likewise.
13247
1572e697
KT
132482013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13249
13250 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13251 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13252 (movdfcc): Likewise.
13253 * config/arm/vfp.md (*thumb2_movsf_vfp):
13254 Disable predication for arm_restrict_it.
13255 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13256 (*thumb2_movdfcc_vfp): Likewise.
13257 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13258 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13259 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13260 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13261 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13262 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13263 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13264 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13265 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13266 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13267 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13268 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13269 Disable predication for arm_restrict_it.
13270
ebf8f0ea
KY
132712013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13272
13273 * config/i386/bmiintrin.h (_bextr_u32): New.
13274 (_bextr_u64): Ditto.
13275
a290fcda
RS
132762013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13277
13278 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13279 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13280 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13281 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13282 * config/mips/n32-elf.h: ...this new file.
13283
ea169996
MG
132842013-06-27 Marc Glisse <marc.glisse@inria.fr>
13285
13286 PR target/57224
13287 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13288 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13289
12211b99 132902013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13291
13292 * config/mips/mips-tables.opt: Regenerate.
13293 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13294 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13295 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13296
2444244e
JJ
132972013-06-27 Jakub Jelinek <jakub@redhat.com>
13298
cd06d2a2
JJ
13299 PR target/57623
13300 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13301 constraints of operand 1 and 2.
13302
2444244e
JJ
13303 PR target/57623
13304 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13305 to match RTL canonicalization. Swap predicates and
13306 constraints of operand 1 and 2.
13307
2f259720
VM
133082013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13309
0ba6aff3
UB
13310 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13311 Process OP_INOUT regs for splitting too.
2f259720 13312
fef4d2b3
JJ
133132013-06-27 Jakub Jelinek <jakub@redhat.com>
13314
13315 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13316 decl before the loop, initialize to NULL.
13317 (vectorizable_load): Initialize ptr_incr to NULL.
13318
79ee9826
MJ
133192013-06-27 Martin Jambor <mjambor@suse.cz>
13320
13321 PR lto/57208
13322 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13323 * ipa-ref.c (ipa_maybe_record_reference): New function.
13324 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13325 * ipa-cp.c (create_specialized_node): Record potential references from
13326 aggvals.
13327 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13328
e18b4a81
YZ
133292013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13330
13331 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13332 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13333 'mode' to force_reg.
13334 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13335 (aarch64_expand_mov_immediate): Likewise.
13336
9c023bf0
YZ
133372013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13338
13339 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13340 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13341
5a3fe9b6
AK
133422013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13343
13344 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13345 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13346 (struct machine_function): Add tbegin_p.
13347 (s390_canonicalize_comparison): Fold CC mode compares to
13348 conditional jump if possible.
13349 (s390_emit_jump): Return the emitted jump.
13350 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13351 Handle CCRAWmode compares.
13352 (s390_option_override): Default to -mhtm if available.
13353 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13354 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13355 FPRs instead of df_regs_ever_live_p.
13356 (s390_optimize_nonescaping_tx): New function.
13357 (s390_init_frame_layout): Extend clobbered_regs array to cover
13358 FPRs as well.
13359 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13360 (s390_expand_tbegin): New function.
13361 (enum s390_builtin): New enum definition.
13362 (code_for_builtin): New array definition.
13363 (s390_init_builtins): New function.
13364 (s390_expand_builtin): New function.
13365 (TARGET_INIT_BUILTINS): Define.
13366 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13367 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13368 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13369 (s390_alc_comparison): Likewise.
13370 * config/s390/s390-modes.def: Add CCRAWmode.
13371 * config/s390/s390.h (processor_flags): Add PF_TX.
13372 (TARGET_CPU_HTM): Define macro.
13373 (TARGET_HTM): Define macro.
13374 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13375 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13376 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13377 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13378 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13379 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13380 ("*cc_to_int"): Move up.
13381 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13382 constants other than 0.
13383 ("*ccraw_to_int"): New insn and splitter definition.
13384 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13385 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13386 ("tx_assist"): New expander.
13387 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13388 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13389 * config/s390/s390.opt: Add -mhtm option.
13390 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13391 * config/s390/htmxlintrin.h: New file.
13392 * config/s390/htmintrin.h: New file.
13393 * config/s390/s390intrin.h: New file.
13394 * doc/extend.texi: Document htm builtins.
13395 * config.gcc: Add the new header files to extra_headers.
13396
9e216629
TS
133972013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13398
13399 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13400 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13401
fd8c65e7 134022013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13403 Pat Haugen <pthaugen@us.ibm.com>
13404 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13405
13406 * config/rs6000/power8.md: New.
13407 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13408 setting for power8 entry.
13409 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13410 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13411 test for Power4/Power5 only.
13412 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13413 support.
13414 (force_new_group): Adjust comment.
13415 * config/rs6000/rs6000.md: Include power8.md.
13416
b24a2ce5
GY
134172013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13418
13419 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13420 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13421 declaration.
13422 (tune_params): Update comment.
13423 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13424 (arm_max_conditional_execute): New function.
13425 (thumb2_final_prescan_insn): Use max_insn_skipped and
13426 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13427
f6fdeb62
JJ
134282013-06-25 Jakub Jelinek <jakub@redhat.com>
13429
13430 PR tree-optimization/57705
13431 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13432 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13433 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13434 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13435
c13bc3d9
MJ
134362013-06-25 Martin Jambor <mjambor@suse.cz>
13437
13438 PR middle-end/57670
13439 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13440 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13441 calls in the dump.
13442 (ipa_note_param_call): Initialize member_ptr flag.
13443 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13444 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13445 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13446 (ipa_read_indirect_edge_info): Likewise.
13447
8a845901
RB
134482013-06-25 Richard Biener <rguenther@suse.de>
13449
13450 PR middle-end/56977
13451 * passes.c (init_optimization_passes): Move pass_fold_builtins
13452 and pass_dce earlier with -Og.
13453
33be0bec
EB
134542013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13455
13456 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13457 <BIT_FIELD_REF>: Remove trailing TAB.
13458 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13459 remove blank line.
13460
5fe8e757
MJ
134612013-06-24 Martin Jambor <mjambor@suse.cz>
13462
13463 PR tree-optimization/57358
13464 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13465 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13466 (ipa_analyze_params_uses): Generate pessimistic info when true.
13467
44a60244
MJ
134682013-06-24 Martin Jambor <mjambor@suse.cz>
13469
13470 PR tree-optimization/57539
13471 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13472 global.inlined_to of the new node to it. All callers changed.
13473 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13474 inlining_into, pass it to cgraph_clone_node.
13475 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13476 ipa_free_edge_args_substructures.
13477 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13478 rdesc linked list. Do not assert rdesc edges have inlined caller.
13479 Assert we have found an rdesc in the rdesc list.
13480
7c5848b8
RB
134812013-06-24 Richard Biener <rguenther@suse.de>
13482
0ba6aff3 13483 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13484 (pointer_set_lookup): Declare.
13485 (class pointer_map): New template class implementing a
13486 generic pointer to T map.
13487 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13488 pointer_map<T>::contains, pointer_map<T>::insert,
13489 pointer_map<T>::traverse): New functions.
13490 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13491 (pointer_set_lookup): New function.
13492 (pointer_set_contains): Use pointer_set_lookup.
13493 (pointer_set_insert): Likewise.
13494 (insert_aux): Remove.
13495 (struct pointer_map_t): Embed a pointer_set_t.
13496 (pointer_map_create): Adjust.
13497 (pointer_map_destroy): Likewise.
13498 (pointer_map_contains): Likewise.
13499 (pointer_map_insert): Likewise.
13500 (pointer_map_traverse): Likewise.
13501 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13502 pointer_map<unsigned> instead of a pointer_map_t.
13503 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13504 (streamer_tree_cache_lookup): Likewise.
13505 (streamer_tree_cache_create): Likewise.
13506 (streamer_tree_cache_delete): Likewise.
13507 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13508 pointer_map<unsigned> instead of a pointer_map_t.
13509 (lto_init_tree_ref_encoder): Adjust.
13510 (lto_destroy_tree_ref_encoder): Likewise.
13511 * lto-section-out.c (lto_output_decl_index): Likewise.
13512 (lto_record_function_out_decl_state): Likewise.
13513 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13514
3dbc97a9
RB
135152013-06-24 Richard Biener <rguenther@suse.de>
13516
13517 PR tree-optimization/57488
13518 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13519
8345965a
AM
135202013-06-24 Alan Modra <amodra@gmail.com>
13521
13522 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13523 (gen_easy_altivec_constant): Likewise.
13524 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13525 easy_vector_constant_msb): Likewise.
13526
b7df379f
JJ
135272013-06-23 Jakub Jelinek <jakub@redhat.com>
13528
13529 PR target/57688
13530 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13531 add missing return true.
13532
12211b99 135332013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13534
13535 PR target/52483
13536 * config/sh/predicates.md (general_extend_operand): Invoke
13537 general_movsrc_operand for memory operands.
13538 (general_movsrc_operand): Allow reg+reg addressing, do not use
13539 general_operand for memory operands.
13540
97db2bf7
ST
135412013-06-23 Sriraman Tallam <tmsriram@google.com>
13542
13543 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13544 when current target options does not apply.
13545 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13546 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13547 * config/i386/bmiintrin.h: Pass appropriate target
13548 attributes to header.
97db2bf7
ST
13549 * config/i386/mmintrin.h: Ditto.
13550 * config/i386/nmmintrin.h: Ditto.
13551 * config/i386/avx2intrin.h: Ditto.
13552 * config/i386/fxsrintrin.h: Ditto.
13553 * config/i386/tbmintrin.h: Ditto.
13554 * config/i386/xsaveintrin.h: Ditto.
13555 * config/i386/f16cintrin.h: Ditto.
13556 * config/i386/xtestintrin.h: Ditto.
13557 * config/i386/xsaveoptintrin.h: Ditto.
13558 * config/i386/bmi2intrin.h: Ditto.
13559 * config/i386/lzcntintrin.h: Ditto.
13560 * config/i386/smmintrin.h: Ditto.
13561 * config/i386/wmmintrin.h: Ditto.
13562 * config/i386/x86intrin.h: Remove all header include guards.
13563 * config/i386/prfchwintrin.h: Ditto.
13564 * config/i386/pmmintrin.h: Ditto.
13565 * config/i386/tmmintrin.h: Ditto.
13566 * config/i386/xmmintrin.h: Ditto.
13567 * config/i386/popcntintrin.h: Ditto.
13568 * config/i386/rdseedintrin.h: Ditto.
13569 * config/i386/ammintrin.h: Ditto.
13570 * config/i386/emmintrin.h: Ditto.
13571 * config/i386/immintrin.h: Remove all header include guards.
13572 * config/i386/fma4intrin.h: Ditto.
13573 * config/i386/lwpintrin.h: Ditto.
13574 * config/i386/xopintrin.h: Ditto.
13575 * config/i386/ia32intrin.h: Ditto.
13576 * config/i386/avxintrin.h: Ditto.
13577 * config/i386/rtmintrin.h: Ditto.
13578 * config/i386/fmaintrin.h: Ditto.
13579 * config/i386/mm3dnow.h: Ditto.
13580
495e6879
ST
135812013-06-22 Sriraman Tallam <tmsriram@google.com>
13582
13583 * common/config/i386/i386-common.c: Handle LZCNT.
13584
11e8f687
AK
135852013-06-22 Andi Kleen <ak@linux.intel.com>
13586
13587 * doc/extend.texi: Use __atomic_store_n instead of
13588 __atomic_store in HLE example.
13589
12211b99 135902013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13591
13592 * config/sh/sh.c: Remove <cstdlib> workaround.
13593
927f908b
AK
135942013-06-21 Andi Kleen <ak@linux.intel.com>
13595
0ba6aff3 13596 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13597
cca410b6
AK
135982013-06-21 Andi Kleen <ak@linux.intel.com>
13599
13600 * doc/extend.texi: Document that __atomic_clear and
13601 __atomic_test_and_set should only be used with bool.
13602
d84db1ed
JH
136032013-06-20 Jan Hubicka <jh@suse.cz>
13604
13605 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13606 types_same_for_odr.
13607 * tree.c (decls_same_for_odr): New function.
13608 (same_for_edr): New function.
13609 (types_same_for_odr): New function.
13610 (get_binfo_at_offset): Use it.
13611 * tree.h (types_same_for_odr): Declare.
13612
12211b99 136132013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13614 Jason Merrill <jason@redhat.com>
13615
13616 * system.h: Include <cstdlib> as well as <stdlib.h>.
13617
49b4ff63
UB
136182013-06-20 Uros Bizjak <ubizjak@gmail.com>
13619
13620 PR target/57655
13621 * config/i386/i386.c (construct_container): Report error if
13622 long double is used with disabled x87 float returns.
13623
7a89ad00
JH
136242013-06-20 Jan Hubicka <jh@suse.cz>
13625
13626 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13627
12211b99 136282013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13629
13630 PR rtl-optimization/57425
13631 PR rtl-optimization/57569
13632 * alias.c (write_dependence_p): Remove parameters mem_mode and
13633 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13634 Changed all callers.
13635 (canon_anti_dependence): Get comments and semantics in sync.
13636 Add parameter mem_canonicalized. Changed all callers.
13637 * rtl.h (canon_anti_dependence): Update prototype.
13638
d16e9a99
RB
136392013-06-20 Richard Biener <rguenther@suse.de>
13640
13641 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13642 byte case, inline streamer_read_uchar and defer section
13643 overrun check.
13644
c3a9b91b
RB
136452013-06-20 Richard Biener <rguenther@suse.de>
13646
13647 PR tree-optimization/57584
13648 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13649 SSA names into the expanded expression that take part in
13650 abnormal coalescing.
13651
371e77e3 136522013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13653
13654 * gcov.c (print_usage): Handle new option.
13655 (process_args): Ditto.
13656 (get_gcov_intermediate_filename): New function.
13657 (output_intermediate_file): New function.
13658 (output_gcov_file): New function
13659 (generate_results): Handle new option.
13660 (release_function): Relase demangled name.
13661 (read_graph_file): Handle demangled name.
13662 (output_lines): Ditto.
13663 * doc/gcov.texi: Document gcov intermediate format.
13664
11f5b71a
VM
136652013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13666
13667 PR bootstrap/57604
13668 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13669 (lra_emit_add): Use the functions. Add comment about Y as an
13670 address segment.
13671
e1f9340b
DE
136722013-06-19 David Edelsohn <dje.gcc@gmail.com>
13673
13674 PR driver/57652
13675 * collect2.c (collect_atexit): New.
13676 (collect_exit): Delete.
13677 (main): Register collect_atexit with atexit.
13678 (collect_wait): Change collect_exit to exit.
13679 (do_wait): Same.
13680 * collect2.h (collect_exit): Delete.
13681 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13682
e3f9e0ac
WM
136832013-06-19 Wei Mi <wmi@google.com>
13684
13685 PR rtl-optimization/57518
13686 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13687 if regno is used in paradoxical subreg.
13688 (update_equiv_regs): Check pdx_subregs[regno] before
13689 set a reg to be equivalent with a mem.
13690
a09f1a76
MK
136912013-06-19 Matthias Klose <doko@ubuntu.com>
13692
13693 PR driver/57651
13694 * file-find.h (find_a_file): Add a mode parameter.
13695 * file-find.c (find_a_file): Likewise.
13696 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13697 with X_OK for the executables.
13698 * collect2.c (main): Call find_a_file with X_OK.
13699
7d18b0ad
SE
137002013-06-19 Steve Ellcey <sellcey@mips.com>
13701
13702 PR target/56942
13703 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13704 Use NEXT_INSN instead of next_real_insn.
13705
6a6dac52
JH
137062013-06-19 Jan Hubicka <jh@suse.cz>
13707
13708 * cgraph.h (const_value_known_p): Replace by ...
13709 (ctor_for_folding): .. this one.
13710 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13711 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13712 * expr.c (expand_expr_real_1): Likewise.
13713 (string_constant): Likewise.
13714 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13715 * ipa.c (process_references): Likewise.
13716 (symtab_remove_unreachable_nodes): Likewise.
13717 * ipa-inline-analysis.c (param_change_prob): Likewise.
13718 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13719 (get_base_constructor): Likwise.
13720 * varpool.c (varpool_remove_node): Likewise.
13721 (varpool_remove_initializer): LIkewise.
13722 (dump_varpool_node): LIkwise.
13723 (const_value_known_p): Rewrite to ...
13724 (ctor_for_folding): ... this one.
13725
216c12ab
JJ
137262013-06-19 Jakub Jelinek <jakub@redhat.com>
13727
13728 PR driver/57651
13729 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13730 PERSONALITY in $PATH derived prefixes.
13731
d53e2f99
JL
137322013-06-19 Jeff Law <law@redhat.com>
13733
ecdbf306
JL
13734 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13735 in comment.
13736
d53e2f99
JL
13737 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13738 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13739 booleans.
13740
89e7fc04
SN
137412013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13742
13743 * config/arm/vfp.md: Move VFP instruction classification documentation
13744 to ...
13745 * config/arm/arm.md: ... here. Update instruction classification
13746 documentation.
13747
5e7f6aaa
RE
137482013-06-19 Richard Earnshaw <rearnsha@arm.com>
13749
13750 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13751 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13752 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13753
5fdc1e5d
SB
137542013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13755
13756 PR target/57609
13757 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13758 with NEXT_INSN. Use tablejump_p to check for jump table data
13759 insns.
13760
e952afba
PC
137612013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13762
13763 PR c++/56544
13764 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13765 that now in C++ the value is correct per the C++ standards.
13766
3fd0303a
RB
137672013-06-19 Richard Biener <rguenther@suse.de>
13768
13769 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13770 for global context.
13771
b04e4b08
AK
137722013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13773
13774 Revert:
13775 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13776
13777 PR target/57609
13778 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13779 with next_active_insn.
13780
bef8491a
ST
137812013-06-18 Sriraman Tallam <tmsriram@google.com>
13782
13783 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13784 functions are inlined during failures to flag an error.
13785 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13786 in early inline pass.
22fc7d3d 13787
c21b257d
L
137882013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13789
13790 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13791 in comments.
13792
33255ae3
JB
137932013-06-18 Julian Brown <julian@codesourcery.com>
13794
13795 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13796 Permit virtual register pre-reload if !strict.
13797 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13798 change.
13799 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13800 prototype.
13801 * config/arm/neon.md (movmisalign<mode>): Use
13802 neon_perm_struct_or_reg_operand instead of
13803 neon_struct_or_register_operand.
13804 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13805 neon_permissive_struct_operand instead of neon_struct_operand.
13806 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13807 neon_vector_mem_operand.
13808 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13809 neon_vector_mem_operand.
13810 (neon_permissive_struct_operand): New.
13811 (neon_struct_or_register_operand): Rename to...
13812 (neon_perm_struct_or_reg_operand): This. Adjust call to
13813 neon_vector_mem_operand.
13814
d579fcda
RB
138152013-06-18 Richard Biener <rguenther@suse.de>
13816
13817 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13818 * lto-streamer.h: Include pointer-set.h.
13819 (struct lto_decl_slot): Remove.
13820 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13821 Remove next_index entry.
13822 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13823 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13824 (lto_init_tree_ref_encoder): Adjust.
13825 (lto_destroy_tree_ref_encoder): Likewise.
13826 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13827 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13828 (lto_output_decl_index): Adjust.
13829 (lto_new_out_decl_state): Likewise.
13830 (lto_record_function_out_decl_state): Likewise.
13831 * lto-streamer-out.c (copy_function): Likewise.
13832
31ee20ba
RB
138332013-06-18 Richard Biener <rguenther@suse.de>
13834
13835 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13836 * cgraphunit.c: Include cfgloop.h.
13837 (init_lowered_empty_function): Initialize the loop tree.
13838 (assemble_thunk): Insert new BBs into loops.
13839
ac0511f2
RB
138402013-06-18 Richard Biener <rguenther@suse.de>
13841
13842 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
13843 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
13844 the map from cache entry to cache index optional.
13845 (streamer_tree_cache_replace_tree): Adjust accordingly.
13846 (streamer_tree_cache_append): Likewise.
13847 (streamer_tree_cache_delete): Likewise.
13848 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
13849 streamer cache map from cache entry to cache index.
13850 * lto-streamer-out.c (create_output_block): Adjust.
13851
09485a08
SN
138522013-06-18 Sofiane Naci <sofiane.naci@arm.com>
13853
22fc7d3d
UB
13854 * config/arm/arm.md (attribute "insn"): Move multiplication and
13855 division attributes to...
09485a08
SN
13856 (attribute "type"): ... here. Remove mult.
13857 (attribute "mul32"): New attribute.
13858 (attribute "mul64"): Add umaal.
13859 (*arm_mulsi3): Update attributes.
13860 (*arm_mulsi3_v6): Likewise.
13861 (*thumb_mulsi3): Likewise.
13862 (*thumb_mulsi3_v6): Likewise.
13863 (*mulsi3_compare0): Likewise.
13864 (*mulsi3_compare0_v6): Likewise.
13865 (*mulsi_compare0_scratch): Likewise.
13866 (*mulsi_compare0_scratch_v6): Likewise.
13867 (*mulsi3addsi): Likewise.
13868 (*mulsi3addsi_v6): Likewise.
13869 (*mulsi3addsi_compare0): Likewise.
13870 (*mulsi3addsi_compare0_v6): Likewise.
13871 (*mulsi3addsi_compare0_scratch): Likewise.
13872 (*mulsi3addsi_compare0_scratch_v6): Likewise.
13873 (*mulsi3subsi): Likewise.
13874 (*mulsidi3adddi): Likewise.
13875 (*mulsi3addsi_v6): Likewise.
13876 (*mulsidi3adddi_v6): Likewise.
13877 (*mulsidi3_nov6): Likewise.
13878 (*mulsidi3_v6): Likewise.
13879 (*umulsidi3_nov6): Likewise.
13880 (*umulsidi3_v6): Likewise.
13881 (*umulsidi3adddi): Likewise.
13882 (*umulsidi3adddi_v6): Likewise.
13883 (*smulsi3_highpart_nov6): Likewise.
13884 (*smulsi3_highpart_v6): Likewise.
13885 (*umulsi3_highpart_nov6): Likewise.
13886 (*umulsi3_highpart_v6): Likewise.
13887 (mulhisi3): Likewise.
13888 (*mulhisi3tb): Likewise.
13889 (*mulhisi3bt): Likewise.
13890 (*mulhisi3tt): Likewise.
13891 (maddhisi4): Likewise.
13892 (*maddhisi4tb): Likewise.
13893 (*maddhisi4tt): Likewise.
13894 (maddhidi4): Likewise.
13895 (*maddhidi4tb): Likewise.
13896 (*maddhidi4tt): Likewise.
13897 (divsi3): Likewise.
13898 (udivsi3): Likewise.
13899 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
13900 (thumb2_mulsi_short_compare0): Likewise.
13901 (thumb2_mulsi_short_compare0_scratch): Likewise.
13902 * config/arm/arm1020e.md (1020mult1): Update attribute change.
13903 (1020mult2): Likewise.
13904 (1020mult3): Likewise.
13905 (1020mult4): Likewise.
13906 (1020mult5): Likewise.
13907 (1020mult6): Likewise.
22fc7d3d
UB
13908 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
13909 change.
09485a08
SN
13910 (cortex_a15_mult64): Likewise.
13911 (cortex_a15_sdiv): Likewise.
13912 (cortex_a15_udiv): Likewise.
13913 * config/arm/arm1026ejs.md (mult1): Update attribute change.
13914 (mult2): Likewise.
13915 (mult3): Likewise.
13916 (mult4): Likewise.
13917 (mult5): Likewise.
13918 (mult6): Likewise.
13919 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
13920 (pj4_ir_div): Likewise.
13921 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
13922 (11_mult2): Likewise.
13923 (11_mult3): Likewise.
13924 (11_mult4): Likewise.
13925 (11_mult5): Likewise.
13926 (11_mult6): Likewise.
13927 (11_mult7): Likewise.
13928 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
13929 (cortex_a8_mla): Likewise.
13930 (cortex_a8_mull): Likewise.
13931 (cortex_a8_smulwy): Likewise.
13932 (cortex_a8_smlald): Likewise.
13933 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
13934 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
13935 (cortex_r4_mul_3): Likewise.
13936 (cortex_r4_mla_4): Likewise.
13937 (cortex_r4_mla_3): Likewise.
13938 (cortex_r4_smlald): Likewise.
13939 (cortex_r4_mull): Likewise.
13940 (cortex_r4_sdiv): Likewise.
13941 (cortex_r4_udiv): Likewise.
13942 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
13943 (cortex_a7_idiv): Likewise.
13944 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
13945 (9_mult2): Likewise.
13946 (9_mult3): Likewise.
13947 (9_mult4): Likewise.
13948 (9_mult5): Likewise.
13949 (9_mult6): Likewise.
13950 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
13951 (cortex_a53_sdiv): Likewise.
13952 (cortex_a53_udiv): Likewise.
13953 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
13954 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
13955 (mp626_mult2): Likewise.
13956 (mp626_mult3): Likewise.
13957 (mp626_mult4): Likewise.
13958 * config/arm/fa526.md (526_mult1): Update attribute change.
13959 (526_mult2): Likewise.
13960 * config/arm/arm-generic.md (mult): Update attribute change.
13961 (mult_ldsched_strongarm): Likewise.
13962 (mult_ldsched): Likewise.
13963 (multi_cycle): Likewise.
13964 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
13965 * config/arm/fa606te.md (606te_mult1): Update attribute change.
13966 (606te_mult2): Likewise.
13967 (606te_mult3): Likewise.
13968 (606te_mult4): Likewise.
13969 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
13970 (cortex_a9_mac16): Likewise.
13971 (cortex_a9_multiply): Likewise.
13972 (cortex_a9_mac): Likewise.
13973 (cortex_a9_multiply_long): Likewise.
13974 * config/arm/fa626te.md (626te_mult1): Update attribute change.
13975 (626te_mult2): Likewise.
13976 (626te_mult3): Likewise.
13977 (626te_mult4): Likewise.
13978
8951f345
RB
139792013-06-18 Richard Biener <rguenther@suse.de>
13980
13981 PR lto/57334
13982 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
13983
d8101d05
AK
139842013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13985
13986 PR target/57609
13987 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13988 with next_active_insn.
13989
69eff9da
AM
139902013-06-18 Alan Modra <amodra@gmail.com>
13991
13992 * config/rs6000/rs6000.h (enum data_align): New.
13993 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
13994 (DATA_ABI_ALIGNMENT): Define.
13995 (CONSTANT_ALIGNMENT): Correct comment.
13996 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
13997 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
13998
8ed00d76
DM
139992013-06-17 David Malcolm <dmalcolm@redhat.com>
14000
14001 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
14002 ATTRIBUTE_UNUSED marking.
14003
3d33d06b
SN
140042013-06-17 Sofiane Naci <sofiane.naci@arm.com>
14005
14006 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
14007 alternative and update.
14008 (aarch64_dup_lanedi): Delete.
14009 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
14010 * config/aarch64/aarch64-simd-builtins.def: Update.
14011
ee03e71d
RB
140122013-06-17 Richard Biener <rguenther@suse.de>
14013
14014 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
14015 (lto_input_scc): Declare.
14016 (lto_input_tree_1): Likewise.
14017 (struct lto_stats_d): Add num_tree_bodies_output and
14018 num_pickle_refs_output.
14019 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
14020 (lto_read_tree_1): Split out from ...
14021 (lto_read_tree): ... this.
14022 (lto_input_scc): New function.
14023 (lto_input_tree_1): Split out from ...
14024 (lto_input_tree): ... this. Handle LTO_tree_scc.
14025 (lto_data_in_create): Create the streamer cache without hashes.
14026 * lto-streamer-out.c (create_output_block): Create the streamer
14027 cache with hashes when not doing WPA.
14028 (lto_write_tree_1): Split out from ...
14029 (lto_write_tree): ... this.
14030 (get_symbol_initial_value): New function.
14031 (lto_output_tree_1): Split out from ...
14032 (lto_output_tree): ... this. Write trees as series of SCCs
14033 using a DFS walk via DFS_write_tree.
14034 (struct sccs, struct scc_entry): New types.
14035 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
14036 (DFS_write_tree_body): New function.
14037 (DFS_write_tree): Likewise.
14038 (hash_tree): Likewise.
14039 (scc_entry_compare): Likewise.
14040 (hash_scc): Likewise.
14041 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
14042 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
14043 TREE_CHAIN as regular reference.
14044 (streamer_read_integer_cst): Remove.
14045 (streamer_get_pickled_tree): Adjust.
14046 * tree-streamer-out.c (streamer_write_chain): Disable streaming
14047 of DECL_EXTERNALs in BLOCK_VARS for now.
14048 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
14049 reference.
14050 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14051 Add hash value argument and record that if hashes are recorded
14052 in the cache.
14053 (streamer_tree_cache_insert_1): Adjust.
14054 (streamer_tree_cache_insert): Likewise.
14055 (streamer_tree_cache_insert_at): Rename to ...
14056 (streamer_tree_cache_replace_tree): ... this and adjust.
14057 (streamer_tree_cache_append): Adjust.
14058 (record_common_node): Likewise.
14059 (streamer_tree_cache_create): Add argument whether to
14060 record hash values together with trees.
14061 (streamer_tree_cache_delete): Adjust.
14062 * tree-streamer.h (struct streamer_tree_cache_d): Add
14063 vector of hashes.
14064 (streamer_read_integer_cst): Remove.
14065 (streamer_tree_cache_insert): Adjust.
14066 (streamer_tree_cache_append): Likewise.
14067 (streamer_tree_cache_insert_at): Rename to ...
14068 (streamer_tree_cache_replace_tree): ... this and adjust.
14069 (streamer_tree_cache_create): Add argument whether to record hashes.
14070 (streamer_tree_cache_get): Rename to ...
14071 (streamer_tree_cache_get_tree): ... this.
14072 (streamer_tree_cache_get_hash): New function.
14073 * tree.c (cache_integer_cst): New function.
14074 * tree.h (cache_integer_cst): Declare.
14075 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
14076 * lto-symtab.c (lto_varpool_replace_node): Only release
14077 DECL_INITIAL of non-prevailing decls.
14078 * varpool.c (varpool_remove_initializer): Do not release
14079 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14080
0de86a92
JU
140812013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14082
14083 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14084 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14085 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14086 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14087 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14088 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14089 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14090 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14091 instead of TARGET_64BIT.
14092 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14093 Require ISA_HAS_<D>DIV.
14094
74240413
RS
140952013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14096
14097 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14098 (mips*-*-linux*): Move default with_llsc setting to where other
14099 defaults are set.
14100 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14101 with_arch block.
14102 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14103 Likewise. Remove default with_tune setting. Move default float
14104 setting to its own block. Handle with_llsc in the same block as above.
14105
12211b99 141062013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14107
14108 PR rtl-optimization/57425
14109 PR rtl-optimization/57569
299a5f6a 14110 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14111 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14112 Changed all callers.
14113 (canon_anti_dependence): New function.
14114 * cse.c (check_dependence): Use canon_anti_dependence.
14115 * cselib.c (cselib_invalidate_mem): Likewise.
14116 * rtl.h (canon_anti_dependence): Declare.
14117
b259d352
JU
141182013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14119
14120 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14121 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14122 ".set mips3" for 64-bit targets.
14123
4de09b85
DC
141242013-06-15 Dehao Chen <dehao@google.com>
14125
14126 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14127 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14128 (gimple_check_call_args): Likewise.
14129 * value-prof.c (check_ic_target): Likewise.
14130 * ipa-inline.c (early_inliner): Likewise.
14131 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14132 * cgraph.c (cgraph_create_edge_1): Likewise.
14133 (cgraph_make_edge_direct): Likewise.
14134
d1aa4a76
MM
141352013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14136
14137 PR target/57615
14138 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14139 rs6000_output_move_128bit to handle emitting quad memory
14140 operations. Set attribute length to 8 bytes.
14141
12211b99 141422013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14143
14144 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14145 New pattern.
14146 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14147 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14148 (aarch64_<su>mlsl<mode>): Likewise.
14149
f5273574
MS
141502013-06-14 Mike Stump <mikestump@comcast.net>
14151
14152 * Makefile.in (TARGET_H): Add insn-codes.h.
14153
ef7e7ab2
AM
141542013-06-14 Alan Modra <amodra@gmail.com>
14155
14156 PR middle-end/57134
14157 PR middle-end/57586
14158 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14159 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14160 bitfield expansion when EXPAND_MEMORY.
14161 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14162
135faab6
MM
141632013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14164
14165 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14166 test for clearing quad memory on 32-bit later.
14167
948a1fd9
MG
141682013-06-13 Marc Glisse <marc.glisse@inria.fr>
14169
14170 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14171 (fold_negate_expr): Likewise.
14172 (fold_real_zero_addition_p): Handle vectors.
14173 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14174
0597fb9c
AM
141752013-06-14 Alan Modra <amodra@gmail.com>
14176
14177 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14178
e5b962d0
JH
141792013-06-13 Jan Hubicka <jh@suse.cz>
14180
14181 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14182 Local comdats are not externally visible.
14183 * symtab.c (dump_symtab_base): Dump externally visible.
14184 (verify_symtab_base): Verify back links in the symtab hash.
14185
a8355e51
BC
141862013-06-13 Bin Cheng <bin.cheng@arm.com>
14187
14188 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14189 CONVERT_EXPR as equal nodes.
14190
8f7e6e33
BC
141912013-06-13 Bin Cheng <bin.cheng@arm.com>
14192
22fc7d3d 14193 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14194
5d418483
MG
141952013-06-13 Marc Glisse <marc.glisse@inria.fr>
14196
14197 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14198 Generalize to complex and vector.
14199 * tree.c (build_all_ones_cst): New function.
14200 * tree.h (build_all_ones_cst): Declare it.
14201
50751417
AM
142022013-06-13 Alan Modra <amodra@gmail.com>
14203
14204 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14205 * config/rs6000/rs6000.md (signbittf2): New insn.
14206 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14207 (abstf2_internal, cmptf_internal2): Likewise.
14208 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14209
4b02c962 142102013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14211 Pat Haugen <pthaugen@us.ibm.com>
14212 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14213
14214 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14215 power8 byte, half-word, and quad-word atomic instructions.
14216 (emit_store_conditional): Likewise.
14217 (rs6000_expand_atomic_compare_and_swap): Likewise.
14218 (rs6000_expand_atomic_op): Likewise.
14219
14220 * config/rs6000/sync.md (larx): Add new modes for power8.
14221 (stcx): Likewise.
14222 (AINT): New mode iterator to include TImode as well as normal
14223 integer modes on power8.
14224 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14225 that VSX registers are not considered. Use AINT mode iterator
14226 instead of INT1 to allow inclusion of quad word atomic operations
14227 on power8.
14228 (load_locked<mode>): Likewise.
14229 (store_conditional<mode>): Likewise.
14230 (atomic_compare_and_swap<mode>): Likewise.
14231 (atomic_exchange<mode>): Likewise.
14232 (atomic_nand<mode>): Likewise.
14233 (atomic_fetch_<fetchop_name><mode>): Likewise.
14234 (atomic_nand_fetch<mode>): Likewise.
14235 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14236 each type.
14237 (ATOMIC): On power8, add QImode, HImode modes.
14238 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14239 modes that promote to SImode.
14240 (load_lockedti): Convert TImode arguments to PTImode, so that we
14241 get a guaranteed even/odd register pair.
14242 (load_lockedpti): Likewise.
14243 (store_conditionalti): Likewise.
14244 (store_conditionalpti): Likewise.
14245
14246 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14247 atomic load/store instructions.
14248 (HSI): Likewise.
14249
710b6cc1
RS
142502013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14251
14252 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14253 loads.
14254 (insn_count): New attribute, with most cases extracted from...
14255 (length): ...here. Redefine most cases in terms of insn_count.
14256 (single_insn): Delete.
14257 (can_delay): Use insn_count to check for single instructions.
14258 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14259 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14260 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14261 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14262 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14263 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14264 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14265 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14266 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14267 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14268 rather than "length".
14269 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14270 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14271 Use "insn_count" rather than "length".
14272 * config/mips/mips-dsp.md
14273 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14274 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14275 length attributes.
14276
1951f101
MG
142772013-06-12 Marc Glisse <marc.glisse@inria.fr>
14278
14279 PR tree-optimization/57361
14280 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14281
8b033a8a
SN
142822013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14283
22fc7d3d
UB
14284 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14285 to split.
8b033a8a
SN
14286 (aarch64_simd_combine<mode>): New instruction expansion.
14287 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14288 function prototype.
14289 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14290 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14291
ca0f62a8
JH
142922013-06-12 Jan Hubicka <jh@suse.cz>
14293
14294 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14295 decl has when in streaming stage.
14296 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14297 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14298
12211b99 142992013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14300
14301 PR target/57578
14302 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14303
bfdeda2c
JJ
143042013-06-12 Jakub Jelinek <jakub@redhat.com>
14305
14306 PR tree-optimization/57537
14307 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14308 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14309
a4fa02d1
RB
143102013-06-12 Richard Biener <rguenther@suse.de>
14311
14312 * data-streamer.h (streamer_write_char_stream): CSE
14313 obs->current_pointer.
14314 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14315 streamer_write_char_stream manually and optimize the resulting loop.
14316 (streamer_write_hwi_stream): Likewise.
14317
bbf9ad07
JH
143182013-06-12 Jan Hubicka <jh@suse.cz>
14319
14320 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14321 * cgraph.h (varpool_create_empty_node): Declare.
14322 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14323 duplicated nodes.
14324 * symtab.c (symtab_unregister_node): Be lax about missin entries
14325 in node hash.
14326 (symtab_get_node): Update comment.
14327 * varpool.c (varpool_create_empty_node): Break out from ...
14328 (varpool_node_for_decl): ... here.
14329 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14330
a53f90ad
EB
143312013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14332
14333 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14334 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14335 part. Use straight-line flow at the end.
14336 <COMPONENT_REF>: Remove superfluous else.
14337 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14338
946f9306
JJ
143392013-06-12 Jakub Jelinek <jakub@redhat.com>
14340
14341 PR target/56564
14342 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14343 target hook even for !TREE_PUBLIC decls. If no resolution info
14344 is available, return false for common and external decls.
14345
a7fca6f0
KP
143462013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14347
14348 * config/rl78/constraints.md (U): New constraint.
14349 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14350 valloc attribute.
14351
c7d8f446
MM
143522013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14353
14354 PR target/57589
14355 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14356 to allow returning address to AT_PLATFORM name.
14357
08346abd
JH
143582013-06-11 Jan Hubicka <jh@suse.cz>
14359
14360 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14361 * cgraph.h (symtab_node_base): Add weakref flag.
14362 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14363 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14364 (output_weakrefs): Use weakref flag.
14365 * fold-const.c (simple_operand_p): Handle WEAK.
14366 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14367 * ipa.c (varpool_externally_visible_p): Drop weakref.
14368 (function_and_variable_visibility): Update comment; fix weakref
14369 sanity checks; do not clear DECL_WEAK on them.
14370 * lto-cgraph.c (lto_output_node): update.
14371 (lto_output_varpool_node): Update.
14372 (input_overwrite_node): Update.
14373 (input_node): Update.
14374 (input_varpool_node): Update.
14375 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14376 (lto_symtab_merge_symbols): Add sanity check.
14377 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14378 * passes.c (rest_of_decl_compilation): Set static flag, too.
14379 * symtab.c (dump_symtab_base): Dump weakref.
14380 (verify_symtab_base): Sanity check weakrefs.
14381 (symtab_make_decl_local): Remove duplicated code.
14382 (symtab_alias_ultimate_target): Simplify.
14383 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14384
2e6a2f88
TV
143852013-06-11 Tom de Vries <tom@codesourcery.com>
14386
14387 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14388 sequence_vect == NULL.
14389
d9af3652
DD
143902013-06-11 DJ Delorie <dj@redhat.com>
14391
14392 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14393 (rl78_unwind_word_mode): New.
14394
ffa66012
DM
143952013-06-11 David Malcolm <dmalcolm@redhat.com>
14396
14397 * final.c (debug_prefix_maps): Make static.
14398
783f2d35
DM
143992013-06-11 David Malcolm <dmalcolm@redhat.com>
14400
14401 * function.c (initial_trampoline): Remove stray copy.
14402
7af26def
SN
144032013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14404
14405 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14406
97756c0e
MJ
144072013-06-11 Martin Jambor <mjambor@suse.cz>
14408
14409 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14410 within bounds at the beginning of the function.
14411
2c7b8bf6
AM
144122013-06-11 Alan Modra <amodra@gmail.com>
14413
14414 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14415 reporting.
14416 (get_named_section): Don't NULL !DECL_P decl.
14417
77cea46e
IZ
144182013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14419
14420 * doc/invoke.texi (core-avx2): Document.
14421 (slm): Likewise.
14422 (atom): Updated with MOVBE.
14423
888f0920
RB
144242013-06-11 Richard Biener <rguenther@suse.de>
14425
22fc7d3d 14426 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14427
6b438d58
AB
144282013-06-11 Anton Blanchard <anton@samba.org>
14429
14430 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14431 correct shift value in little-endian mode.
14432
3bc66938
JJ
144332013-06-11 Jakub Jelinek <jakub@redhat.com>
14434
14435 PR target/56564
14436 * varasm.c (get_variable_align): Move #endif to the right place.
14437
a5dc7f88
CC
144382013-06-10 Cary Coutant <ccoutant@google.com>
14439
14440 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14441 for hash so that hash table traversal order is deterministic.
14442
19be72ab 144432013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14444 Pat Haugen <pthaugen@us.ibm.com>
14445 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14446
14447 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14448 of vectors in GPRS if they are direct moves or quad word load or
14449 store moves.
14450
14451 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14452 declaration.
14453 (direct_move_p): Likewise.
14454 (quad_load_store_p): Likewise.
14455
14456 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14457 classes into bins based on the physical register type.
14458 (reg_class_to_reg_type): Likewise.
14459 (IS_STD_REG_TYPE): Likewise.
14460 (IS_FP_VECT_REG_TYPE): Likewise.
14461 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14462 use direct move instructions.
14463 (reload_gpr_vsx): Likewise.
14464 (reload_vsx_gpr): Likewise.
14465 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14466 information that is a simplification of register classes. Also
14467 precalculate direct move reload helpers.
14468 (direct_move_p): New function to return true if the operation can
14469 be done as a direct move instruciton.
14470 (quad_load_store_p): New function to return true if the operation
14471 is a quad memory operation.
14472 (rs6000_legitimize_address): If quad memory, only allow register
14473 indirect for TImode addresses.
14474 (rs6000_legitimate_address_p): Likewise.
14475 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14476 (rs6000_reload_register_type): Likewise.
14477 (register_to_reg_type): Return register type.
14478 (rs6000_secondary_reload_simple_move): New helper function for
14479 secondary reload and secondary memory needed to identify anything
14480 that is a simple move, and does not need reloading.
14481 (rs6000_secondary_reload_direct_move): New helper function for
14482 secondary reload to identify cases that can be done with several
14483 instructions via the direct move instructions.
14484 (rs6000_secondary_reload_move): New helper function for secondary
14485 reload to identify moves between register types that can be done.
14486 (rs6000_secondary_reload): Add support for quad memory operations
14487 and for direct move.
14488 (rs6000_secondary_memory_needed): Likewise.
14489 (rs6000_debug_secondary_memory_needed): Change argument names.
14490 (rs6000_output_move_128bit): New function to return the move to
14491 use for 128-bit moves, including knowing about the various
14492 limitations of quad memory operations.
14493
14494 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14495 memory operations. call rs6000_output_move_128bit for the actual
14496 instruciton(s) to generate.
14497 (vsx_movti_64bit): Likewise.
14498
14499 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14500 (UNSPEC_P8V_MTVSRWZ): Likewise.
14501 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14502 (UNSPEC_P8V_MTVSRD): Likewise.
14503 (UNSPEC_P8V_XXPERMDI): Likewise.
14504 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14505 (UNSPEC_FUSION_GPR): Likewise.
14506 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14507 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14508 (f32_sv): Likewise.
14509 (f32_dm): Likewise.
14510 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14511 loads and direct move instructions.
14512 (zero_extendsidi2_lfiwzx): Likewise.
14513 (extendsidi2_lfiwax): Likewise.
14514 (extendsidi2_nocell): Likewise.
14515 (floatsi<mode>2_lfiwax): Likewise.
14516 (lfiwax): Likewise.
14517 (floatunssi<mode>2_lfiwzx): Likewise.
14518 (lfiwzx): Likewise.
14519 (fix_trunc<mode>_stfiwx): Likewise.
14520 (fixuns_trunc<mode>_stfiwx): Likewise.
14521 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14522 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14523 (parity<mode>2_cmpb): Set length/type attr.
14524 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14525 for 'mr.' to fast_compare.
14526 (bpermd_<mode>): Change type attr to popcnt.
14527 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14528 (p8_mtvsrwz_1): Likewise.
14529 (p8_mtvsrwz_2): Likewise.
14530 (reload_fpr_from_gpr<mode>): Likewise.
14531 (p8_mtvsrd_1): Likewise.
14532 (p8_mtvsrd_2): Likewise.
14533 (p8_xxpermdi_<mode>): Likewise.
14534 (reload_vsx_from_gpr<mode>): Likewise.
14535 (reload_vsx_from_gprsf): Likewise.
14536 (p8_mfvsrd_3_<mode>): LIkewise.
14537 (reload_gpr_from_vsx<mode>): Likewise.
14538 (reload_gpr_from_vsxsf): Likewise.
14539 (p8_mfvsrd_4_disf): Likewise.
14540 (multi-word GPR splits): Do not split direct moves or quad memory
14541 operations.
14542
16876bdc
DM
145432013-06-10 David Malcolm <dmalcolm@redhat.com>
14544
14545 * tree-into-ssa.c (interesting_blocks): Make static.
14546
df8a1d28
JJ
145472013-06-10 Jakub Jelinek <jakub@redhat.com>
14548
14549 PR target/56564
14550 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14551 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14552 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14553 (get_variable_align): New function.
14554 (get_variable_section, emit_bss, emit_common,
14555 assemble_variable_contents, place_block_symbol): Use
14556 get_variable_align instead of DECL_ALIGN.
14557 (assemble_noswitch_variable): Add align argument, use it
14558 instead of DECL_ALIGN.
14559 (assemble_variable): Adjust caller. Use get_variable_align
14560 instead of DECL_ALIGN.
14561 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14562 caller.
14563 (DATA_ABI_ALIGNMENT): Define.
14564 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14565 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14566 opt is false, only return the psABI mandated alignment increase.
14567 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14568 (DATA_ABI_ALIGNMENT): ... this.
14569 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14570 (DATA_ABI_ALIGNMENT): ... this.
14571 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14572 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14573 (DATA_ABI_ALIGNMENT): ... this.
14574 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14575 * doc/tm.texi: Regenerated.
14576
57b29ca6
UB
145772013-06-10 Uros Bizjak <ubizjak@gmail.com>
14578
14579 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14580 cmp_code to construct REG_EQUAL note.
14581
3e56ed50
JJ
145822013-06-09 Jakub Jelinek <jakub@redhat.com>
14583
14584 PR target/57568
14585 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14586 that operands[2] doesn't overlap with operands[0].
14587
74fe2a1d
DE
145882013-06-09 David Edelsohn <dje.gcc@gmail.com>
14589 Jan Hubicka <jh@suse.cz>
14590
14591 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14592 hack to mark symbols as used.
14593
ed52a84e
VM
145942013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14595
14596 PR rtl-optimization/57559
14597 * lra-constraints.c (process_alt_operands): Don't discourage
14598 memory with known offset for offsetable memory constraint.
14599 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14600
299316ed
EB
146012013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14602
14603 * varasm.c (struct oc_local_state): Reorder fields.
14604 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14605 and adjust accordingly.
14606 (output_constructor): Reorder initialization code and adjust call to
14607 output_constructor_bitfield.
14608
88ac60d3
JH
146092013-06-07 Jan Hubicka <jh@suse.cz>
14610
14611 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14612
4cdce1a8
DM
146132013-06-07 David Malcolm <dmalcolm@redhat.com>
14614
14615 * tree-object-size.c (unknown): Make const.
14616
b5e0425c
AK
146172013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14618
14619 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14620 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14621 for last alternative in the cpu_facility attribute.
14622
79678d04
KT
146232013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14624
14625 PR target/56315
14626 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14627 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14628 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14629 * config/arm/constraints.md (Dg): New constraint.
14630 * config/arm/neon.md (xordi3_neon): Remove.
14631 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14632 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14633
b31ddbdb
KT
146342013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14635
14636 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14637 Clean up alternatives.
14638
8f90b7d4
AM
146392013-06-07 Alan Modra <amodra@gmail.com>
14640
14641 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14642 va_list_gpr_size.
14643
961ce119
AM
146442013-06-07 Alan Modra <amodra@gmail.com>
14645
14646 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14647
33e49835
KT
146482013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14649
14650 * config/arm/constraints.md (Df): New constraint.
14651 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14652 Correct length attribute for last two alternatives.
14653
acd17ae6
AM
146542013-06-07 Alan Modra <amodra@gmail.com>
14655
14656 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14657 override user -mfp-in-toc.
14658 (offsettable_ok_by_alignment): Consider just the current access
14659 rather than the whole object, unless BLKmode. Handle
14660 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14661 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14662 for -mcmodel=medium.
14663 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14664 override user -mfp-in-toc or -msum-in-toc. Default to
14665 -mno-fp-in-toc for -mcmodel=medium.
14666
73310b0e
DD
146672013-06-06 DJ Delorie <dj@redhat.com>
14668
14669 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14670 TARGET_VALID_POINTER_MODE.
14671
0bd62dca 146722013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14673 Pat Haugen <pthaugen@us.ibm.com>
14674 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14675
14676 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14677 Document new power8 builtins.
14678
14679 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14680 condition code register, to allow 128-bit logical operations to be
14681 done in the VSX or GPR registers.
14682 (nor<mode>3): Use the canonical form for nor.
14683 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14684 vclz*, and vpopcnt* vector instructions.
14685 (nand<mode>3): Likewise.
14686 (orc<mode>3): Likewise.
14687 (clz<mode>2): LIkewise.
14688 (popcount<mode>2): Likewise.
14689
14690 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14691 that only the GPRs are recognized.
14692
14693 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14694 support for new power8 builtins.
14695
14696 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14697 builtin functions.
14698 (xscvdpspn): Likewise.
14699 (vclz): Likewise.
14700 (vclzb): Likewise.
14701 (vclzh): Likewise.
14702 (vclzw): Likewise.
14703 (vclzd): Likewise.
14704 (vpopcnt): Likewise.
14705 (vpopcntb): Likewise.
14706 (vpopcnth): Likewise.
14707 (vpopcntw): Likewise.
14708 (vpopcntd): Likewise.
14709 (vgbbd): Likewise.
14710 (vmrgew): Likewise.
14711 (vmrgow): Likewise.
14712 (eqv): Likewise.
14713 (eqv_v16qi3): Likewise.
14714 (eqv_v8hi3): Likewise.
14715 (eqv_v4si3): Likewise.
14716 (eqv_v2di3): Likewise.
14717 (eqv_v4sf3): Likewise.
14718 (eqv_v2df3): Likewise.
14719 (nand): Likewise.
14720 (nand_v16qi3): Likewise.
14721 (nand_v8hi3): Likewise.
14722 (nand_v4si3): Likewise.
14723 (nand_v2di3): Likewise.
14724 (nand_v4sf3): Likewise.
14725 (nand_v2df3): Likewise.
14726 (orc): Likewise.
14727 (orc_v16qi3): Likewise.
14728 (orc_v8hi3): Likewise.
14729 (orc_v4si3): Likewise.
14730 (orc_v2di3): Likewise.
14731 (orc_v4sf3): Likewise.
14732 (orc_v2df3): Likewise.
14733
14734 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14735 allow power8 quad mode in 64-bit.
14736 (rs6000_builtin_vectorized_function): Add support to vectorize
14737 ISA 2.07 count leading zeros, population count builtins.
14738 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14739 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14740 (builtin_function_type): Add vgbbd builtin function which takes an
14741 unsigned argument.
14742 (altivec_expand_vec_perm_const): Add support for new power8 merge
14743 instructions.
14744
14745 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14746 that does not include TImdoe for use with 32-bit.
14747 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14748 instructions.
14749 (UNSPEC_VSX_CVDPSPN): Likewise.
14750 (vsx_xscvdpspn): Likewise.
14751 (vsx_xscvspdpn): Likewise.
14752 (vsx_xscvdpspn_scalar): Likewise.
14753 (vsx_xscvspdpn_directmove): Likewise.
14754 (vsx_and<mode>3): Split logical operations into 32-bit and
14755 64-bit. Add support to do logical operations on TImode as well as
14756 VSX vector types. Allow logical operations to be done in either
14757 VSX registers or in general purpose registers in 64-bit mode. Add
14758 splitters if GPRs were used. For AND, add clobber of CCmode to
14759 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14760 encoding.
14761 (vsx_and<mode>3_32bit): Likewise.
14762 (vsx_and<mode>3_64bit): Likewise.
14763 (vsx_ior<mode>3): Likewise.
14764 (vsx_ior<mode>3_32bit): Likewise.
14765 (vsx_ior<mode>3_64bit): Likewise.
14766 (vsx_xor<mode>3): Likewise.
14767 (vsx_xor<mode>3_32bit): Likewise.
14768 (vsx_xor<mode>3_64bit): Likewise.
14769 (vsx_one_cmpl<mode>2): Likewise.
14770 (vsx_one_cmpl<mode>2_32bit): Likewise.
14771 (vsx_one_cmpl<mode>2_64bit): Likewise.
14772 (vsx_nor<mode>3): Likewise.
14773 (vsx_nor<mode>3_32bit): Likewise.
14774 (vsx_nor<mode>3_64bit): Likewise.
14775 (vsx_andc<mode>3): Likewise.
14776 (vsx_andc<mode>3_32bit): Likewise.
14777 (vsx_andc<mode>3_64bit): Likewise.
14778 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14779 and xxlorc instructions.
14780 (vsx_eqv<mode>3_64bit): Likewise.
14781 (vsx_nand<mode>3_32bit): Likewise.
14782 (vsx_nand<mode>3_64bit): Likewise.
14783 (vsx_orc<mode>3_32bit): Likewise.
14784 (vsx_orc<mode>3_64bit): Likewise.
14785
14786 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14787
14788 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14789 instruction.
14790 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14791 (p8_vmrgow): Likewise.
14792 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14793 GPRs to be split under VSX.
14794 (p8v_clz<mode>2): Add power8 count leading zero support.
14795 (p8v_popcount<mode>2): Add power8 population count support.
14796 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14797 support.
14798
14799 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14800 instruction.
14801
14802 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14803 builtin functions.
14804 (vec_nand): Likewise.
14805 (vec_vclz): Likewise.
14806 (vec_vclzb): Likewise.
14807 (vec_vclzd): Likewise.
14808 (vec_vclzh): Likewise.
14809 (vec_vclzw): Likewise.
14810 (vec_vgbbd): Likewise.
14811 (vec_vmrgew): Likewise.
14812 (vec_vmrgow): Likewise.
14813 (vec_vpopcnt): Likewise.
14814 (vec_vpopcntb): Likewise.
14815 (vec_vpopcntd): Likewise.
14816 (vec_vpopcnth): Likewise.
14817 (vec_vpopcntw): Likewise.
14818
37684c46
VM
148192013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14820
14821 PR rtl-optimization/57468
14822 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14823 spilled pseudos.
14824
d89ae27c
VM
148252013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14826
14827 PR rtl-optimization/57459
14828 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14829 type when setting live regs.
14830
3597e113
VM
148312013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14832
14833 * config/s390/s390.opt (mlra): New option.
14834 * config/s390/s390.c (s390_decompose_address): Check displacement
14835 for all registers for LRA.
14836 (s390_secondary_reload): Don't used secondary reloads for LRA.
14837 (s390_lra_p): New function.
14838 (TARGET_LRA_P): Define.
14839 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
14840 of attribute cpu_facility to zarch for the last alternative.
14841 (*cmpmem_short): Ditto.
14842
01037aeb
EB
148432013-06-06 Eric Botcazou <ebotcazou@adacore.com>
14844
14845 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
14846 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
14847 (arm_expand_prologue): Likewise.
14848
3371a64f
TJ
148492013-06-06 Teresa Johnson <tejohnson@google.com>
14850
14851 PR c++/53743
14852 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
14853 as this is now done by redirect_edge_and_branch_force.
14854 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
14855 barriers, and fix interaction with splitting.
14856 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
14857 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
14858 reflect changes made in the routine.
14859 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
14860 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
14861 since this is called in cfglayout mode, and replace partition fixup
14862 with assert as that is now done by force_nonfallthru_and_redirect.
14863 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
14864 already be marked with region crossing note.
14865 (insert_section_boundary_note): Make non-static, gate on flag
14866 has_bb_partition, rewrite to also check for multiple partitions.
14867 (rest_of_handle_reorder_blocks): Remove call to
14868 insert_section_boundary_note, now done later during free_cfg.
14869 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
14870 * bb-reorder.h (insert_section_boundary_note): Declare.
14871 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
14872 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
14873 invoke insert_section_boundary_note.
14874 (try_redirect_by_replacing_jump): Remove unnecessary
14875 check for region crossing note.
14876 (fixup_partition_crossing): New function.
14877 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
14878 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
14879 in non-cfglayout mode.
14880 (force_nonfallthru_and_redirect): Fixup partition boundaries,
14881 remove old code that tried to do this. Emit barrier correctly
14882 when we are in cfglayout mode.
14883 (last_bb_in_partition): New function.
14884 (rtl_split_edge): Correctly fixup partition boundaries.
14885 (commit_one_edge_insertion): Remove old code that tried to
14886 fixup region crossing edge since this is now handled in
14887 split_block, and set up insertion point correctly since
14888 block may now end in a jump.
14889 (verify_hot_cold_block_grouping): Guard against checking when not in
14890 linearized RTL mode.
14891 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
14892 notes.
14893 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
14894 rtl_verify_flow_info, so not called in cfglayout mode.
14895 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
14896 (fixup_reorder_chain): Remove old code that attempted to fixup region
14897 crossing note as this is now handled in force_nonfallthru_and_redirect.
14898 (duplicate_insn_chain): Don't duplicate switch section notes.
14899 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
14900 note.
14901 * basic-block.h (emit_barrier_after_bb): Declare.
14902
66071e10
KT
149032013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14904
14905 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
14906 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
14907 arm_usatsihi): Adjust alternatives for arm_restrict_it.
14908
0e26bf3d
KT
149092013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14910
14911 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
14912 where appropriate.
14913 * config/arm/ldmstm.md: Regenerate.
14914
12b4e7ef
KT
149152013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14916
14917 * config/arm/sync.md (atomic_loaddi_1):
14918 Disable predication for arm_restrict_it.
14919 (arm_load_exclusive<mode>): Likewise.
14920 (arm_load_exclusivesi): Likewise.
14921 (arm_load_exclusivedi): Likewise.
14922 (arm_load_acquire_exclusive<mode>): Likewise.
14923 (arm_load_acquire_exclusivesi): Likewise.
14924 (arm_load_acquire_exclusivedi): Likewise.
14925 (arm_store_exclusive<mode>): Likewise.
14926 (arm_store_exclusive<mode>): Likewise.
14927 (arm_store_release_exclusivedi): Likewise.
14928 (arm_store_release_exclusive<mode>): Likewise.
14929
15d16c8a
RB
149302013-06-06 Richard Biener <rguenther@suse.de>
14931
14932 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
14933 after LTO_null.
14934 (lto_tag_is_tree_code_p): Adjust.
14935 (lto_tag_is_gimple_code_p): Likewise.
14936 (lto_gimple_code_to_tag): Likewise.
14937 (lto_tag_to_gimple_code): Likewise.
14938 (lto_tree_code_to_tag): Likewise.
14939 (lto_tag_to_tree_code): Likewise.
14940 * data-streamer.h (streamer_write_hwi_in_range): Use
14941 uhwi streaming to stream the normalized range.
14942 (streamer_read_hwi_in_range): Likewise.
14943
17a7fc37
KT
149442013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14945
14946 * config/arm/arm.md (enabled_for_depr_it): New attribute.
14947 (predicable_short_it): Likewise.
14948 (predicated): Likewise.
14949 (enabled): Handle above.
14950 (define_cond_exec): Set predicated attribute to yes.
14951
b57ca59b
MS
149522013-06-05 Mike Stump <mikestump@comcast.net>
14953
14954 * gdbinit.in (__FUNCTION__): Add.
14955
c1e183a9
UB
149562013-06-05 Uros Bizjak <ubizjak@gmail.com>
14957
14958 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
14959 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
14960
0378bddb
JH
149612013-06-05 Jan Hubicka <jh@suse.cz>
14962
14963 * varasm.c (mark_decl_referenced): Revert the removal until targets
14964 are fixed.
14965
8f8a2057
DE
149662013-06-05 David Edelsohn <dje.gcc@gmail.com>
14967
14968 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
14969 instead of mark_decl_referenced.
14970
edb983b2
JH
149712013-06-05 Jan Hubicka <jh@suse.cz>
14972
14973 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
14974 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
14975 and symtab_used_from_object_file_p.
14976 (cgraph_make_node_local_1): Clear forced_by_abi.
14977 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
14978 * cgraph.h (symtab_node_base): Add forced_by_abi.
14979 (decide_is_variable_needed): Remove.
14980 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
14981 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
14982 (decide_is_symbol_needed): ... this one; handle symbols in general;
14983 always analyze virtuals; honnor forced_by_abi.
14984 (cgraph_finalize_function): Update.
14985 (varpool_finalize_decl): Update.
14986 (symbol_defined_and_needed): Remove.
14987 (analyze_functions): Update.
14988 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14989 output_refs, input_overwrite_node): Handle forced_by_abi.
14990 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
14991 (address_taken_from_non_vtable_p): ... this one.
14992 (comdat_can_be_unshared_p_1): New function.
14993 (cgraph_comdat_can_be_unshared_p): Rename to ...
14994 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
14995 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
14996 (function_and_variable_visibility): Clear forced_by_abi as needed.
14997 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
14998 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
14999 * symtab.c (dump_symtab_base): Dump forced_by_abi.
15000 * varpool.c (decide_is_variable_needed): Remove.
15001
9912dbe5
KT
150022013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15003
15004 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
15005 (arm_option_override): Override arm_restrict_it where appropriate.
15006 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
15007 * config/arm/arm.opt (mrestrict-it): New command-line option.
15008 * doc/invoke.texi: Document -mrestrict-it.
15009
34c136b6
DM
150102013-06-05 David Malcolm <dmalcolm@redhat.com>
15011
15012 * tsan.c (tsan_atomic_table): Make const.
15013
a367df53
RB
150142013-06-05 Richard Biener <rguenther@suse.de>
15015
15016 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
15017 index associated with the tree we are supposed to replace.
15018 * tree-streamer-out.c (pack_ts_base_value_fields): Output
15019 TREE_ASM_WRITTEN as zero for everything but SSA names.
15020
70d51a19
DM
150212013-06-05 David Malcolm <dmalcolm@redhat.com>
15022
15023 * tree-ssa-structalias.c (call_stmt_vars): Make static.
15024
b9bd2075
JH
150252013-06-04 Jan Hubicka <jh@suse.cz>
15026
15027 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
15028 (input_node, input_varpool_node): Handle correctly external same
15029 body aliases.
15030 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
15031 nodes at ltrans stage.
15032
aaae719d
JH
150332013-06-04 Jan Hubicka <jh@suse.cz>
15034
15035 * ipa-inline.c (update_caller_keys): Fix availability test.
15036 (update_callee_keys): Likewise.
15037 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
15038 to follow ELF standard.
15039
107eea2c
JU
150402013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
15041
15042 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
15043 (mips64r5900el-*-elf*): New configurations.
15044 * config/mips/mips-cpus.def (r5900): New processor.
15045 * config/mips/mips-tables.opt: Regenerate.
15046 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
15047 (mips_issue_rate): Handle PROCESSOR_R5900.
15048 (mips_reorg_process_insns): Force reorder mode for the R5900.
15049 * config/mips/mips.h (TARGET_MIPS5900): Define.
15050 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
15051 TARGET_MIPS5900.
15052 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
15053 TARGET_MIPS5900.
15054 * config/mips/mips.md (processor): Add r5900.
15055 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
15056
b7342d25
IB
150572013-06-04 Ian Bolton <ian.bolton@arm.com>
15058
15059 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
15060 into function to generate MOVI instruction.
c1e183a9 15061 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
15062 (aarch64_preferred_simd_mode): Turn into wrapper.
15063 (aarch64_output_scalar_simd_mov_immediate): New function.
15064 * config/aarch64/aarch64-protos.h: Add prototype for above.
15065
81c2dfb9
IB
150662013-06-04 Ian Bolton <ian.bolton@arm.com>
15067
15068 * config/aarch64/aarch64.c (simd_immediate_info): Remove
15069 element_char member.
15070 (sizetochar): Return signed char.
15071 (aarch64_simd_valid_immediate): Remove elchar and other
15072 unnecessary variables.
15073 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
15074 Calculate element_char as required.
15075 * config/aarch64/aarch64-protos.h: Update and move prototype
15076 for aarch64_output_simd_mov_immediate.
15077 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15078 Update arguments.
15079
48063b9d
IB
150802013-06-04 Ian Bolton <ian.bolton@arm.com>
15081
15082 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15083 information completed by aarch64_simd_valid_immediate.
15084 (aarch64_legitimate_constant_p): Update arguments.
15085 (aarch64_simd_valid_immediate): Work with struct rather than many
15086 pointers.
15087 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15088 (aarch64_simd_make_constant): Update arguments.
15089 (aarch64_output_simd_mov_immediate): Work with struct rather than
15090 many pointers. Output immediate directly rather than as operand.
15091 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15092 Update prototype.
15093 * config/aarch64/constraints.md (Dn): Update arguments.
15094
3ea63f60
IB
150952013-06-04 Ian Bolton <ian.bolton@arm.com>
15096
15097 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15098 longer static.
15099 (aarch64_simd_immediate_valid_for_move): Remove.
15100 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15101 (aarch64_simd_make_constant): Update call.
15102 (aarch64_output_simd_mov_immediate): Update call.
15103 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15104 Add prototype.
15105 * config/aarch64/constraints.md (Dn): Update call.
15106
d8edd899
IB
151072013-06-04 Ian Bolton <ian.bolton@arm.com>
15108
15109 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15110 return type to bool for prototype.
15111 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15112 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15113 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15114
44b20bb8
CM
151152013-06-04 Catherine Moore <clm@codesourcery.com>
15116
15117 * config/mips/mips.opt (meva): New.
c1e183a9 15118 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15119 (ASM_SPEC): Handle -meva.
15120 * doc/invoke.texi (meva): Document.
15121
52befbd8
AM
151222013-06-04 Alan Modra <amodra@gmail.com>
15123
15124 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15125 constant output.
15126
aadaf24e
KT
151272013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15128
15129 * rtl.def: Add extra fourth optional field to define_cond_exec.
15130 * gensupport.c (process_one_cond_exec): Process attributes from
15131 define_cond_exec.
15132 * doc/md.texi: Document fourth field in define_cond_exec.
15133
0cd9e9ee
EB
151342013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15135
15136 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15137 out the processing order as in store_bit_field_1.
15138
cb0f665d
JH
151392013-06-04 Jan Hubicka <jh@suse.cz>
15140
15141 PR middle-end/57500
15142 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15143 non-VAR_DECL node if it does not exist yet.
15144
53984b9b
RS
151452013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15146
15147 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15148 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15149 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15150 target_cpu_default setting.
15151
5d318fd4
TJ
151522013-06-03 Teresa Johnson <tejohnson@google.com>
15153
15154 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15155 default to -fopt-info=optimized instead of all.
15156 * doc/invoke.texi: Ditto.
15157 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15158 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15159 (execute_vect_slp): Emit BB vectorization success under
15160 MSG_OPTIMIZED_LOCATIONS.
15161 * tree-vect-slp.c (vect_slp_transform_bb): Change
15162 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15163 * tree-vect-loop.c (vect_transform_loop): Ditto.
15164
ec3af349
JM
151652013-06-03 Jason Merrill <jason@redhat.com>
15166
15167 PR c++/57415
15168 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15169 Use TARGET_EXPR for C++.
15170
1baf9159
JJ
151712013-06-03 Jakub Jelinek <jakub@redhat.com>
15172
15173 PR rtl-optimization/57268
0cd9e9ee 15174 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15175 if DEBUG_INSN_P (insn).
15176
15177 Reapply
15178 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15179
15180 PR rtl-optimization/57268
15181 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15182 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15183
0f1d3965
YR
151842013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15185
15186 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15187 (ix86_avoid_lea_for_addr): Likewise.
15188 (exact_dependency_1): Likewise.
15189 (ix86_adjust_cost): Likewise.
15190 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15191 removed.
15192 (do_reorder_for_imul): Fix typo, formatting and
15193 !reload_completed check removed.
15194 (ix86_sched_reorder): Fix typo and formatting.
15195 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15196 list.
15197
3bc30db4
SN
151982013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15199
15200 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15201
19cc6fac
EB
152022013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15203
15204 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15205 <STRING_CST>: Likewise.
15206 <VECTOR_CST>: Likewise.
15207
c68a6e08
JW
152082013-06-01 Janus Weil <janus@gcc.gnu.org>
15209 Mikael Morin <mikael@gcc.gnu.org>
15210
15211 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15212 * config.in: Regenerated.
15213 * configure: Regenerated.
15214
38e55e5c
JH
152152013-06-01 Jan Hubicka <jh@suse.cz>
15216
15217 PR middle-end/57366
15218 * cgraphunit.c (compile): When weakref is not supported,
15219 set up transparent aliases before final output pass.
15220 * varasm.c (assemble_alias): Do not try to do it here.
15221
eb51d2ff
JH
152222013-06-01 Jan Hubicka <jh@suse.cz>
15223
15224 PR middle-end/57467
15225 * passes.c (for_per_function): Skip unanalyzed functions.
15226
40a7fe1e
JH
152272013-06-01 Jan Hubicka <jh@suse.cz>
15228
15229 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15230 (lto_symtab_merge_symbols_1): ... this one.
15231 (lto_symtab_merge_cgraph_nodes): Rename to ...
15232 (lto_symtab_merge_symbols): ... this one; simplify.
15233 * cgraph.c (same_body_aliases_done): Rename to ...
15234 (cpp_implicit_aliases_done): ... this one.
15235 (cgraph_create_function_alias): Update.
15236 (cgraph_same_body_alias): Update.
c1e183a9 15237 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15238 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15239 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15240 (cgraph_node): Remove same_body_alias.
15241 (varpool_node): Remove alias_of and extra_name_alias.
15242 (same_body_aliases_done): Rename to ..
15243 (cpp_implicit_aliases_done): ... this one.
15244 (symtab_alias_ultimate_target): Add default parameter.
15245 (symtab_resolve_alias): New function.
15246 (fixup_same_cpp_alias_visibility): Declare.
15247 (cgraph_function_node): Add default parameter.
15248 (cgraph_node_asm_name): Likewise.
15249 (cgraph_function_or_thunk_node): Add default parameter; do
15250 not ICE when it is NULL.
15251 (varpool_variable_node): Likewise.
15252 * tree-emutls.c (create_emultls_var): Update.
15253 (ipa_lower_emutls): Update.
15254 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15255 (cgraph_reset_node): Reset alias info.
15256 (cgraph_finalize_function): Update.
15257 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15258 (analyze_function): Simplify.
15259 (cgraph_process_same_body_aliases): Simplify.
15260 (analyze_functions): Fixup same body aliases.
15261 (handle_alias_pairs): Simplify.
15262 (assemble_thunk): Update.
15263 (assemble_thunks_and_aliases): Update.
15264 (output_weakrefs): Rewrite.
15265 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15266 (lto_output_varpool_node): Likewise.
15267 (compute_ltrans_boundary): Remve assert.
15268 (get_alias_symbol): New functoin.
15269 (input_node): Rewrite alias handling.
15270 (input_varpool_node): Likewise.
15271 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15272 * ipa.c (process_references): Handle weakrefs correctly.
15273 (symtab_remove_unreachable_nodes): Likewise.
15274 * trans-mem.c (get_cg_data): Update.
15275 (ipa_tm_create_version_alias): Update.
15276 (ipa_tm_execute): Update.
15277 * symtab.c (dump_symtab_base): Dump aliases.
15278 (verify_symtab_base): Verify aliases.
15279 (symtab_node_availability): New function.
15280 (symtab_alias_ultimate_target): Simplify.
15281 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15282 handle all the fixup cases.
15283 (symtab_resolve_alias): New function.
15284 * passes.c (ipa_write_summaries): Handle weakrefs.
15285 * varpool.c (varpool_analyze_node): Simplify.
15286 (assemble_aliases): Update.
15287 (varpool_create_variable_alias): Simplify.
15288 (varpool_extra_name_alias): Simplify.
15289 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15290 (lto_symtab_merge_symbols): ... this one.
15291
21759881
DT
152922013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15293
15294 Revert
15295 PR rtl-optimization/57268
15296 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15297 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15298
daf4e940
TB
152992013-06-01 Tobias Burnus <burnus@net-b.de>
15300
15301 Partially reverted:
15302 2013-05-31 Tobias Burnus <burnus@net-b.de>
15303
15304 PR middle-end/57073
15305 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15306 further up.
15307
c359d8d0
DT
153082013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15309
15310 PR rtl-optimization/57268
15311 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15312 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15313
4172215d
EB
153142013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15315
15316 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15317 unordered comparison operators when -fno-trapping-math is in effect
15318 on the e500.
15319 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15320 and implement unordered comparison operators properly on the e500.
15321
a8c50132
EB
153222013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15323
15324 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15325 for constant scalar integers.
15326 (simplify_relational_operation_1): Likewise.
15327
44626634
SB
153282013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15329
15330 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15331 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15332 Fix comment.
15333
55805e54
YR
153342013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15335 Igor Zamyatin <igor.zamyatin@intel.com>
15336
15337 Silvermont (SLM) architecture performance tuning.
15338 * config/i386/i386.h (enum ix86_tune_indices): Add
15339 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15340 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15341
15342 * config/i386/i386.c (initial_ix86_tune_features)
15343 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15344 (ix86_lea_outperforms): Handle Silvermont tuning.
15345 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15346 call.
15347 (ix86_use_lea_for_mov): Likewise.
15348 (ix86_avoid_lea_for_addr): Likewise.
15349 (ix86_lea_for_add_ok): Likewise.
15350 (exact_dependency_1): New function.
15351 (exact_store_load_dependency): Likewise.
15352 (ix86_adjust_cost): Handle Silvermont tuning.
15353 (do_reoder_for_imul): Likewise.
15354 (swap_top_of_ready_list): New function.
15355 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15356
15357 * config/i386/i386.md (peepholes that split memory operand in fp
15358 converts): New.
15359
e19c9de2
MS
153602013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15361
15362 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15363 Remove un-necessary braces.
15364
38e6c9a6
MS
153652013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15366
15367 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15368 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15369
e3530904
TB
153702013-05-31 Tobias Burnus <burnus@net-b.de>
15371
15372 PR middle-end/57073
c1e183a9 15373 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15374
b6af05a9
KT
153752013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15376
15377 PR target/56315
15378 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15379 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15380 * config/arm/neon.md (iordi3_neon): Remove.
15381 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15382 * config/arm/predicates.md (imm_for_neon_logic_operand):
15383 Move to earlier in the file.
15384 (neon_logic_op2): Likewise.
15385 (arm_iordi_operand_neon): New predicate.
15386
f800c166
RB
153872013-05-31 Richard Biener <rguenther@suse.de>
15388
15389 PR tree-optimization/57478
15390 PR tree-optimization/57453
15391 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15392 are life as well.
15393
e571fa59
KP
153942013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15395
15396 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15397 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15398
0fa6e0ef
TB
153992013-05-30 Tobias Burnus <burnus@net-b.de>
15400 Thomas Koenig <tkoenig@gcc.gnu.org>
15401
15402 PR middle-end/57073
15403 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15404 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15405
4688ddf5
SB
154062013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15407
0fa6e0ef 15408 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15409
3b9ceb4b
VM
154102013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15411
15412 * target.def (register_usage_leveling_p): New hook.
15413 * targhooks.c (default_register_usage_leveling_p): New.
15414 * targhooks.h (default_register_usage_leveling_p): New prototype.
15415 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15416 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15417 * doc/tm.texi: Update.
15418 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15419
65f9e789
IB
154202013-05-30 Ian Bolton <ian.bolton@arm.com>
15421
15422 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15423 (*insv_reg<mode>): New define_insn.
15424
12211b99 154252013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15426
15427 PR rtl-optimization/57439
15428 * postreload.c (move2add_valid_value_p): Check that we have
15429 a zero subreg_regno_offset when accessing the register in
15430 the requested mode.
15431
0b871ccf
YR
154322013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15433 Igor Zamyatin <igor.zamyatin@intel.com>
15434
15435 Silvermont (SLM) architecture pipeline model, tuning and
15436 insn selection.
15437 * config.gcc: Add slm config options and target.
15438
15439 * config/i386/slm.md: New.
15440
15441 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15442
f43245d1 15443 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15444 PROCESSOR_SLM.
15445 (ix86_target_macros_internal): Likewise.
15446
f43245d1 15447 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15448 (m_SLM): New macro flag.
15449 (initial_ix86_tune_features): Set m_SLM.
15450 (x86_accumulate_outgoing_args): Likewise.
15451 (x86_arch_always_fancy_math_387): Likewise.
15452 (processor_target_table): Add slm cost.
15453 (cpu_names): Add slm cpu name.
15454 (x86_option_override_internal): Set SLM ISA.
15455 (ix86_issue_rate): New case PROCESSOR_SLM.
15456 (ia32_multipass_dfa_lookahead): Likewise.
15457 (fold_builtin_cpu): Add slm.
15458
15459 * config/i386/i386.h (TARGET_SLM): New target macro.
15460 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15461 (processor_type): Add PROCESSOR_SLM.
15462
15463 * config/i386/i386.md (cpu): Add new value "slm".
15464 (slm.md): Include slm.md.
15465
24d5b097
XG
154662013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15467 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15468
15469 * config/arm/arm-protos.h: Add and update function protos.
15470 * config/arm/arm.c (use_simple_return_p): New added.
15471 (thumb2_expand_return): Check simple_return flag.
15472 * config/arm/arm.md: Add simple_return and conditional simple_return.
15473 * config/arm/iterators.md: Add iterator for return and simple_return.
15474
c1cccc15
ZC
154752013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15476
15477 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15478 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15479 (arm_emit_vfp_multi_reg_pop): Likewise.
15480 (thumb2_emit_ldrd_pop): Likewise.
15481 (arm_expand_epilogue): Add misc REG_CFA notes.
15482 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15483
3a4f280b
LC
154842013-05-29 Lawrence Crowl <crowl@google.com>
15485
15486 * config/arm/t-arm: Update for below.
15487
15488 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15489 Change type to hash_table. Update dependent calls and types.
15490
15491 * config/i386/t-cygming: Update for below.
15492
15493 * config/i386/t-interix: Update for below.
15494
15495 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15496 Change type to hash_table. Update dependent calls and types.
15497 (i386_find_on_wrapper_list::wrappers): Likewise.
15498
15499 * config/ia64/t-ia64: Update for below.
15500
15501 * config/ia64/ia64.c (bundle_state_table):
15502 Change type to hash_table. Update dependent calls and types.
15503
15504 * config/mips/mips.c (mips_reorg_process_insns::htab):
15505 Change type to hash_table. Update dependent calls and types.
15506
15507 * config/sol2.c (solaris_comdat_htab):
15508 Change type to hash_table. Update dependent calls and types.
15509
15510 * config/t-sol2: Update for above.
15511
1388a0e3
TJ
155122013-05-29 Teresa Johnson <tejohnson@google.com>
15513
15514 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15515 functions are not yet marked as defined.
15516
a5965b52 155172013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15518 Pat Haugen <pthaugen@us.ibm.com>
15519 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15520
15521 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15522 instructions.
15523 (VEC_A): Likewise.
15524 (VEC_C): Likewise.
15525 (vrotl<mode>3): Likewise.
15526 (vashl<mode>3): Likewise.
15527 (vlshr<mode>3): Likewise.
15528 (vashr<mode>3): Likewise.
15529
15530 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15531 support for power8 V2DI builtins.
15532
15533 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15534 power8 V2DI builtins.
15535 (vupkhsw): Likewise.
15536 (vupklsw): Likewise.
15537 (vaddudm): Likewise.
15538 (vminsd): Likewise.
15539 (vmaxsd): Likewise.
15540 (vminud): Likewise.
15541 (vmaxud): Likewise.
15542 (vpkudum): Likewise.
15543 (vpksdss): Likewise.
15544 (vpkudus): Likewise.
15545 (vpksdus): Likewise.
15546 (vrld): Likewise.
15547 (vsld): Likewise.
15548 (vsrd): Likewise.
15549 (vsrad): Likewise.
15550 (vsubudm): Likewise.
15551 (vcmpequd): Likewise.
15552 (vcmpgtsd): Likewise.
15553 (vcmpgtud): Likewise.
15554 (vcmpequd_p): Likewise.
15555 (vcmpgtsd_p): Likewise.
15556 (vcmpgtud_p): Likewise.
15557 (vupkhsw): Likewise.
15558 (vupklsw): Likewise.
15559 (vaddudm): Likewise.
15560 (vmaxsd): Likewise.
15561 (vmaxud): Likewise.
15562 (vminsd): Likewise.
15563 (vminud): Likewise.
15564 (vpksdss): Likewise.
15565 (vpksdus): Likewise.
15566 (vpkudum): Likewise.
15567 (vpkudus): Likewise.
15568 (vrld): Likewise.
15569 (vsld): Likewise.
15570 (vsrad): Likewise.
15571 (vsrd): Likewise.
15572 (vsubudm): Likewise.
15573
15574 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15575 support for power8 V2DI instructions.
15576
15577 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15578 power8 V2DI instructions. Combine pack and unpack insns to use an
15579 iterator for each mode. Check whether a particular mode supports
15580 Altivec instructions instead of just checking TARGET_ALTIVEC.
15581 (UNSPEC_VPKUWUM): Likewise.
15582 (UNSPEC_VPKSHSS): Likewise.
15583 (UNSPEC_VPKSWSS): Likewise.
15584 (UNSPEC_VPKUHUS): Likewise.
15585 (UNSPEC_VPKSHUS): Likewise.
15586 (UNSPEC_VPKUWUS): Likewise.
15587 (UNSPEC_VPKSWUS): Likewise.
15588 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15589 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15590 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15591 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15592 (UNSPEC_VUPKHSB): Likewise.
15593 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15594 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15595 (UNSPEC_VUPKHSH): Likewise.
15596 (UNSPEC_VUPKLSB): Likewise.
15597 (UNSPEC_VUPKLSH): Likewise.
15598 (VI2): Likewise.
15599 (VI_char): Likewise.
15600 (VI_scalar): Likewise.
15601 (VI_unit): Likewise.
15602 (VP): Likewise.
15603 (VP_small): Likewise.
15604 (VP_small_lc): Likewise.
15605 (VU_char): Likewise.
15606 (add<mode>3): Likewise.
15607 (altivec_vaddcuw): Likewise.
15608 (altivec_vaddu<VI_char>s): Likewise.
15609 (altivec_vadds<VI_char>s): Likewise.
15610 (sub<mode>3): Likewise.
15611 (altivec_vsubcuw): Likewise.
15612 (altivec_vsubu<VI_char>s): Likewise.
15613 (altivec_vsubs<VI_char>s): Likewise.
15614 (altivec_vavgs<VI_char>): Likewise.
15615 (altivec_vcmpbfp): Likewise.
15616 (altivec_eq<mode>): Likewise.
15617 (altivec_gt<mode>): Likewise.
15618 (altivec_gtu<mode>): Likewise.
15619 (umax<mode>3): Likewise.
15620 (smax<mode>3): Likewise.
15621 (umin<mode>3): Likewise.
15622 (smin<mode>3): Likewise.
15623 (altivec_vpkuhum): Likewise.
15624 (altivec_vpkuwum): Likewise.
15625 (altivec_vpkshss): Likewise.
15626 (altivec_vpkswss): Likewise.
15627 (altivec_vpkuhus): Likewise.
15628 (altivec_vpkshus): Likewise.
15629 (altivec_vpkuwus): Likewise.
15630 (altivec_vpkswus): Likewise.
15631 (altivec_vpks<VI_char>ss): Likewise.
15632 (altivec_vpks<VI_char>us): Likewise.
15633 (altivec_vpku<VI_char>us): Likewise.
15634 (altivec_vpku<VI_char>um): Likewise.
15635 (altivec_vrl<VI_char>): Likewise.
15636 (altivec_vsl<VI_char>): Likewise.
15637 (altivec_vsr<VI_char>): Likewise.
15638 (altivec_vsra<VI_char>): Likewise.
15639 (altivec_vsldoi_<mode>): Likewise.
15640 (altivec_vupkhsb): Likewise.
15641 (altivec_vupkhs<VU_char>): Likewise.
15642 (altivec_vupkls<VU_char>): Likewise.
15643 (altivec_vupkhsh): Likewise.
15644 (altivec_vupklsb): Likewise.
15645 (altivec_vupklsh): Likewise.
15646 (altivec_vcmpequ<VI_char>_p): Likewise.
15647 (altivec_vcmpgts<VI_char>_p): Likewise.
15648 (altivec_vcmpgtu<VI_char>_p): Likewise.
15649 (abs<mode>2): Likewise.
15650 (vec_unpacks_hi_v16qi): Likewise.
15651 (vec_unpacks_hi_v8hi): Likewise.
15652 (vec_unpacks_lo_v16qi): Likewise.
15653 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15654 (vec_unpacks_lo_v8hi): Likewise.
15655 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15656 (vec_pack_trunc_v8h): Likewise.
15657 (vec_pack_trunc_v4si): Likewise.
15658 (vec_pack_trunc_<mode>): Likewise.
15659
15660 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15661 V2DI builtins.
15662 (vec_vmaxsd): Likewise.
15663 (vec_vmaxud): Likewise.
15664 (vec_vminsd): Likewise.
15665 (vec_vminud): Likewise.
15666 (vec_vpksdss): Likewise.
15667 (vec_vpksdus): Likewise.
15668 (vec_vpkudum): Likewise.
15669 (vec_vpkudus): Likewise.
15670 (vec_vrld): Likewise.
15671 (vec_vsld): Likewise.
15672 (vec_vsrad): Likewise.
15673 (vec_vsrd): Likewise.
15674 (vec_vsubudm): Likewise.
15675 (vec_vupkhsw): Likewise.
15676 (vec_vupklsw): Likewise.
15677
e70670cf
JH
156782013-05-29 Jan Hubicka <jh@suse.cz>
15679
15680 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15681 flags; reorder rest of fields in more consistent way.
15682 (varpool_node): Remove analyzed, finalized and alias.
15683 (cgraph_ndoe): Likewise.
15684 (symtab_alias_ultimate_target): New function.
15685 (cgraph_function_node): Move offline.
15686 (cgraph_reset_node): Declare.
15687 (cgraph_comdat_can_be_unshared_p): Remove.
15688 (varpool_remove_initializer): Declare.
15689 (varpool_first_defined_variable, varpool_next_defined_variable
15690 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15691 (cgraph_function_with_gimple_body_p): Update.
15692 (varpool_all_refs_explicit_p): Update.
15693 (symtab_alias_target): New function.
15694 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15695 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15696 (cgraph_function_or_thunk_node): Simplify using
15697 symtab_alias_ultimate_target.
e70670cf
JH
15698 (varpool_variable_node): Likewise.
15699 * cgraph.c (cgraph_create_function_alias): Update.
15700 (cgraph_add_thunk): Update.
15701 (cgraph_remove_node): Update.
15702 (dump_cgraph_node): Do not dump removed flags.
15703 (cgraph_function_body_availability): Update.
15704 (cgraph_propagate_frequency): Update.
15705 (verify_cgraph_node): Check sanity of local flag.
15706 (cgraph_function_node): Move here from cgraph.h; revamp for
15707 cgraph_function_or_thunk_node.
15708 * lto-symtab.c (lto_varpool_replace_node): Update.
15709 (lto_symtab_resolve_can_prevail_p): Update.
15710 (lto_symtab_merge_cgraph_nodes): Update.
15711 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15712 propagate_constants_accross_call, devirtualization_time_bonus,
15713 ipcp_propagate_stage): Update.
15714 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15715 * ipa-inline-transform.c (clone_inlined_nodes,
15716 preserve_function_body_p): Update.
e70670cf
JH
15717 * ipa-reference.c (propagate): Update.
15718 (write_node_summary_p): Update.
15719 * toplev.c (wrapup_global_declaration_2): Update.
15720 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15721 (analyze_function) ... this one.
15722 (cgraph_process_new_functions): Update.
15723 (cgraph_reset_node): Export.
15724 (cgraph_finalize_function): Update.
15725 (cgraph_add_new_function): Update.
15726 (process_function_and_variable_attributes): Update.
15727 (varpool_finalize_decl): Update.
15728 (symbol_finalized): Remove.
15729 (symbol_finalized_and_needed): Rename to ...
15730 (symbol_defined_and_needed): ... update.
15731 (cgraph_analyze_functions): Update.
15732 (handle_alias_pairs): Update.
15733 (mark_functions_to_output): Update.
15734 (assemble_thunk): Update.
15735 (output_in_order): Update.
15736 (output_weakrefs): Update.
15737 (finalize_compilation_unit): Update.
15738 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15739 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15740 input_node, input_varpool_node): Update.
15741 * dbxout.c (dbxout_expand_expr): Update.
15742 * cgraphclones.c (cgraph_clone_node): Update.
15743 (cgraph_copy_node_for_versioning): Update.
15744 (cgraph_materialize_clone): Update.
15745 (cgraph_materialize_all_clones): Update.
15746 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15747 propagate_pure_const, propagate_nothrow): Update.
15748 * lto-streamer-out.c (lto_output, write_symbol): Update.
15749 * ipa-utils.c (ipa_reverse_postorder): Update.
15750 * ipa-inline.c (can_inline_edge_p): Update.
15751 (update_caller_keys, ipa_inline): Update.
15752 * dwarf2out.c (reference_to_unused,
15753 premark_types_used_by_global_vars_helper): Update.
15754 * tree-eh.c (tree_could_trap_p): Update.
15755 * ipa-split.c (consider_split, execute_split_functions): Update.
15756 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15757 has_addr_references_p): Update; move ahead in file for better
15758 readability.
e70670cf
JH
15759 (process_references): Simplify.
15760 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15761 bodies are removed.
15762 (cgraph_comdat_can_be_unshared_p): Make static.
15763 (cgraph_externally_visible_p): Update.
15764 (varpool_externally_visible_p): Update.
15765 (function_and_variable_visibility): Update.
15766 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15767 ipa_tm_mark_force_output_node): Update.
15768 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15769 estimate_edge_devirt_benefit, inline_generate_summary,
15770 inline_write_summary): Update.
15771 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15772 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
15773 (ipa_print_node_params, ipa_prop_read_section,
15774 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
15775 * varasm.c (mark_decl_referenced): Update.
15776 (assemble_alias, dump_tm_clone_pairs): Update.
15777 * tree-inline.c (copy_bb): Update.
15778 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15779 Update.
15780 * symtab.c (dump_symtab_base): Print new flags.
15781 (verify_symtab_base): Verify new flags.
15782 (symtab_alias_ultimate_target): New function.
15783 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15784 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15785 Update.
c1e183a9
UB
15786 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15787 Update.
e70670cf
JH
15788 * i386.c (ix86_get_function_versions_dispatcher,
15789 ix86_generate_version_dispatcher_body): Update.
15790 (fold_builtin_cpu): Use varpool_add_new_variable.
15791 * varpool.c (varpool_remove_initializer): Break out from ...
15792 (varpool_remove_node): ... this one.
15793 (dump_varpool_node, varpool_node_for_asm,
15794 cgraph_variable_initializer_availability, varpool_analyze_node,
15795 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
15796 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15797 Update.
e70670cf 15798
182802ad
JH
157992013-05-29 Jan Hubicka <jh@suse.cz>
15800
15801 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15802
8190b609
ER
158032013-05-29 Easwaran Raman <eraman@google.com>
15804
15805 PR tree-optimization/57442
15806 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15807 when control exits the main loop.
15808
69f5aa9b
SKS
158092013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15810
15811 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15812 and RX600.
c1e183a9 15813 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
15814 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15815 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15816 option.
15817
4b847da9
BS
158182013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15819
15820 PR tree-optimization/57441
15821 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15822 Don't limit size of incr_vec to number of candidates.
15823
4fc43c39
SE
158242013-05-29 Steve Ellcey <sellcey@imgtec.com>
15825
15826 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15827 and mips16 directories.
c1e183a9 15828 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
15829 (MULTILIB_DIRNAMES): Ditto.
15830 (MULTILIB_EXCEPTIONS): Add new exceptions.
15831 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15832 (MULTILIB_DIRNAMES): Ditto.
15833 (MULTILIB_EXCEPTIONS): Add new exceptions.
15834
12211b99 158352012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
15836 Marcus Shawcroft <marcus.shawcroft@arm.com>
15837
15838 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15839 SYMBOL_TINY_ABSOLUTE.
15840 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
15841 SYMBOL_TINY_ABSOLUTE.
15842 (aarch64_expand_mov_immediate): Likewise.
15843 (aarch64_classify_symbol): Likewise.
15844 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
15845 Permit SYMBOL_TINY_ABSOLUTE.
15846 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
15847
12211b99 158482013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
15849 Marcus Shawcroft <marcus.shawcroft@arm.com>
15850
15851 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
15852 Refactor if/switch. Replace gcc_assert with if.
15853
c0186656
GG
158542013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15855
15856 * config/i386/i386.c (initial_ix86_tune_features): Enable
15857 FP Reassociation for AMD bdver1 and bdver2.
15858
d20188f3
MJ
158592013-05-29 Martin Jambor <mjambor@suse.cz>
15860
15861 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
15862 and IMAGPART_EXPR do not occur within other handled_components.
15863
292cba13
RB
158642013-05-29 Richard Biener <rguenther@suse.de>
15865
15866 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
15867 access on whether the use is in the BB we currently try to
15868 vectorize.
15869 (vect_bb_vectorization_profitable_p): Pass the BB we currently
15870 vectorize to vect_bb_slp_scalar_cost.
15871
6eddf228
RB
158722013-05-29 Richard Biener <rguenther@suse.de>
15873
15874 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
15875 computing scalar cost offsetted by stmts that are kept live
15876 by scalar uses.
15877 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
15878 for computation of scalar cost.
15879
7df36117
SE
158802013-05-28 Steve Ellcey <sellcey@mips.com>
15881
15882 * config/mips/mips-cpus.def (mips32r2): Change processor type.
15883
36536d79
BI
158842013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
15885
15886 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
15887 array notation built-in reduction functions.
15888 * doc/passes.texi (Passes): Added documentation about changes done
15889 for Cilk Plus.
15890 * doc/invoke.texi (C Dialect Options): Added documentation about
15891 the -fcilkplus flag.
15892 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
15893 (BUILTINS_DEF): Depend on cilkplus.def.
15894 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
15895 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
15896 * cilkplus.def: New file.
15897
12211b99 158982013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
15899
15900 PR rtl-optimization/57439
15901 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
15902
9daf6dbb
ER
159032013-05-28 Easwaran Raman <eraman@google.com>
15904
15905 PR tree-optimization/57337
15906 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
15907 (find_insert_point): Correctly identify the insertion point
15908 when two statements with the same UID is compared.
15909
fbd7e877
RB
159102013-05-28 Richard Biener <rguenther@suse.de>
15911
15912 PR tree-optimization/56787
15913 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
15914 from the list of data references.
15915 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
15916 clobbers.
15917 (vect_analyze_loop_operations): Likewise.
15918 (vect_transform_loop): Remove clobbers.
15919
bbba1117
MJ
159202013-05-28 Martin Jambor <mjambor@suse.cz>
15921
15922 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
15923 and REALPART_EXPRs have scalar type.
15924
bd388c2a
RB
159252013-05-28 Richard Biener <rguenther@suse.de>
15926
15927 PR tree-optimization/57411
15928 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
15929 virtual operands.
15930 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
15931 virtual operand propagation.
15932
2f56a311
EB
159332013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15934
15935 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
15936 destination register for bmasksi_vis.
15937 (vector_init_bshuffle): Likewise.
15938 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
15939
5c3eacbb
EB
159402013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15941
15942 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
15943 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
15944 mode if the instruction isn't available in the original mode.
15945 * config/sparc/sparc.opt (mfix-ut699): New option.
15946 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
15947 (divdf3): Turn into expander.
15948 (divdf3_nofix): New insn.
15949 (divdf3_fix): Likewise.
15950 (divsf3): Disable if -mfix-ut699.
15951 (sqrtdf2): Turn into expander.
15952 (sqrtdf2_nofix): New insn.
15953 (sqrtdf2_fix): Likewise.
15954 (sqrtsf2): Disable if -mfix-ut699.
15955
a1756c0a
RB
159562013-05-27 Richard Biener <rguenther@suse.de>
15957
15958 PR middle-end/57412
15959 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
15960 block for the new loop.
15961
5a892248
RB
159622013-05-27 Richard Biener <rguenther@suse.de>
15963
15964 PR tree-optimization/57343
15965 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
15966 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
15967 (number_of_iterations_cond): Do not build the folded tree.
15968
d1de852b
RB
159692013-05-27 Richard Biener <rguenther@suse.de>
15970
15971 Revert
15972 PR middle-end/57381
15973 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15974 OEP_CONSTANT_ADDRESS_OF retained.
15975
15976 PR tree-optimization/57417
15977 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
15978 for unchanged base.
15979 (set_ssa_val_to): Compare addresses using
15980 get_addr_base_and_unit_offset.
15981
12211b99 159822013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
15983
15984 PR rtl-optimization/56833
15985 * postreload.c (move2add_record_mode): New function.
15986 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
15987 (move2add_use_add2_insn): Use move2add_record_sym_value.
15988 (move2add_use_add3_insn): Likewise.
15989 (reload_cse_move2add): Use move2add_valid_value_p and
15990 move2add_record_mode. Invalidate call-clobbered and REG_INC
15991 affected regs by setting reg_mode to VOIDmode.
15992 (move2add_note_store): Don't pretend the inside of a SUBREG is
15993 the actual destination. Invalidate single/leading registers by
15994 setting reg_mode to VOIDmode.
15995 Use move2add_record_sym_value, move2add_valid_value_p and
15996 move2add_record_mode.
15997
b03be25f
RB
159982013-05-27 Richard Biener <rguenther@suse.de>
15999
16000 PR tree-optimization/57396
16001 * tree-affine.c (double_int_constant_multiple_p): Properly
16002 return false for val == 0 and div != 0.
16003
44e88db2
RS
160042013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16005
16006 * config/mips/mips.h: Use #elif in preprocessor conditions.
16007
3b859704
RS
160082013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16009
16010 PR target/53916
16011 * config/mips/constraints.md (kl): New constraint.
16012 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
16013 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
16014 constraint for operand 0. Split after CSE for MIPS16. Emit a move
16015 from LO for MIPS16.
16016 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
16017
c979d5f5
RS
160182013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16019
16020 PR target/55777
16021 * config/mips/mips.c (mips_can_inline_p): New function.
16022 (TARGET_CAN_INLINE_P): Define.
16023
8e90de43
SB
160242013-05-25 Steven Bosscher <steven@gcc.gnu.org>
16025
16026 * sched-int.h (ds_t, dw_t): Make unsigned int.
16027 Fix documentation that describes how all the ds_t bits are used.
16028 Reserve the last bit for delayed-branch scheduling.
16029 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
16030 (BITS_PER_DEP_WEAK): Fix definition and documentation.
16031 (gen_dep_weak_1): Remove prototype.
16032 * sched-deps.c (get_dep_weak_1): Make static.
16033 * target.def (speculate_insn, needs_block_p, gen_spec_check,
16034 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
16035 * doc/tm.texi: Regenerate.
16036 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
16037
cb5cb194
SB
160382013-05-24 Steven Bosscher <steven@gcc.gnu.org>
16039
16040 PR debug/56950
16041 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
16042
5bd93ff6
NS
160432013-05-24 Nathan Sidwell <nathan@codesourcery.com>
16044 Sandra Loosemore <sandra@codesourcery.com>
16045
16046 * config.gcc (powerpc-*): Allow native for with-cpu.
16047
2343af65
JL
160482013-05-24 Jeff Law <law@redhat.com>
16049
16050 PR tree-optimization/57124
16051 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
16052 conversion feeding a condition if the range has an overflow
16053 if -fstrict-overflow. Add warnings for when we do make the
16054 transformation.
16055
3ad695b9
DC
160562013-05-24 Dehao Chen <dehao@google.com>
16057
04960246 16058 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
16059 (locus_discrim_hasher): Likewise.
16060 (locus_discrim_hasher::hash): Likewise.
16061 (locus_discrim_hasher::equal): Likewise.
16062
82338059
MJ
160632013-05-24 Martin Jambor <mjambor@suse.cz>
16064
16065 PR tree-optimization/57294
16066 * cgraph.h (ipa_record_stmt_references): Declare.
16067 * cgraphbuild.c (ipa_record_stmt_references): New function.
16068 (build_cgraph_edges): Use ipa_record_stmt_references.
16069 (rebuild_cgraph_edges): Likewise.
16070 (cgraph_rebuild_references): Likewise.
16071 * ipa-prop.c (ipa_modify_call_arguments): Discard references
16072 associated with the old statement and build references from the
16073 newly built statements.
16074 * ipa-ref.c (ipa_remove_stmt_references): New function.
16075 * ipa-ref.h (ipa_remove_stmt_references): Declare.
16076
1ccd4874
VM
160772013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16078
55805e54 16079 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16080 mem-mem moves.
55805e54 16081 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16082 too.
55805e54 16083 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16084 secondary memory moves.
16085 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16086 reg set up in the current insn.
16087
25e25c73
DC
160882013-05-24 Dehao Chen <dehao@google.com>
16089
04960246 16090 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16091 hash function.
16092 (locus_descrim_hasher::equal): Likewise.
04960246 16093 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16094 (make_edges): Likewise.
16095 (next_discriminator_for_locus): Likewise.
16096 (same_line_p): Likewise.
16097 (assign_discriminators): Likewise.
16098 (make_cond_expr_edges): Likewise.
16099 (make_gimple_switch_edges): Likewise.
16100 (make_goto_expr_edges): Likewise.
16101 (make_gimple_asm_edges): Likewise.
16102
50d38551
IB
161032013-05-24 Ian Bolton <ian.bolton@arm.com>
16104
16105 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16106 X format specifier to only display bottom 16 bits.
16107 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16108 immediate to match for operand 2, since it will be masked.
16109
aea0101d
RB
161102013-05-24 Richard Biener <rguenther@suse.de>
16111
16112 PR tree-optimization/57287
16113 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16114 all SSA names that occur in abnormal PHIs.
16115
634e03d3
AI
161162013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16117
16118 PR tree-ssa/57385
16119 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16120 that index is not negative.
16121
b17c024f
EB
161222013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16123
16124 PR rtl-optimization/55177
16125 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16126 (simplify_byte_swapping_operation): New.
16127 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16128 (simplify_relational_operation_1): Deal with BSWAP.
16129
46aeac1b
RH
161302013-05-23 Richard Henderson <rth@redhat.com>
16131
16132 PR target/56742
16133 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16134 (ix86_reorg): Call it.
16135
70cc1536
UB
161362013-05-23 Uros Bizjak <ubizjak@gmail.com>
16137
16138 PR target/57379
16139 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16140 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16141 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16142
b3851501
CB
161432013-05-23 Christian Bruel <christian.bruel@st.com>
16144
16145 PR debug/57351
16146 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16147
12211b99 161482013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16149 Marcus Shawcroft <marcus.shawcroft@arm.com>
16150
16151 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16152 * config/aarch64/constraints.md (Usa): Remove.
16153 * doc/md.texi (AArch64 Usa): Remove.
16154
12211b99 161552013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16156 Marcus Shawcroft <marcus.shawcroft@arm.com>
16157
16158 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16159 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16160 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16161 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16162
12211b99 161632013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16164
16165 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16166 instruction (AdvSIMD).
16167 * config/aarch64/aarch64-builtins.c
16168 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16169 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16170
76c36cb1 161712013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16172
16173 PR middle-end/57347
16174 * tree.h (contains_bitfld_component_ref_p): Declare.
16175 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16176 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16177 caller.
7d2fb524
MJ
16178 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16179 not access a bit-field. Assert all final offsets are byte-aligned.
16180
ce521ae6
RB
161812013-05-23 Richard Biener <rguenther@suse.de>
16182
16183 PR tree-optimization/57380
16184 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16185 least one invariant or re-used load.
16186 * passes.c (init_optimization_passes): Move pass_phiprop before
16187 pass_forwprop.
16188
75c7257f
JG
161892013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16190
16191 * config/aarch64/aarch64-simd.md
16192 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16193
af6d44b5
RB
161942013-05-23 Richard Biener <rguenther@suse.de>
16195
16196 PR middle-end/57381
16197 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16198 OEP_CONSTANT_ADDRESS_OF retained.
16199
bd3647bf
JJ
162002013-05-23 Jakub Jelinek <jakub@redhat.com>
16201
16202 PR middle-end/57344
70cc1536
UB
16203 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16204 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16205
a55757ea
RB
162062013-05-23 Richard Biener <rguenther@suse.de>
16207
16208 PR rtl-optimization/57341
16209 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16210 instead of true_dependence.
16211
cfb00b41
DM
162122013-05-22 David Malcolm <dmalcolm@redhat.com>
16213
dd1c676f
DM
16214 * bb-reorder.c (branch_threshold): Make const.
16215 (exec_threshold): Ditto.
cfb00b41 16216
f62511da 162172013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16218 Pat Haugen <pthaugen@us.ibm.com>
16219 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16220
16221 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16222 documentation for the power8 crypto builtins.
16223
16224 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16225
16226 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16227 macros for defining power8 builtin functions.
16228 (BU_P8V_AV_2): Likewise.
16229 (BU_P8V_AV_P): Likewise.
16230 (BU_P8V_VSX_1): Likewise.
16231 (BU_P8V_OVERLOAD_1): Likewise.
16232 (BU_P8V_OVERLOAD_2): Likewise.
16233 (BU_CRYPTO_1): Likewise.
16234 (BU_CRYPTO_2): Likewise.
16235 (BU_CRYPTO_3): Likewise.
16236 (BU_CRYPTO_OVERLOAD_1): Likewise.
16237 (BU_CRYPTO_OVERLOAD_2): Likewise.
16238 (XSCVSPDP): Fix typo, point to the correct instruction.
16239 (VCIPHER): Add power8 crypto builtins.
16240 (VCIPHERLAST): Likewise.
16241 (VNCIPHER): Likewise.
16242 (VNCIPHERLAST): Likewise.
16243 (VPMSUMB): Likewise.
16244 (VPMSUMH): Likewise.
16245 (VPMSUMW): Likewise.
16246 (VPERMXOR_V2DI): Likewise.
16247 (VPERMXOR_V4SI: Likewise.
16248 (VPERMXOR_V8HI: Likewise.
16249 (VPERMXOR_V16QI: Likewise.
16250 (VSHASIGMAW): Likewise.
16251 (VSHASIGMAD): Likewise.
16252 (VPMSUM): Likewise.
16253 (VPERMXOR): Likewise.
16254 (VSHASIGMA): Likewise.
16255
16256 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16257 __CRYPTO__ if the crypto instructions are available.
16258 (altivec_overloaded_builtins): Add support for overloaded power8
16259 builtins.
16260
16261 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16262 support for power8 crypto builtins.
16263 (builtin_function_type): Likewise.
16264 (altivec_init_builtins): Add support for builtins that take vector
16265 long long (V2DI) arguments.
16266
16267 * config/rs6000/crypto.md: New file, define power8 crypto
16268 instructions.
16269
162702013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16271 Pat Haugen <pthaugen@us.ibm.com>
16272 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16273
16274 * doc/invoke.texi (Option Summary): Add power8 options.
16275 (RS/6000 and PowerPC Options): Likewise.
16276
16277 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16278 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16279 wm, wn, wr documentation.
16280
f43245d1 16281 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16282 registers if direct move instructions are enabled.
16283 (wn): New constraint for no registers.
16284 (wq): New constraint for quad word even GPR registers.
16285 (wr): New constraint if 64-bit instructions are enabled.
16286 (wv): New constraint if power8 vector instructions are enabled.
16287 (wQ): New constraint for quad word memory locations.
16288
f43245d1 16289 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16290 constraint for 0..15 for crypto instructions.
16291 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16292 as GPR and floating point registers.
16293 (int_reg_operand): New predicate to match only GPR registers.
16294 (base_reg_operand): New predicate to match base registers.
16295 (quad_int_reg_operand): New predicate to match even GPR registers
16296 for quad memory operations.
16297 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16298 operations in both GPR and VSX registers.
16299 (quad_memory_operand): New predicate for quad memory operations.
16300 (reg_or_indexed_operand): New predicate for direct move support.
16301
f43245d1 16302 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16303 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16304 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16305 (POWERPC_MASKS): Add power8 options.
16306 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16307 various options.
16308
f43245d1 16309 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16310 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16311
f43245d1 16312 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16313 (-mpower8-fusion): New power8 options.
16314 (-mpower8-fusion-sign): Likewise.
16315 (-mpower8-vector): Likewise.
16316 (-mcrypto): Likewise.
16317 (-mdirect-move): Likewise.
16318 (-mquad-memory): Likewise.
16319
f43245d1 16320 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16321 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16322 registers.
70cc1536 16323 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16324 (rs6000_debug_vector_unit): Add p8_vector.
16325 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16326 definitions. Also print fusion state.
16327 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16328 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16329 (rs6000_option_override_internal): Add support for power8.
16330 (rs6000_common_init_builtins): Add debugging for skipped builtins
16331 if -mdebug=builtin.
16332 (rs6000_adjust_cost): Add power8 support.
16333 (rs6000_issue_rate): Likewise.
16334 (insn_must_be_first_in_group): Likewise.
16335 (insn_must_be_last_in_group): Likewise.
16336 (force_new_group): Likewise.
16337 (rs6000_register_move_cost): Likewise.
16338 (rs6000_opt_masks): Likewise.
16339
16340 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16341 power8 capable assembler, default to power7 options.
16342 (TARGET_DIRECT_MOVE): Likewise.
16343 (TARGET_CRYPTO): Likewise.
16344 (TARGET_P8_VECTOR): Likewise.
16345 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16346 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16347 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16348 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16349 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16350 (TARGET_XSCVDPSPN): Likewise.
16351 (TARGET_XSCVSPDPN): Likewsie.
16352 (TARGET_SYNC_HI_QI): Likewise.
16353 (TARGET_SYNC_TI): Likewise.
16354 (MASK_CRYPTO): Likewise.
16355 (MASK_DIRECT_MOVE): Likewise.
16356 (MASK_P8_FUSION): Likewise.
16357 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16358 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16359 temporary used by some of the direct move instructions to get two FP
16360 temporary registers does not force creation of a stack frame.
f62511da
MM
16361 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16362 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16363 that any VSX registers are tieable, even if they are also an
16364 Altivec vector mode.
16365 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16366 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16367 (RS6000_BTM_CRYPTO): Likewise.
16368 (RS6000_BTM_COMMON): Likewise.
16369
16370 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16371 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16372 (enum rs6000_vector): Add power8 vector support.
16373
73a1a707
RR
163742013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16375
16376 PR target/19599
16377 PR target/57340
16378 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16379 (any_sibcall_could_use_r3): this and handle indirect calls.
16380 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16381
d28073d4
BS
163822013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16383
16384 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16385
bee0b10c
RB
163862013-05-22 Richard Biener <rguenther@suse.de>
16387
16388 PR middle-end/57349
16389 * profile.c (branch_prob): Do not split blocks that are
16390 abnormally receiving from ECF_RETURNS_TWICE functions.
16391
98409b51
RS
163922013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16393
16394 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16395 address mode. Move pointer mode initialization to the same place.
16396
c0602ab8
MZ
163972013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16398
16399 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16400 while it has any effect.
16401
4f7a634e
ER
164022013-05-21 Easwaran Raman <eraman@google.com>
16403
16404 PR tree-optimization/57322
9daf6dbb
ER
16405 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16406 UID of the statement added to the BB to be 1.
4f7a634e 16407
a4ce1258
JJ
164082013-05-21 Jakub Jelinek <jakub@redhat.com>
16409
16410 PR tree-optimization/57331
70cc1536
UB
16411 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16412 of conversion from pointer type to integral type with integer.
a4ce1258 16413
1b14621a
MJ
164142013-05-21 Martin Jambor <mjambor@suse.cz>
16415
16416 PR lto/57289
16417 * ipa-prop.c (ipa_read_node_info): Process param_used and
16418 controlled_uses in the same order as when writing.
16419
e60661f0
MG
164202013-05-21 Magnus Granberg <baldrick@free.fr>
16421
16422 PR plugins/56754
ee49aa34 16423 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16424
4a61be9a
RB
164252013-05-21 Richard Biener <rguenther@suse.de>
16426
16427 PR tree-optimization/57318
16428 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16429 estimate stmts with side-effects as likely eliminated.
16430
c52da5f7
RB
164312013-05-21 Richard Biener <rguenther@suse.de>
16432
16433 PR tree-optimization/57330
16434 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16435 preserve the call stmts fntype.
16436
7ec67e2a
RB
164372013-05-21 Richard Biener <rguenther@suse.de>
16438
16439 PR tree-optimization/57303
16440 * tree-ssa-sink.c (statement_sink_location): Improve killing
16441 stmt detection and properly handle self-assignments.
16442
b112d513
CB
164432013-05-21 Christian Bruel <christian.bruel@st.com>
16444
55805e54
YR
16445 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16446 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16447 registers. Set register size out of the PARALLEL loop.
16448
14c2ec26
OE
164492013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16450
16451 PR target/56547
16452 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16453 (*fmasf4, *fmasf4_media): New insns.
16454
da734fa1
RS
164552013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16456
16457 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16458 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16459 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16460 (mips_idiv_insns): Update the comments to say that the returned
16461 instruction counts are in units of BASE_INSN_LENGTH.
16462 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16463 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16464 using 2 rather than 4 as the length of indirect MIPS16 and
16465 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16466 length of a NOP. Don't divide MIPS16 lengths by 2.
16467 (mips16_split_long_branches): Assume a branch is long if the
16468 length is greater than 4 rather than 8.
16469 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16470 rather than multiplying them by 2. Multiply instruction counts
16471 by BASE_INSN_LENGTH rather than 4.
16472 (*jump_mips16, tls_get_tp_mips16_<mode>)
16473 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16474
13719e8b
RS
164752013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16476
16477 * config/mips/mips.md (extended_mips16): Remove branch case.
16478 (length): Remove duplicated extended_mips16 test.
16479
c3850d14
RS
164802013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16481
16482 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16483
8da2e059
RS
164842013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16485
16486 * recog.h (Recog_data): Rename to...
16487 (recog_data_d): ...this.
16488 (recog_data): Update accordingly.
16489 * recog.c (recog_data): Likewise.
16490 * reload.c (save_recog_data): Likewise.
16491 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16492 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16493
2df013f3
JB
164942013-05-17 Julian Brown <julian@codesourcery.com>
16495
16496 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16497 found in a REG_EQUAL note, invalidate it.
16498
371e77e3 164992013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16500
16501 * tree-ssa-reassoc.c (find_insert_point): New function.
16502 (insert_stmt_after): Likewise.
16503 (get_def_stmt): Likewise.
16504 (ensure_ops_are_available): Likewise.
16505 (not_dominated_by): Likewise.
16506 (rewrite_expr_tree): Do not move statements beyond what is
16507 necessary. Remove call to swap_ops_for_binary_stmt...
16508 (reassociate_bb): ... and move it here.
16509 (build_and_add_sum): Assign UIDs for new statements.
16510 (linearize_expr): Likewise.
16511 (do_reassoc): Renumber gimple statement UIDs.
16512
e01c7cca
JH
165132013-05-17 Jan Hubicka <jh@suse.cz>
16514
16515 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16516 weakrefs.
16517 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16518 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16519 weakrefs.
e01c7cca
JH
16520 (output_weakrefs): Update.
16521
c3272a92
PCC
165222013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16523 Martin Jambor <mjambor@suse.cz>
16524
16525 PR middle-end/57276
16526 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16527 value that corresponds to the given aggval is found in values vector.
16528
11c2aa39
UB
165292013-05-17 Uros Bizjak <ubizjak@gmail.com>
16530
16531 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16532 sse, sse2, sse3, ssse3 and sse4a flags to options.
16533
abecc8c6
DM
165342013-05-17 David Malcolm <dmalcolm@redhat.com>
16535
16536 * gengtype-state.c: (s_expr_writer): New class, to handle
16537 prettifying of output layout of s-expressions.
16538 (state_writer): New class, to write out gtype.state.
16539 (state_written_type_count): Move this variable into member data of
16540 state_writer.
16541 (s_expr_writer::s_expr_writer): New code: constructor for new class
16542 (state_writer::state_writer(): ditto
16543 (s_expr_writer::write_new_line): New function
16544 (s_expr_writer::write_any_indent): ditto
16545 (s_expr_writer::begin_s_expr): ditto
16546 (s_expr_writer::end_s_expr): ditto
16547 (write_state_fileloc): convert to method of state_writer...
16548 (state_writer:: write_state_fileloc): ...and use methods of
16549 s_expr_writer to write indentation into the gtype.state output file
16550 to visually represent the hierarchical structure of the list
16551 structures
16552 (write_state_fields): ditto, renaming to...
16553 (state_writer::write_state_fields)
16554 (write_state_a_string): ditto, renaming to...
16555 (state_writer::write_state_a_string)
16556 (write_state_string_option): ditto, renaming to...
16557 (state_writer::write_state_string_option)
16558 (write_state_type_option): ditto, renaming to...
16559 (state_writer::write_state_type_option)
16560 (write_state_nested_option): ditto, renaming to...
16561 (state_writer::write_state_nested_option)
16562 (write_state_option): ditto, renaming to...
16563 (state_writer::write_state_option)
16564 (write_state_options): ditto, renaming to...
16565 (state_writer::write_state_options)
16566 (write_state_lang_bitmap): ditto, renaming to...
16567 (state_writer::write_state_lang_bitmap)
16568 (write_state_version): ditto, renaming to...
16569 (state_writer::write_state_version)
16570 (write_state_scalar_type): ditto, renaming to...
16571 (state_writer::write_state_scalar_type)
16572 (write_state_string_type): ditto, renaming to...
16573 (state_writer::write_state_string_type)
16574 (write_state_undefined_type): ditto, renaming to...
16575 (state_writer::write_state_undefined_type)
16576 (write_state_struct_union_type): ditto, renaming to...
16577 (state_writer::write_state_struct_union_type)
16578 (write_state_struct_type): ditto, renaming to...
16579 (state_writer::write_state_struct_type)
16580 (write_state_user_struct_type): ditto, renaming to...
16581 (state_writer::write_state_user_struct_type)
16582 (write_state_lang_struct_type): ditto, renaming to...
16583 (state_writer::write_state_lang_struct_type)
16584 (write_state_param_struct_type): ditto, renaming to...
16585 (state_writer::write_state_param_struct_type)
16586 (write_state_pointer_type): ditto, renaming to...
16587 (state_writer::write_state_pointer_type)
16588 (write_state_array_type): ditto, renaming to...
16589 (state_writer::write_state_array_type)
16590 (write_state_gc_used): ditto, renaming to...
16591 (state_writer::write_state_gc_used)
16592 (write_state_common_type_content): ditto, renaming to...
16593 (state_writer::write_state_common_type_content)
16594 (write_state_type): ditto, renaming to...
16595 (state_writer::write_state_type)
16596 (write_state_pair_list): ditto, renaming to...
16597 (state_writer::write_state_pair_list)
16598 (write_state_pair): ditto, renaming to...
16599 (state_writer::write_state_pair)
16600 (write_state_typedefs): ditto, renaming to...
16601 (state_writer::write_state_typedefs)
16602 (write_state_structures): ditto, renaming to...
16603 (state_writer::write_state_structures)
16604 (write_state_param_structs): ditto, renaming to...
16605 (state_writer::write_state_param_structs)
16606 (write_state_variables): ditto, renaming to...
16607 (state_writer::write_state_variables)
16608 (write_state_srcdir): ditto, renaming to...
16609 (state_writer::write_state_srcdir)
16610 (write_state_files_list): ditto, renaming to...
16611 (state_writer::write_state_files_list)
16612 (write_state_languages): ditto, renaming to...
16613 (state_writer::write_state_languages)
16614 (write_state): create a state_writer instance and use it when
16615 writing out the state file
16616
d6545f29
MS
166172013-05-17 Mike Stump <mikestump@comcast.net>
16618
816a3f73 16619 PR rtl-optimization/57304
d6545f29
MS
16620 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16621 accessing DF_REF_REAL_LOC.
16622
38c821cf
JJ
166232013-05-17 Jakub Jelinek <jakub@redhat.com>
16624
16625 PR rtl-optimization/57281
16626 PR rtl-optimization/57300
16627 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16628 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16629 what the other splitter did if the registers are dead.
16630
2a293391
RB
166312013-05-17 Richard Biener <rguenther@suse.de>
16632
16633 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16634 MEM_REF offsets.
16635
17042d2b
JJ
166362013-05-17 Jakub Jelinek <jakub@redhat.com>
16637
16638 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16639 linking.
16640
5b115c1f
MP
166412013-05-17 Marek Polacek <polacek@redhat.com>
16642
11c2aa39
UB
16643 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16644 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16645
52d84413
JJ
166462013-05-17 Jakub Jelinek <jakub@redhat.com>
16647
68119618
JJ
16648 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16649 vect_external_def oprnd1 with loop_vinfo, try to emit
16650 optional cast, negation and and stmts on the loop preheader
16651 edge instead of into the pattern def seq.
16652
52d84413
JJ
16653 PR tree-optimization/57051
16654 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16655 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16656
17b962bd
NC
166572013-05-16 Nick Clifton <nickc@redhat.com>
16658
16659 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16660 (rl78_is_naked_func): New function.
56aefbf7
UB
16661 (rl78_expand_prologue): Skip prologue generation for naked functions.
16662 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16663 * doc/extend.texi (naked): Add RL78 to the list of processors
16664 that supports this attribute.
16665
b1a0f84e
JL
166662013-05-16 Jeff Law <law@redhat.com>
16667
16668 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16669
af0e415b
UB
166702013-05-16 Uros Bizjak <ubizjak@gmail.com>
16671
16672 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16673 cache parameters using detect_caches_amd also for CYRIX,
16674 NSC and TM2 signatures.
16675
19db293a
UB
166762013-05-16 Uros Bizjak <ubizjak@gmail.com>
16677 Dzianis Kahanovich <mahatma@eu.by>
16678
16679 PR target/45359
16680 PR target/46396
16681 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16682 VIA/Centaur processors and determine their cache parameters
16683 using detect_caches_amd.
16684
251a41b9
TJ
166852013-05-16 Teresa Johnson <tejohnson@google.com>
16686
16687 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16688 (rtl_verify_edges): New function.
16689 (rtl_verify_bb_insns): Ditto.
16690 (rtl_verify_bb_pointers): Ditto.
16691 (rtl_verify_bb_insn_chain): Ditto.
16692 (rtl_verify_fallthru): Ditto.
16693 (rtl_verify_bb_layout): Ditto.
16694 (rtl_verify_flow_info_1): Outline checks into new functions.
16695 (rtl_verify_flow_info): Ditto.
16696
f14540b6
SE
166972013-05-16 Steve Ellcey <sellcey@imgtec.com>
16698
16699 * cfghooks.c (copy_bbs): Add update_dominance argument.
16700 * cfghooks.h (copy_bbs): Update prototype.
16701 * tree-cfg.c (gimple_duplicate_sese_region):
16702 Add update_dominance argument.
16703 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16704 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16705 gimple_duplicate_sese_region call.
16706 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16707 Update copy_bbs call.
16708 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16709 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16710
7e9a3abb
JJ
167112013-05-16 Jakub Jelinek <jakub@redhat.com>
16712
16713 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16714 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16715 vect_recog_rotate_pattern.
16716 (vect_recog_rotate_pattern): New function.
16717
427b248d
JM
167182013-05-16 Jason Merrill <jason@redhat.com>
16719
16720 * Makefile.in (LLINKER): New variable.
16721 (mostlyclean): Remove link mutex.
16722 * configure.ac: Handle --enable-link-mutex.
16723 * lock-and-run.sh: New script.
16724
b871e3d2
RR
167252013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16726
16727 PR target/19599
16728 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16729 for NULL decl.
16730
ce858126
RO
167312013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16732
16733 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16734
798d3d04
GY
167352013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16736
16737 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16738 * config/arm/arm.c (next_consecutive_mem): New function.
16739 (gen_movmem_ldrd_strd): Likewise.
16740 * config/arm/arm.md (movmemqi): Update condition and code.
16741 (unaligned_loaddi, unaligned_storedi): New patterns.
16742
0baddc45
RO
167432013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16744
16745 * config.gcc: Obsolete *-*-solaris2.9*.
16746 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16747
aa9d5bcf
RB
167482013-05-16 Richard Biener <rguenther@suse.de>
16749
16750 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16751 earlier, after GRAPHITE transforms and IV canonicalization.
16752
5a0f4dd3
JJ
167532013-05-16 Jakub Jelinek <jakub@redhat.com>
16754
16755 * omp-low.c (extract_omp_for_data): For collapsed loops,
16756 if at least one of the loops is known at compile time to
16757 iterate zero times, set count to 0.
16758 (expand_omp_regimplify_p): New function.
16759 (expand_omp_for_generic): For collapsed loops, if at least
16760 one of the loops isn't known to iterate at least once,
16761 add runtime check with setting count to 0.
16762 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16763 For unsigned types if it isn't known at compile time that
16764 the loop will iterate at least once, add runtime check to bypass
16765 the whole loop if initial condition isn't true.
16766
e3753785
NS
167672013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16768
16769 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16770
43bb4dd1
MG
167712013-05-16 Marc Glisse <marc.glisse@inria.fr>
16772
16773 PR middle-end/57286
16774 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16775 transformations to avoid an infinite loop.
16776
3571dde6
MP
167772013-05-16 Marek Polacek <polacek@redhat.com>
16778
16779 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16780
b8b3f0ca
LE
167812013-05-15 Leif Ekblad <leif@rdos.net>
16782
16783 * config/i386/i386.c (ix86_decompose_address): Use
16784 DEFAULT_TLS_SEG_REG to access TLS segment register.
16785 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16786 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16787 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16788
e299a383
RS
167892013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16790
16791 PR target/57260
16792 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16793 sibling calls to functions that would normally be lazily bound,
16794 unless $gp is call-clobbered.
16795
e7208ea3
UB
167962013-05-15 Uros Bizjak <ubizjak@gmail.com>
16797
19db293a 16798 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 16799 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
16800 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16801 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
16802 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16803 of TARGET_3DNOW.
16804 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16805
e7413f3d
AS
168062013-05-15 Andreas Schwab <schwab@suse.de>
16807
16808 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16809 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16810 third operand.
16811
ad4db775
TJ
168122013-05-15 Teresa Johnson <tejohnson@google.com>
16813
16814 * loop-unroll.c (report_unroll_peel): Check decision before
16815 emitting unroll/peel message.
16816
af205f67
TJ
168172013-05-15 Teresa Johnson <tejohnson@google.com>
16818
16819 * function.h (has_bb_partition): New rtl_data flag.
16820 (bb_reorder_complete): Ditto.
16821 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16822 instead of flag_reorder_blocks_and_partition.
16823 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16824 with some enhancements.
16825 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16826 * bb-reorder.c (connect_traces): Check for has_bb_partition
16827 instead of flag_reorder_blocks_and_partition.
16828 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16829 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16830 verify_hot_cold_block_grouping.
16831 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16832
9adcfa3c
RR
168332013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16834
16835 PR target/19599
16836 * config/arm/predicates.md (call_insn_operand): New predicate.
16837 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16838 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
16839 if insn is not a tail call.
16840 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
16841 registers.
16842 * config/arm/arm.h (enum reg_class): New caller save register class.
16843 (REG_CLASS_NAMES): Likewise.
16844 (REG_CLASS_CONTENTS): Likewise.
16845 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
16846 without decls.
16847
ccb3ad87
RB
168482013-05-15 Richard Biener <rguenther@suse.de>
16849
16850 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
16851 of MSG_OPTIMIZED_LOCATIONS.
16852 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
16853 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
16854 message.
16855 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
16856 of MSG_OPTIMIZED_LOCATIONS.
16857 (execute_vect_slp): Likewise.
16858 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
16859 (vect_create_cond_for_alias_checks): Likewise.
16860 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
16861 (vect_recog_widen_mult_pattern): Likewise.
16862 (vect_recog_widen_sum_pattern): Likewise.
16863 (vect_recog_over_widening_pattern): Likewise.
16864 (vect_recog_widen_shift_pattern): Likewise.
16865 (vect_recog_vector_vector_shift_pattern): Likewise.
16866 (vect_recog_divmod_pattern): Likewise.
16867 (vect_recog_mixed_size_cond_pattern): Likewise.
16868 (vect_recog_bool_pattern): Likewise.
16869 (vect_pattern_recog_1): Likewise.
16870
48b1474e
MJ
168712013-05-15 Martin Jambor <mjambor@suse.cz>
16872
16873 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
16874 non-functions to builtin_unreachable.
16875 * ipa-inline-transform.c (inline_call): Do not assert estimates were
16876 correct when new direct edges were discovered.
16877
9de04252
MJ
168782013-05-15 Martin Jambor <mjambor@suse.cz>
16879
16880 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
16881 header, print symbol order instead of node uid, print more information
16882 about indirect edge targets.
16883 (ipa_make_edge_direct_to_target): Print symbol order instead of node
16884 uids.
16885 (ipa_make_edge_direct_to_target): Likewise.
16886 (remove_described_reference): Likewise.
16887 (propagate_controlled_uses): Likewise.
16888 (ipa_print_node_params): Also print symbol order.
16889 (ipcp_transform_function): Print symbol order instead of node uids.
16890 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
16891 (cgraph_get_create_real_symbol_node): Likewise.
16892 * ipa-cp.c (print_lattice): Likewise.
16893 (print_all_lattices): Likewise.
16894 (determine_versionability): Likewise.
16895 (initialize_node_lattices): Likewise.
16896 (estimate_local_effects): Likewise.
16897 (update_profiling_info): Likewise.
16898 (create_specialized_node): Likewise.
16899 (perhaps_add_new_callers): Likewise.
16900 (decide_about_value): Likewise.
16901 (decide_whether_version_node): Likewise.
16902 (identify_dead_nodes): Likewise.
16903 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
16904 (dump_inline_summary): Likewise.
16905 (estimate_node_size_and_time): Likewise.
16906 (inline_analyze_function): Likewise.
16907 * ipa-inline.c (report_inline_failed_reason): Likewise.
16908 (want_early_inline_function_p): Likewise.
16909 (edge_badness): Likewise.
16910 (update_edge_key): Likewise.
16911 (inline_small_functions): Likewise. Add dumping of order to two other
16912 dumps.
16913 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
16914 instead of node uids.
16915 (propagate_pure_const): Likewise.
16916 (propagate_pure_const): Likewise.
16917 * ipa-utils.c (dump_cgraph_node_set): Likewise.
16918 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
16919 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
16920 of node uids.
16921 * tree-pretty-print.c (dump_function_header): Likewise.
16922 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
16923 Print symbol order instead of node uids.
16924
1dd03b91
AK
169252013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16926
16927 * config/s390/s390.c (s390_register_move_cost): Don't impose the
16928 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
16929
fdf6a7b9
RB
169302013-05-15 Richard Biener <rguenther@suse.de>
16931
16932 PR tree-optimization/57275
16933 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
16934 return value for fail to do runtime alias checks for gather loads.
16935
2d6e4603
JH
169362013-05-15 Jan Hubicka <jh@suse.cz>
16937
16938 PR lto/57038
16939 PR lto/47375
e7208ea3
UB
16940 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
16941 weakrefs are not external.
16942 (lto_symtab_merge_decls): Fix thinko when dealing with
16943 non-lto_symtab decls.
2d6e4603
JH
16944 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
16945 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
16946 * varpool.c (dump_varpool_node): Dump more flags.
16947
83f44b39
GG
169482013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16949
16950 * config/i386/i386.c (processor_alias_table): Add instruction
16951 FSGSBASE for AMD bdver3 architecture.
16952
2e55d062
JJ
169532013-05-14 Jakub Jelinek <jakub@redhat.com>
16954
16955 * tree.c (warn_deprecated_use): Print file:line using locus color.
16956 * diagnostic.c (diagnostic_report_current_module): Print file:line
16957 and file:line:column using locus color.
16958
0bfdb81e
MS
169592013-05-14 Mike Stump <mikestump@comcast.net>
16960
16961 * gdbinit.in: Add __null.
16962
a508ef22
MS
169632013-05-14 Mike Stump <mikestump@comcast.net>
16964
16965 * recog.h: Rename struct recog_data to Recog_data.
16966 * recog.c: Likewise.
16967 * reload.c (can_reload_into): Likewise.
16968 * config/picochip/picochip.c: Likewise.
16969
e7180acb
MS
169702013-05-14 Mike Stump <mikestump@comcast.net>
16971
16972 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
16973
61216c26
SB
169742013-05-14 Steven Bosscher <steven@gcc.gnu.org>
16975
fd6beed4
SB
16976 * resource.h (struct resources): Remove unch_memory member.
16977 (CLEAR_RESOURCE): Don't clear unch_memory.
16978 * resource.c (mark_referenced_resources): Don't set it.
16979 (mark_set_resources): Likewise.
16980 (mark_target_live_regs): Don't clear it.
16981 (init_resource_info): Likewise.
16982 * reorg.c (resource_conflicts_p): Don't compare it.
16983 (redundant_insn): Don't set it.
16984
61216c26
SB
16985 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
16986 Remove prototypes.
16987 * emit-rtl.c (next_label): Remove unused function.
16988 (skip_consecutive_labels, link_cc0_insns): Move to ...
16989 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
16990 only place where these functions are used, and make them static.
16991
418d1b87
MG
169922013-05-14 Marc Glisse <marc.glisse@inria.fr>
16993
16994 * fold-const.c (fold_negate_expr): Handle vectors.
16995 (fold_truth_not_expr): Make it static.
16996 (fold_invert_truthvalue): New static function.
16997 (invert_truthvalue_loc): Handle vectors. Do not call
16998 fold_truth_not_expr directly.
16999 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
17000 <TRUTH_NOT_EXPR>: Do not cast to boolean.
17001 (fold_comparison): Handle vector constants.
17002 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
17003 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
17004 * tree.h (fold_truth_not_expr): Remove declaration.
17005
fc21784d
JG
170062013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
17007
17008 * config/aarch64/aarch64-simd.md
17009 (aarch64_vcond_internal<mode>): Rename to...
17010 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
17011 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
17012 float modes. Clarify all iterator modes.
17013 (vcond<mode><mode>): Use new name for vcond expanders.
17014 (vcond<v_cmp_result><mode>): Likewise.
17015 (vcondu<mode><mode>: Likewise.
17016 * config/aarch64/iterators.md (VDQF_COND): New.
17017
d4c52634
MG
170182013-05-14 Marc Glisse <marc.glisse@inria.fr>
17019
17020 PR bootstrap/57266
17021 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
17022 variable for the shift amount. Check that we shift by non-negative
17023 amounts.
17024
2b261262
CLT
170252013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
17026
17027 PR target/42017
17028 * config/arm/arm.h (EPILOGUE_USES): Only return true
17029 for LR_REGNUM after epilogue_completed.
17030
12211b99 170312013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
17032
17033 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 17034 is error_mark_node.
6e022d7b 17035
56cf7859
RO
170362013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17037
17038 PR target/57261
17039 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
17040 and Solaris 11+/x86 with gld.
17041 * configure: Regenerate.
17042
75776c6d
JJ
170432013-05-14 Jakub Jelinek <jakub@redhat.com>
17044
17045 * expmed.c (expand_shift_1): Canonicalize rotates by
17046 constant bitsize / 2 to bitsize - 1.
7f998021 17047 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
17048 case ROTATERT>: Likewise.
17049
17050 Revert:
17051 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17052
17053 * config/i386/i386.md (rotateinv): New code attr.
17054 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17055 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17056 roll $31, %eax, etc.
17057
df35498a
RB
170582013-05-14 Richard Biener <rguenther@suse.de>
17059
17060 PR middle-end/57235
17061 * tree-eh.c (sink_clobbers): Give up for successors with
17062 multiple predecessors and no virtual uses.
17063
cc6e7ece
EB
170642013-05-14 Eric Botcazou <ebotcazou@adacore.com>
17065
17066 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
17067 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
17068
f778dd4d
JJ
170692013-05-14 Jakub Jelinek <jakub@redhat.com>
17070
17071 PR middle-end/57251
17072 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
17073 the case when both op0 and op1 have VOIDmode.
17074
bad4df9b
KP
170752013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17076
17077 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17078 in multiply-accumulate mode.
17079
56f3e9ac
GW
170802013-05-13 Guozhi Wei <carrot@google.com>
17081
17082 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17083
a3d7ab92
KT
170842013-05-13 Kai Tietz <ktietz@redhat.com>
17085
17086 PR target/56975
17087 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17088 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17089 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17090 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17091 (ix86_expand_prologue): Likewise.
17092 (ix86_expand_split_stack_prologue): Likewise.
17093 (legitimate_pic_address_disp_p): Likewise.
17094 (legitimize_pic_address): Likewise.
17095 (legitimize_tls_address): Likewise.
17096 (legitimize_pe_coff_symbol): Likewise.
17097 (output_pic_addr_const): Likewise.
17098 (construct_plt_address): Likewise.
17099 (ix86_expand_call): Likewise.
17100 (x86_output_mi_thunk): Likewise.
17101 (x86_function_profiler): Likewise.
17102
c59b7e28
SN
171032013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17104
17105 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17106 similar switch cases.
17107 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17108 (aarch64_simd_mov_to_<mode>low): Delete.
17109 (aarch64_simd_mov_to_<mode>high): Delete.
17110 (move_lo_quad_<mode>): Add w<-r alternative.
17111 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17112 (aarch64_simd_mov_from_*): Update type attribute.
17113 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17114 statement.
17115
5f28524a
JH
171162013-05-13 Jan Hubicka <jh@suse.cz>
17117
17118 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17119 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17120 ix86_expand_epilogue, emit_i387_cw_initialization,
17121 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17122 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17123
ae6fa899
JJ
171242013-05-13 Jakub Jelinek <jakub@redhat.com>
17125
17126 PR tree-optimization/45216
17127 PR tree-optimization/57157
17128 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17129 the (-Y) & (B - 1) variant if OP is |.
17130 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17131 return shifted. Use (-op1) & (prec - 1) as other_amount
17132 instead of prec - op1.
17133
4502fe8d
MJ
171342013-05-13 Martin Jambor <mjambor@suse.cz>
17135
17136 PR middle-end/42371
17137 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17138 (ipa_constant_data): New type.
17139 (ipa_jump_func): Use ipa_constant_data to hold information about
17140 constant jump functions.
17141 (ipa_get_jf_constant): Adjust to jump function type changes.
17142 (ipa_get_jf_constant_rdesc): New function.
17143 (ipa_param_descriptor): New field controlled_uses.
17144 (ipa_get_controlled_uses): New function.
17145 (ipa_set_controlled_uses): Likewise.
17146 * ipa-ref.h (ipa_find_reference): Declare.
17147 * ipa-prop.c (ipa_cst_ref_desc): New type.
17148 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17149 changes.
17150 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17151 New parameter cs. Adjust all callers.
17152 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17153 (remove_described_reference): New function.
17154 (jfunc_rdesc_usable): Likewise.
17155 (try_make_edge_direct_simple_call): Decrement controlled use count,
17156 attempt to remove reference if it hits zero.
17157 (combine_controlled_uses_counters): New function.
17158 (propagate_controlled_uses): Likewise.
17159 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17160 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17161 (ipa_print_node_params): Print described use counter.
17162 (ipa_write_jump_function): Adjust to jump function type changes.
17163 (ipa_read_jump_function): New parameter CS, pass it to
17164 ipa_set_jf_constant. Adjust caller.
17165 (ipa_write_node_info): Stream controlled use count
17166 (ipa_read_node_info): Likewise.
17167 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17168 asserting.
17169 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17170 count. Remove cloning-added reference if it reaches zero.
17171 * ipa-ref.c (ipa_find_reference): New function.
17172
0864bfc2
GG
171732013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17174
e7208ea3 17175 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17176 alignment values for AMD BD and BT architectures.
17177
640bfeb2
MG
171782013-05-13 Marc Glisse <marc.glisse@inria.fr>
17179
17180 * tree-vect-generic.c (uniform_vector_p): Move ...
17181 * tree.c (uniform_vector_p): ... here.
17182 * tree.h (uniform_vector_p): Declare it.
17183 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17184 into a scalar.
17185
3a60f32b
JJ
171862013-05-13 Jakub Jelinek <jakub@redhat.com>
17187
198fe1bf
JJ
17188 PR tree-optimization/57230
17189 * tree-ssa-strlen.c (handle_char_store): Record length for
17190 array store from STRING_CST.
17191
3a60f32b
JJ
17192 PR tree-optimization/57230
17193 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17194 check.
17195
566be57c
JR
171962013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17197
17198 * config/epiphany/epiphany.c (epiphany_init): Check size of
17199 NUM_MODES_FOR_MODE_SWITCHING.
17200 (epiphany_expand_prologue):
17201 Remove CONFIG_REGNUM initial value handling code.
17202 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17203 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17204 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17205 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17206 Don't return 1 for FP_MODE_NONE.
17207 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17208 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17209 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17210 * config/epiphany/epiphany.md (save_config): New pattern.
17211
0f2c2331
UB
172122013-05-12 Uros Bizjak <ubizjak@gmail.com>
17213
17214 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17215
5b3f93c7
UB
172162013-05-10 Uros Bizjak <ubizjak@gmail.com>
17217
17218 * config/i386/i386.md (memory): Handle sseishft1.
17219 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17220 (*vec_extractv2di_1): Ditto.
17221
1f873f0e
VM
172222013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17223
17224 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17225 saved registers.
17226
341427fa 172272013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17228
17229 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17230 Add mthumb/march=armv7-a multilib.
17231 Add mthumb/march=armv7-r multilib.
17232 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17233
9e69bdde
RC
172342013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17235
17236 * config/v850/t-rtems: Add more multilibs.
17237
9ff09a22
RB
172382013-05-10 Richard Biener <rguenther@suse.de>
17239
17240 PR tree-optimization/57214
17241 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17242 not propagate from SSA names that occur in abnormal PHI nodes.
17243
a5e0cd1d
MG
172442013-05-10 Marc Glisse <marc.glisse@inria.fr>
17245
17246 * stor-layout.c (element_precision): New function.
17247 * machmode.h (element_precision): Declare it.
17248 * tree.c (build_minus_one_cst): New function.
17249 (element_precision): Likewise.
17250 * tree.h (build_minus_one_cst): Declare new function.
17251 (element_precision): Likewise.
17252 * fold-const.c (operand_equal_p): Use element_precision.
17253 (fold_binary_loc): Handle vector types.
17254 * convert.c (convert_to_integer): Use element_precision.
17255 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17256 separately.
17257
cb2558bc
RS
172582013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17259
17260 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17261 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17262 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17263 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17264 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17265 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17266 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17267 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17268 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17269 (Uuw8): New constraints.
17270 (Usb4): Move into alphabetical order.
17271 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17272 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17273 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17274 previously unnamed patterns.
17275 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17276 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17277 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17278 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17279 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17280 of specific lengths.
17281
cb3b8d33
JJ
172822013-05-10 Jakub Jelinek <jakub@redhat.com>
17283
6f93c008
JJ
17284 * config/i386/i386.md (rotateinv): New code attr.
17285 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17286 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17287 roll $31, %eax, etc.
17288
cb3b8d33
JJ
17289 PR tree-optimization/45216
17290 PR tree-optimization/57157
17291 * tree-ssa-forwprop.c (simplify_rotate): New function.
17292 (ssa_forward_propagate_and_combine): Call it.
17293
afb119be
RB
172942013-05-10 Richard Biener <rguenther@suse.de>
17295
17296 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17297 disable peeling when we version for aliasing.
17298 (vector_alignment_reachable_p): Honor explicit user alignment.
17299 (vect_supportable_dr_alignment): Likewise.
17300 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17301 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17302 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17303 then peeling to arrange for the cost-model check to come first.
17304
01ae4861
AM
173052013-05-10 Alan Modra <amodra@gmail.com>
17306
17307 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17308 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17309 * configure: Regenerate.
17310
ebc9a431
AM
173112013-05-10 Alan Modra <amodra@gmail.com>
17312
17313 PR target/55033
17314 * varasm.c (default_elf_select_section): Move !DECL_P check..
17315 (get_named_section): ..to here before calling get_section_name.
17316 Adjust assertion.
17317 (default_section_type_flags): Add DECL_P check.
17318 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17319 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17320
d4bca93c
JR
173212013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17322
17323 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17324 When using gen_stack_adjust_str with a register offset, add a
17325 REG_FRAME_RELATED_EXPR note.
17326
60ca9a65
UB
173272013-05-09 Uros Bizjak <ubizjak@gmail.com>
17328
17329 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17330 (*vec_extractv4si_zext_mem): Ditto.
17331 (*vec_extractv2di): Add 0->x and x->x alternatives.
17332 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17333 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17334
a3409c02
JM
173352013-05-09 Jason Merrill <jason@redhat.com>
17336
0138d6b2
JM
17337 N3639 C++1y VLA support
17338 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17339 DECL_VALUE_EXPR.
17340
a3409c02
JM
17341 * tree.c (build_constructor_va): New.
17342 * tree.h: Declare it.
17343
66e6b990
MJ
173442013-05-09 Martin Jambor <mjambor@suse.cz>
17345
17346 PR lto/57084
17347 * gimple-fold.c (canonicalize_constructor_val): Call
17348 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17349
64cfa6c0
JH
173502013-05-09 Jan Hubicka <jh@suse.cz>
17351 Richard Biener <rguenther@suse.de>
17352
17353 PR lto/54095
17354 * symtab.c (symtab_make_decl_local): Do not add private names.
17355
c3167b00
JH
173562013-05-09 Jan Hubicka <jh@suse.cz>
17357
17358 PR lto/54095
17359 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17360 (unlink_from_assembler_name_hash): Likewise.
17361 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17362 symtab_unregister_node, symtab_initialize_asm_name_hash,
17363 change_decl_assembler_name): Update.
17364
12dc6974
SN
173652013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17366
17367 * config/aarch64/aarch64.md: New movtf split.
17368 (*movtf_aarch64): Update.
17369 (aarch64_movdi_tilow): Handle TF modes and rename to
17370 aarch64_movdi_<mode>low.
17371 (aarch64_movdi_tihigh): Handle TF modes and rename to
17372 aarch64_movdi_<mode>high
17373 (aarch64_movtihigh_di): Handle TF modes and rename to
17374 aarch64_mov<mode>high_di
17375 (aarch64_movtilow_di): Handle TF modes and rename to
17376 aarch64_mov<mode>low_di
17377 (aarch64_movtilow_tilow): Remove spurious whitespace.
17378 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17379 splits.
17380 (aarch64_print_operand): Update.
17381
227eb343
AM
173822013-05-09 Alan Modra <amodra@gmail.com>
17383
17384 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17385 powerpc64le.
17386 * configure: Regenerate.
17387
0b013847
UB
173882013-05-08 Uros Bizjak <ubizjak@gmail.com>
17389
17390 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17391 splitter preparation statements.
17392 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17393 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17394 adjust_address_nv.
17395
1dc3d6e9
BS
173962013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17397
17398 * gimple-ssa-strength-reduction.c (count_candidates): Change
17399 return value to int.
17400 (analyze_candidates_and_replace): Change type of length to int.
17401
e61e7d28
UB
174022013-05-08 Uros Bizjak <ubizjak@gmail.com>
17403
17404 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17405 (*vec_extract<mode>): Use VI12_128 mode iterator.
17406 (*vec_extract<mode>_mem): Ditto.
17407 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17408 attribute.
17409
4fbfcf44
DN
174102013-05-08 Diego Novillo <dnovillo@google.com>
17411
17412 PR bootstrap/54659
17413
17414 Revert:
4fbfcf44
DN
17415 2012-08-17 Diego Novillo <dnovillo@google.com>
17416
e61e7d28
UB
17417 PR bootstrap/54281
17418 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17419 * config.in: Regenerate.
17420 * configure: Regenerate.
17421 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17422
702d8703
JH
174232013-05-08 Jan Hubicka <jh@suse.cz>
17424
17425 PR lto/54095
17426 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17427 * cgraph.h (symtab_node_base): Add unique_name.
17428 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17429 input_overwrite_node, input_varpool_node): Stream unique_name.
17430 * cgraphclones.c (cgraph_create_virtual_clone,
17431 cgraph_function_versioning): Set unique_name.
17432 * ipa.c (function_and_variable_visibility): Set unique_name.
17433
8b28cf47
BS
174342013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17435
17436 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17437 (alloc_cand_and_find_basis): Restrict conditional candidate
17438 processing to CAND_MULTs.
17439
e86074fd
JH
174402013-05-08 Jan Hubicka <jh@suse.cz>
17441
17442 PR lto/54095
17443 lto-symtab.c (lto_symtab_symbol_p): New function.
17444 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17445 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17446 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17447 Skip static symbols.
17448
44398cbe
PC
174492013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17450
17451 PR tree-optimization/57200
17452 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17453 Only call inform if the preceding warning_at returns true.
17454
f6bc1c4a
HS
174552013-05-07 Han Shen <shenhan@google.com>
17456
17457 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17458 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17459 * common.opt (fstack-protector-strong): New option.
17460 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17461 * doc/invoke.texi (Optimization Options): Document
17462 "-fstack-protector-strong".
17463 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17464
4ffecb1f
SB
174652013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17466
17467 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17468
5a107a0f
VM
174692013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17470
17471 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17472 it is not lhs of the insn.
17473 (setup_reg_equiv): Remove insn having equiv memory which it is not
17474 lhs of the insn.
17475 * lra-constraints.c (process_address): Try to improve generation
17476 code for address base + disp.
17477 (lra_constraints): Make correct the code for checking insn setting
17478 up backward equivalence. Remove insn only if it is in the init
17479 insn list.
17480 * lra-eliminations.c (update_reg_eliminate): Change return value.
17481 (lra_eliminate): Use the result.
17482
3f5783ea
UB
174832013-05-07 Uros Bizjak <ubizjak@gmail.com>
17484
17485 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17486 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17487 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17488 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17489 register target operands.
17490 (*vec_extractv8hi_sse2): New pattern.
17491 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17492 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17493 (*vec_extract<mode>_mem): New insn and split pattern.
17494
8a5800b8
CL
174952013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17496
17497 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17498 (TARGET_ASAN_SHADOW_OFFSET): Define.
17499 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17500 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17501
7bf55a70
BS
175022013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17503
17504 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17505 (incr_vec_index): Return -1 if increment not found.
17506 (create_add_on_incoming_edge): Assert if increment not found.
17507 (record_increment): Limit number of increments recorded.
17508 (all_phi_incrs_profitable): Return false if an increment not found.
17509 (replace_profitable_candidates): Don't process increments that were
17510 not recorded.
17511 (analyze_candidates_and_replace): Limit size of incr_vec.
17512
3f8825c0
RB
175132013-05-07 Richard Biener <rguenther@suse.de>
17514
17515 * calls.c (special_function_p): setjmp-like functions are leaf.
17516 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17517 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17518
fd4842cd
SN
175192013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17520
17521 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17522 (aarch64_simd_mov<mode>): New expander.
17523 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17524 (aarch64_simd_mov_to_<mode>high): Likewise.
17525 (aarch64_simd_mov_from_<mode>low): Likewise.
17526 (aarch64_simd_mov_from_<mode>high): Likewise.
17527 (aarch64_dup_lane<mode>): Update.
17528 (aarch64_dup_lanedi): New instruction pattern.
17529 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17530 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17531
a7a7d10e
BS
175322013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17533
17534 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17535 (replace_mult_candidate): Remove unnecessary argument; remove
17536 unnecessary parameter from call to introduce_cast_before_cand.
17537 (replace_unconditional_candidate): Remove unnecessary parameter
17538 from call to replace_mult_candidate.
17539 (replace_conditional_candidate): Likewise.
17540 (insert_initializers): Use make_temp_ssa_name.
17541 (introduce_cast_before_cand): Remove unnecessary argument; use
17542 make_temp_ssa_name.
17543 (replace_one_candidate): Remove unnecessary argument; remove
17544 unnecessary parameter from calls to introduce_cast_before_cand.
17545 (replace_profitable_candidates): Remove unnecessary parameters
17546 from calls to replace_one_candidate.
17547
29105868
BS
175482013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17549
17550 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17551 phi def as possibly hiding a basis for a CAND_ADD whose operands
17552 have been commuted in the analysis.
17553 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17554
4095f9fa
N
175552013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17556
17557 * config/aarch64/aarch64.md
17558 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17559 shift value between 0-4.
17560
39e843e8
RB
175612013-05-07 Richard Biener <rguenther@suse.de>
17562
17563 * double-int.h (rshift): New overload.
17564 * double-int.c (rshift): New function.
17565 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17566 (create_reference_ops_from_ref): Remove.
17567 (vn_reference_insert): Use shared ops for constructing the
17568 reference and copy it.
17569
0a1a83cb
RB
175702013-05-07 Richard Biener <rguenther@suse.de>
17571
17572 PR middle-end/57190
17573 * tree-eh.c (sink_clobbers): Properly propagate
17574 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17575
43303d6f
JJ
175762013-05-07 Jakub Jelinek <jakub@redhat.com>
17577
ba7e83f8
JJ
17578 PR tree-optimization/57149
17579 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17580 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17581 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17582 uninit_undefined_value_p instead of ssa_undefined_value_p.
17583
43303d6f
JJ
17584 PR debug/57184
17585 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17586 for modifier == EXPAND_INITIALIZER.
17587
14523c25
AB
175882013-05-07 Anton Blanchard <anton@samba.org>
17589
17590 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17591 for powerpc64 little endian.
17592 * configure: Regenerate.
17593
cb7c8be9
GS
175942013-05-06 Graham Stott <grahams@btinternet.com>
17595
17596 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17597 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17598 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17599 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17600
176012013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17602
17603 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17604 codes which allow non-lvalues.
17605
9a0ee7b0
MG
176062013-05-06 Marc Glisse <marc.glisse@inria.fr>
17607
17608 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17609 components are all 1s.
17610 (integer_minus_onep): New function.
17611 * tree.h (integer_minus_onep): Declare it.
17612 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17613 integer_minus_onep instead of integer_all_onesp.
17614
f2c17ea9
OE
176152013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17616
17617 PR target/52933
17618 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17619 variations of these patterns.
17620
f75e6a51
UB
176212013-05-06 Uros Bizjak <ubizjak@gmail.com>
17622
17623 * config/i386/i386.md (isa): Add x64_sse4 member.
17624 (enabled): Handle x64_sse4.
17625 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17626 instruction for 64bit SSE4_1 targets. Update insn attributes.
17627 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17628 instruction for SSE4_1 targets. Update insn attributes.
17629 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17630 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17631 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17632 const_1 selector.
17633 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17634 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17635 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17636
a986d468
OE
176372013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17638
17639 PR target/57108
17640 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17641
382522cb
MK
176422013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17643
17644 * final.c (do_assembler_dialects): Don't handle curly braces and
17645 vertical bar escaped by % as dialect delimiters.
17646 (output_asm_insn): Print curly braces and vertical bar if escaped
17647 by % and ASSEMBLER_DIALECT defined.
17648 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17649 * doc/tm.texi: Regenerated.
17650
fb0d5c60
SB
176512013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17652
fb0d5c60
SB
17653 * config/mips/mips.c: Include tree-pass.h.
17654 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17655 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17656 (pass_mips_machine_reorg2): New machine specific pass.
17657 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17658 (mips_option_override): Register the new pass.
17659 * rtl.h (cleanup_barriers): Remove prototype.
17660 (dbr_schedule): Likewise.
17661 * jump.c (cleanup_barriers): Make static.
17662 * reorg.c (dbr_schedule): Likewise.
17663
aa06a978
RB
176642013-05-06 Richard Biener <rguenther@suse.de>
17665
17666 PR tree-optimization/57185
17667 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17668 SSA names properly.
17669
0b953bec
UB
176702013-05-06 Uros Bizjak <ubizjak@gmail.com>
17671
17672 PR target/57106
17673 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17674 between "first_arg" and "insn", not "last" and "insn".
17675
28708525
WS
176762013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17677
17678 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17679 (find_candidates_in_block): Re-enable slsr_process_phi.
17680 (create_phi_basis): Fix double counting of candidate adjustment.
17681
0107dca2
RB
176822013-05-06 Richard Biener <rguenther@suse.de>
17683
17684 PR middle-end/57147
17685 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17686 the edge is also fallthru, preserve it and just clear the
17687 abnormal flag.
17688 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17689 also complex, preserve that and just clear the fallthru flag.
17690 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17691 update virtual operands.
17692
470d4d13
AM
176932013-05-06 Alan Modra <amodra@gmail.com>
17694
17695 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17696 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17697 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17698 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17699 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17700 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17701
8f1dbf8d
AM
177022013-05-06 Alan Modra <amodra@gmail.com>
17703
17704 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17705 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17706 (DEFAULT_ASM_ENDIAN): Define.
17707 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17708 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17709 Update -K PIC clause from sysv4.h.
17710 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17711 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17712
54890767
AM
177132013-05-06 Alan Modra <amodra@gmail.com>
17714
17715 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17716 twice for little-endian.
17717 (ashrdi3_no_power, ashrdi3): Support little-endian.
17718
2353515d
OE
177192013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17720
17721 PR target/55303
17722 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17723 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17724 related expanders.
17725 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17726 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17727 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17728 New predicates.
17729
33e67557
SB
177302013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17731 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17732
17733 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17734 * config/pa/pa.opt: Make mbig-switch a no-op.
17735 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17736 (CASE_VECTOR_MODE): Always return SImode.
17737 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17738 for the !TARGET_BIG_SWITCH case.
17739 * config/pa/pa-linux.h: Likewise.
17740 * config/pa/pa-openbsd.h: Likewise.
17741 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17742 * config/pa/pa.md (short_jump): Remove define_insn.
17743 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17744 (casesi0): Remove define_insn.
17745 (type): Remove btable_branch.
17746 (pa_combine_type): Likewise.
17747 (in_nullified_branch_delay): Likewise.
17748 (in_call_delay): Likewise.
17749 (define_delay): Likewise.
17750 (define_insn_reservation "Z3"): Likewise.
17751 (define_insn_reservation "Z4"): Likewise.
17752 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17753 (pa_adjust_insn_length): Remove adjustment for btable branches.
17754 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17755 and mno-big-switch
17756
3095685e
UB
177572013-05-05 Uros Bizjak <ubizjak@gmail.com>
17758
17759 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17760 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17761 Add m->r,x alternatives.
17762 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17763 splitters using SWI48x mode iterator.
17764 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17765 TARGET_64BIT. Add m->x alternative.
17766 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17767 Add o->x alternative. Enable for TARGET_SSE.
17768 (sse_storeq): Remove expander.
17769 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17770 with memory input operand.
17771 (*vec_extractv2di_1 splitter): New.
17772 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17773 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17774
4b36ae28
SB
177752013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17776
17777 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17778 (INT_LOWPART): Delete.
17779 (extract_MB): Adjust.
17780 (extract_ME): Adjust.
17781 (print_operand): Adjust.
17782
da226db2
SB
177832013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17784
17785 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17786 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17787 (reg_or_logical_cint_operand, easy_fp_constant,
17788 logical_const_operand): Delete "CONST_DOUBLE" case.
17789 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17790 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 17791 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
17792 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17793 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17794 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17795 test.
17796 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17797 CONST_DOUBLE DImode/VOIDmode case.
17798 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17799 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17800 CONST_DOUBLE VOIDmode case.
17801 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17802 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17803 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17804 Delete CONST_DOUBLE case.
17805 (splitters for mov FMOVE64 const_double): Delete
17806 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17807 "HOST_BITS_PER_WIDE_INT >= 64" test.
17808 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17809 case.
17810 (mov DI const_double): Delete.
17811
40de22d6
JJ
178122013-05-04 Jakub Jelinek <jakub@redhat.com>
17813
17814 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17815 on op shows all bits zero in mode of a lowpart subreg, return zero.
17816
5ec6aff2
MM
178172013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17818
17819 PR target/57150
17820 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17821 to save TFmode registers and DImode to save TImode registers for
17822 caller save operations.
17823 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17824 mark being partially clobbered since they only use the first
17825 double word.
17826
17827 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17828 and TDmode only use the upper 64-bits of each VSX register.
17829
2cefad90
BS
178302013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17831
17832 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17833 (find_candidates_in_block): Disable slsr_process_phi.
17834
d6d7eee1
GW
178352013-05-03 Guozhi Wei <carrot@google.com>
17836
17837 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
17838 constructor to ...
17839 (build_init_ctor): ... here.
d6d7eee1 17840
9b92d12b
BS
178412013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17842
17843 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
17844 (slsr_cand_d): Redefine def_phi.
17845 (stride_status, phi_adjust_status, count_phis_status): New enums.
17846 (find_phi_def): New.
17847 (find_basis_for_base_expr): New.
17848 (find_basis_for_candidate): Handle hidden bases.
17849 (alloc_cand_and_find_basis): Handle phi candidates.
17850 (slsr_process_phi): New.
17851 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
17852 (create_mul_imm_cand): Likewise.
17853 (create_add_ssa_cand): Exclude phi base candidates.
17854 (create_add_imm_cand): Likewise.
17855 (slsr_process_cast): Likewise.
17856 (slsr_process_copy): Likewise.
17857 (find_candidates_in_block): Handle phi candidates.
17858 (dump_candidate): Likewise.
17859 (unconditional_cands): Delete.
17860 (unconditional_cands_with_known_stride_p): Delete.
17861 (phi_dependent_cand_p): New.
17862 (cand_increment): Handle phi-dependent candidates.
17863 (replace_dependent): Delete.
17864 (replace_mult_candidate): New.
17865 (replace_unconditional_candidate): New.
17866 (incr_vec_index): Move to avoid forward reference.
17867 (create_add_on_incoming_edge): New.
17868 (create_phi_basis): New.
17869 (replace_dependents): Delete.
17870 (replace_conditional_candidate): New.
17871 (phi_add_costs): New.
17872 (replace_uncond_cands_and_profitable_phis): New.
17873 (record_increment): Handle phi adjustments.
17874 (record_phi_increments): New.
17875 (record_increments): Handle phi adjustments.
17876 (phi_incr_cost): New.
17877 (lowest_cost_path): Handle phis.
17878 (total_savings): Likewise.
17879 (analyze_increments): Likewise.
17880 (ncd_with_phi): New.
17881 (ncd_of_cand_and_phis): New.
17882 (nearest_common_dominator_for_cands): Handle phi increments.
17883 (all_phi_incrs_profitable): New.
17884 (replace_profitable_candidates): Handle phi-dependent candidates.
17885 (analyze_candidates_and_replace): Likewise.
17886
68f073d4
TJ
178872013-05-03 Teresa Johnson <tejohnson@google.com>
17888
17889 PR bootstrap/57154
17890 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
17891 do not exceed REG_BR_PROB_BASE.
17892
a4ee7cb9
JL
178932013-05-03 Jeff Law <law@redhat.com>
17894
ade67f70 17895 PR tree-optimization/57144
a4ee7cb9
JL
17896 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
17897 operand of the condition will bit into the new type when eliminating
17898 a cast feeding a condition.
17899
47954c4e
JJ
179002013-05-03 Jakub Jelinek <jakub@redhat.com>
17901
17902 PR rtl-optimization/57130
3095685e
UB
17903 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
17904 of COMPARE as in_code to the recursive call if needed.
47954c4e 17905
3c21604f
UB
179062013-05-03 Uros Bizjak <ubizjak@gmail.com>
17907
17908 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
17909 (enabled): Handle new members.
17910 * config/i386/sse.md (*vec_concatv2si): Merge from
17911 *vec_concatv2si_sse2 and vec_concatv2si_sse.
17912 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
17913
12211b99 179142013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
17915
17916 PR tree-optimization/57027
17917 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
17918 for fnms opportunity, check we got the prerequisite kind
17919 of tree / gimple before using accessor functions.
17920
07bfc9ec
RB
179212013-05-03 Richard Biener <rguenther@suse.de>
17922
17923 * double-int.h (lshift): New overload without precision
17924 and arith argument.
17925 (operator *=, operator +=, operator -=): Move ...
17926 * double-int.c (operator *=, operator +=, operator -=): ... here
17927 and implement more efficiently.
17928 (mul_double_with_sign): Remove.
17929 (lshift_double): Adjust to take unsinged shift argument, push
17930 dispatching code to callers.
17931 (mul_double_wide_with_sign): Add early out for callers that
17932 are not interested in high parts or overflow.
17933 (lshift): New function.
17934 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
17935 dispatch code here.
17936 (lrotate, rrotate): Use logical shifts.
17937 * expr.c (get_inner_reference): Use lshift.
17938 * fixed-value.c (do_fixed_divide): Likewise.
17939 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17940 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17941 (indirect_refs_may_alias_p): Likewise.
17942 (stmt_kills_ref_p_1): Likewise.
17943
7769bb64
VP
179442013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17945
17946 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
17947
1d0c8e5c
VP
179482013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17949
17950 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
17951 scalar form of FABD instruction.
17952
f15feaf9
VM
179532013-05-02 Vladimir Makarov <vmakarov@redhat.com>
17954
17955 * lra-constraints.c (process_alt_operands): Add checking alt
17956 number to choose the best alternative.
17957
d90e76d4
RB
179582013-05-02 Richard Biener <rguenther@suse.de>
17959
17960 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
17961 bitmap and its handling.
17962 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
17963
9f8e7a96
RB
179642013-05-02 Richard Biener <rguenther@suse.de>
17965
17966 PR middle-end/57140
17967 * tree-inline.c (copy_loops): Properly handle removed loops.
17968 (copy_cfg_body): Mark destination loops for fixup if source
17969 loops needed fixup.
17970
f3a81b39
GY
179712013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
17972
17973 PR target/56732
17974 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
17975 generating simple_return for naked functions.
17976
7b920a9a
MJ
179772013-05-02 Martin Jambor <mjambor@suse.cz>
17978
17979 PR middle-end/56988
17980 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
17981 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
17982 flags match.
17983 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
17984 ipa_agg_replacement_value structures.
17985 (known_aggs_to_agg_replacement_list): Likewise.
17986 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
17987 (read_agg_replacement_chain): Likewise.
17988 (ipcp_transform_function): Also check that by_ref flags match.
17989
2c41c19d
RB
179902013-05-02 Richard Biener <rguenther@suse.de>
17991
17992 * graphds.h (struct graph): Add obstack member.
17993 * graphds.c (new_graph): Initialize obstack and allocate
17994 vertices from it.
17995 (add_edge): Allocate edge from the obstack.
3c21604f 17996 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 17997
8b47039c
TJ
179982013-05-02 Teresa Johnson <tejohnson@google.com>
17999
18000 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
18001 divides.
18002 * cfg.c (update_bb_profile_for_threading): Ditto.
18003 * tree-inline.c (copy_bb): Ditto.
18004 (copy_edges_for_bb): Ditto.
18005 (initialize_cfun): Ditto.
18006 (copy_cfg_body): Ditto.
18007 (expand_call_inline): Ditto.
18008 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
18009 (estimate_node_size_and_time): Ditto.
18010 (inline_merge_summary): Ditto.
18011 * cgraphclones.c (cgraph_clone_edge): Ditto.
18012 (cgraph_clone_node): Ditto.
18013 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18014 (compute_trg_info): Ditto.
18015
da65928c
IB
180162013-05-02 Ian Bolton <ian.bolton@arm.com>
18017
18018 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
18019 S reg when fp attribute set.
18020 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
18021
add3c965
IB
180222013-05-02 Ian Bolton <ian.bolton@arm.com>
18023
18024 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
18025 New pattern.
18026 (*and_one_cmplsi3_compare0_uxtw): Likewise.
18027 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18028 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
18029
fdd43ac4
RB
180302013-05-02 Richard Biener <rguenther@suse.de>
18031
18032 * tree-scalar-evolution.c (scev_info_hasher): Remove.
18033 (struct instantiate_cache_entry): New type.
18034 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
18035 (struct instantiate_cache_type): New type.
18036 (set_instantiated_value, get_instantiated_value): Remove.
18037 (get_instantiated_value_entry): New function.
18038 (instantiate_scev_name): Use the new cache and adjust.
18039 (instantiate_scev_poly): Adjust.
18040 (instantiate_scev_binary): Likewise.
18041 (instantiate_array_ref): Likewise.
18042 (instantiate_scev_convert): Likewise.
18043 (instantiate_scev_not): Likewise.
18044 (instantiate_scev_3): Likewise.
18045 (instantiate_scev_2): Likewise.
18046 (instantiate_scev_r): Likewise.
18047 (instantiate_scev): Likewise.
18048 (resolve_mixers): Likewise.
18049
36ff9dfb
VM
180502013-05-01 Vladimir Makarov <vmakarov@redhat.com>
18051
18052 PR target/57091
18053 * lra-constraints.c (best_small_class_operands_num): Remove.
18054 (process_alt_operands): Remove small_class_operands_num. Take
18055 small classes operands into losers and only if the operand is not
18056 matched. Modify debugging output.
18057 (curr_insn_transform): Remove best_small_class_operands_num.
18058 Print insn name.
18059
36054fab
JG
180602013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18061
18062 * config/aarch64/aarch64-builtins.c
18063 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
18064 * config/aarch64/aarch64-simd-builtins.def
18065 (reduc_splus_): Add new modes.
18066 (reduc_uplus_): New.
18067 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
18068 (reduc_uplus_v4sf): Likewise.
18069 (reduc_splus_v4sf): Likewise.
18070 (aarch64_addv<mode>): Likewise.
18071 (reduc_uplus_<mode>): Likewise.
18072 (reduc_splus_<mode>): Likewise.
18073 (aarch64_addvv2di): Likewise.
18074 (reduc_uplus_v2di): Likewise.
18075 (reduc_splus_v2di): Likewise.
18076 (aarch64_addvv2si): Likewise.
18077 (reduc_uplus_v2si): Likewise.
18078 (reduc_splus_v2si): Likewise.
18079 (reduc_<sur>plus_<mode>): New.
18080 (reduc_<sur>plus_v2di): Likewise.
18081 (reduc_<sur>plus_v2si): Likewise.
18082 (reduc_<sur>plus_v4sf): Likewise.
18083 (aarch64_addpv4sf): Likewise.
18084 * config/aarch64/arm_neon.h
18085 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18086 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18087 add UNSPEC_SADDV, UNSPEC_UADDV.
18088 (SUADDV): New.
18089 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18090
6dce23a8
JG
180912013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18092
18093 * config/aarch64/arm_neon.h
18094 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18095
1598945b
JG
180962013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18097
18098 * config/aarch64/aarch64-builtins
18099 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18100
998eaf97
JG
181012013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18102
18103 * config/aarch64/aarch64-simd-builtins.def
18104 (reduc_smax_): New.
18105 (reduc_smin_): Likewise.
18106 (reduc_umax_): Likewise.
18107 (reduc_umin_): Likewise.
18108 (reduc_smax_nan_): Likewise.
18109 (reduc_smin_nan_): Likewise.
18110 (fmax): Remove.
18111 (fmin): Likewise.
18112 (smax): Update for V2SF, V4SF and V2DF modes.
18113 (smin): Likewise.
18114 (smax_nan): New.
18115 (smin_nan): Likewise.
18116 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18117 (<su><maxmin><mode>3): ...This, refactor.
18118 (s<maxmin><mode>3): New.
18119 (<maxmin_uns><mode>3): Likewise.
18120 (reduc_<maxmin_uns>_<mode>): Refactor.
18121 (reduc_<maxmin_uns>_v4sf): Likewise.
18122 (reduc_<maxmin_uns>_v2si): Likewise.
18123 (aarch64_<fmaxmin><mode>: Remove.
18124 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18125 new builtin names.
18126 (vmin<q>_f<32,64>): Likewise.
18127 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18128 (FMAXMIN): New.
18129 (su): Add mappings for smax, smin, umax, umin.
18130 (maxmin): New.
18131 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18132 (FMAXMIN): Rename as...
18133 (FMAXMIN_UNS): ...This.
18134 (maxminv): Remove.
18135 (fmaxminv): Likewise.
18136 (fmaxmin): Likewise.
18137 (maxmin_uns): New.
18138 (maxmin_uns_op): Likewise.
18139
bd11644e
JG
181402013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18141
18142 * config/aarch64/arm_neon.h
18143 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18144 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18145 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18146
75dd5ace
JG
181472013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18148
18149 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18150 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18151
7c19979f
JG
181522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18153
18154 * config/aarch64/aarch64-simd.md
18155 (vcond<mode>_internal): Handle special cases for constant masks.
18156 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18157 (vcondu<mode><mode>): Likewise.
18158 (vcond<v_cmp_result><mode>): New.
18159
bb60efd9
JG
181602013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18161
18162 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18163 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18164 * config/aarch64/aarch64-simd-builtins.def
18165 (cmeq): Update to BUILTIN_VALLDI.
18166 (cmgt): Likewise.
18167 (cmge): Likewise.
18168 (cmle): Likewise.
18169 (cmlt): Likewise.
18170 * config/aarch64/arm_neon.h
18171 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18172 to builtins or C as appropriate.
18173
889b9412
JG
181742013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18175
18176 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18177 (cmgeu): ...This.
18178 (cmhi): Rename to...
18179 (cmgtu): ...This.
18180 * config/aarch64/aarch64-simd.md
18181 (simd_mode): Add SF.
18182 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18183 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18184 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18185 (cstore<mode>_neg): ...This.
18186 * config/aarch64/iterators.md
18187 (VALLF): new.
18188 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18189 (COMPARISONS): New.
18190 (UCOMPARISONS): Likewise.
18191 (optab): Add missing comparisons.
18192 (n_optab): New.
18193 (cmp_1): Likewise.
18194 (cmp_2): Likewise.
18195 (CMP): Likewise.
18196 (cmp): Remove.
18197 (VCMP_S): Likewise.
18198 (VCMP_U): Likewise.
18199 (V_cmp_result): Add DF, SF modes.
18200 (v_cmp_result): Likewise.
18201 (v): Likewise.
18202 (vmtype): Likewise.
18203 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18204
0a7dbb76
GY
182052013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18206
18207 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18208 define_insn to define_insn_and_split.
18209 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18210 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18211 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18212 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18213 (thumb2_negscc): Likewise.
18214
fb614ca6
GY
182152013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18216
18217 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18218
9e64a0bf
GY
182192013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18220
18221 * config/arm/thumb2.md: Remove trailing whitespaces.
18222
d6b28156
RS
182232013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18224
18225 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18226 Use gen_int_mode rather than GEN_INT.
18227
f91674c3
L
182282013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18229
b0dec607 18230 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18231 debug_gimple_stmt.
18232
3551257c
RB
182332013-04-30 Richard Biener <rguenther@suse.de>
18234
18235 PR middle-end/57122
3c21604f 18236 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18237
4c1aff1c
RB
182382013-04-30 Richard Biener <rguenther@suse.de>
18239
18240 PR middle-end/57107
18241 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18242
54b8379a
AB
182432013-04-30 Andrey Belevantsev <abel@ispras.ru>
18244
18245 PR rtl-optimization/56957
18246 PR rtl-optimization/57105
54b8379a
AB
18247 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18248 variable. Use just INSN_UID for determining whether an insn
18249 should be only disconnected from the insn stream.
18250 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18251
abc27962
JJ
182522013-04-30 Jakub Jelinek <jakub@redhat.com>
18253
18254 PR tree-optimization/57104
18255 * tsan.c (instrument_expr): Don't instrument accesses to
18256 DECL_HARD_REGISTER VAR_DECLs.
18257
0fc822d0
RB
182582013-04-30 Richard Biener <rguenther@suse.de>
18259
18260 * function.h (loops_for_fn): New inline function.
18261 (set_loops_for_fn): Likewise.
18262 * cfgloop.h (place_new_loop): Add struct function parameter.
18263 (get_loop): Likewise.
18264 (get_loops): Likewise.
18265 (number_of_loops): Likewise.
18266 (fel_next): Adjust.
18267 (fel_init): Likewise.
18268 * cfg.c (get_loop_copy): Adjust.
18269 * cfgloop.c (flow_loops_dump): Likewise.
18270 (record_loop_exits): Likewise.
18271 (verify_loop_structure): Likewise.
18272 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18273 (estimate_reg_pressure_cost): Likewise.
18274 (mark_loop_exit_edges): Likewise.
18275 * cfgloopmanip.c (place_new_loop): Likewise.
18276 (add_loop): Likewise.
18277 (duplicate_loop): Likewise.
18278 * graph.c (draw_cfg_nodes): Likewise.
18279 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18280 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18281 (extract_affine_chrec): Likewise.
18282 (build_scop_iteration_domain): Likewise.
18283 * graphite.c (graphite_initialize): Likewise.
18284 * ira-build.c (create_loop_tree_nodes): Likewise.
18285 (more_one_region_p): Likewise.
18286 (rebuild_regno_allocno_maps): Likewise.
18287 (mark_loops_for_removal): Likewise.
18288 (mark_all_loops_for_removal): Likewise.
18289 (remove_unnecessary_regions): Likewise.
18290 (ira_build): Likewise.
18291 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18292 * loop-init.c (fix_loop_structure): Likewise.
18293 (gate_rtl_move_loop_invariants): Likewise.
18294 (gate_rtl_unswitch): Likewise.
18295 (gate_rtl_unroll_and_peel_loops): Likewise.
18296 (rtl_doloop): Likewise.
18297 * lto-streamer-in.c (input_cfg): Likewise.
18298 * lto-streamer-out.c (output_cfg): Likewise.
18299 * modulo-sched.c (sms_schedule): Likewise.
18300 * predict.c (tree_estimate_probability): Likewise.
18301 (tree_estimate_probability_driver): Likewise.
18302 (estimate_loops): Likewise.
18303 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18304 (move_sese_region_to_fn): Likewise.
18305 (debug_loop_num): Likewise.
18306 * tree-chrec.c (chrec_evaluate): Likewise.
18307 (hide_evolution_in_other_loops_than_loop): Likewise.
18308 (chrec_component_in_loop_num): Likewise.
18309 (reset_evolution_in_loop): Likewise.
18310 (evolution_function_is_invariant_rec_p): Likewise.
18311 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18312 * tree-inline.c (copy_loops): Likewise.
18313 (copy_cfg_body): Likewise.
18314 (tree_function_versioning): Likewise.
18315 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18316 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18317 Likewise.
18318 (add_to_evolution_1): Likewise.
18319 (scev_const_prop): Likewise.
18320 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18321 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18322 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18323 (tree_ssa_lim_initialize): Likewise.
18324 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18325 (verify_loop_closed_ssa): Likewise.
18326 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18327 (tree_ssa_loop_im): Likewise.
18328 (tree_ssa_loop_unswitch): Likewise.
18329 (tree_vectorize): Likewise.
18330 (check_data_deps): Likewise.
18331 (tree_ssa_loop_ivcanon): Likewise.
18332 (tree_ssa_loop_bounds): Likewise.
18333 (tree_complete_unroll): Likewise.
18334 (tree_complete_unroll_inner): Likewise.
18335 (tree_parallelize_loops): Likewise.
18336 (tree_ssa_loop_prefetch): Likewise.
18337 (tree_ssa_loop_ivopts): Likewise.
18338 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18339 * tree-vectorizer.c (vectorize_loops): Likewise.
18340
37953bd3
MF
183412013-04-29 Mike Frysinger <vapier@gentoo.org>
18342
18343 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18344 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18345 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18346 with EABI_LINK_SPEC.
18347
f9ed28db
UB
183482013-04-29 Uros Bizjak <ubizjak@gmail.com>
18349
18350 PR target/44578
18351 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18352 alternative.
18353
deca73f5
VM
183542013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18355
18356 PR target/57097
37953bd3 18357 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18358 using memory for pseudos. Print cost dump for alternatives.
18359 Modify cost values for conflicts with early clobbers.
18360 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18361
fdca7d03
UB
183622013-04-29 Uros Bizjak <ubizjak@gmail.com>
18363
18364 PR target/57098
18365 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18366
0b064172
IB
183672013-04-29 Ian Bolton <ian.bolton@arm.com>
18368
18369 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18370 from/to S register.
18371 (movdi_aarch64): Support LDR/STR from/to D register.
18372
473cec55
IB
183732013-04-29 Ian Bolton <ian.bolton@arm.com>
18374
18375 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18376 or higher by default.
18377
a6f30e66
RB
183782013-04-29 Richard Biener <rguenther@suse.de>
18379
18380 PR middle-end/57075
18381 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18382 even if not adding abnormal edges for calls that can make
18383 abnormal gotos.
18384
0c2b2040
RB
183852013-04-29 Richard Biener <rguenther@suse.de>
18386
18387 PR middle-end/57103
18388 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18389 TREE_BLOCK.
18390 (move_stmt_r): Remove redundant checking.
18391
f41f80f9
TJ
183922013-04-29 Teresa Johnson <tejohnson@google.com>
18393
18394 PR bootstrap/57077
18395 * basic-block.h (apply_scale): New function.
18396 (apply_probability): Use apply_scale.
18397 * gimple-streamer-in.c (input_bb): Ditto.
18398 * lto-streamer-in.c (input_cfg): Ditto.
18399 * lto-cgraph.c (merge_profile_summaries): Ditto.
18400 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18401 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18402 (copy_edges_for_bb): Ditto.
18403 (copy_cfg_body): Ditto.
18404
315bbd2e
TV
184052013-04-29 Tom de Vries <tom@codesourcery.com>
18406
18407 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18408 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18409 (tail_merge_optimize): Handle current_loops == NULL.
18410
ebbd90d8
JL
184112013-04-26 Jeff Law <law@redhat.com>
18412
18413 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18414 (simplify_cond_using_ranges): Generalize code to simplify
18415 COND_EXPRs where one argument is a constant and the other
18416 is an SSA_NAME created by an integral type conversion.
18417
8b9b57eb
KT
184182013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18419
18420 * config/arm/arm.md (store_minmaxsi): Use only when
18421 optimize_insn_for_size_p.
18422
9498e5dc
CB
184232013-04-29 Christian Bruel <christian.bruel@st.com>
18424
18425 PR target/57108
18426 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18427
6093bc06
RB
184282013-04-29 Richard Biener <rguenther@suse.de>
18429
18430 PR middle-end/57089
fdca7d03
UB
18431 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18432 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18433 (expand_omp_for_generic): Properly add loops.
18434 (expand_omp_for_static_nochunk): Likewise.
18435 (expand_omp_for_static_chunk): Likewise.
18436 (expand_omp_for): For the degenerate case fixup loops.
18437 (expand_omp_sections): Fix default bb placement in loops.
18438 (expand_omp_atomic_pipeline): Properly add loops.
18439
84aacbfd
KT
184402013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18441
18442 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18443
8dee4479
TV
184442013-04-29 Tom de Vries <tom@codesourcery.com>
18445
18446 * tree-ssa-tail-merge.c: Update header comment.
18447
47934dc4
JG
184482013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18449
18450 * config/aarch64/arm_neon.h
18451 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18452 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18453 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18454 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18455 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18456 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18457 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18458 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18459
384be29f
JG
184602013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18461
18462 * config/aarch64/aarch64-simd.md
18463 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18464 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18465 fix_trunc, fixuns_trunc.
18466 (ftrunc<VDQF:mode>2): New.
18467 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18468 (fix_trunc_optab): New.
18469
0386b123
JG
184702013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18471
18472 * config/aarch64/aarch64-builtins.c
18473 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18474 iceilf, lround, iroundf.
18475
00fcb892
UB
184762013-04-29 Uros Bizjak <ubizjak@gmail.com>
18477
18478 PR target/54349
18479 * config/i386/i386.h (enum ix86_tune_indices)
18480 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18481 New, split from X86_TUNE_INTER_UNIT_MOVES.
18482 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18483 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18484 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18485 (TARGET_INTER_UNIT_MOVES): Remove.
18486 * config/i386/i386.c (initial_ix86_tune_features): Update.
18487 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18488 (ix86_expand_convert_uns_didf_sse): Use
18489 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18490 (ix86_expand_vector_init_one_nonzero): Ditto.
18491 (ix86_expand_vector_init_interleave): Ditto.
18492 (inline_secondary_memory_needed): Return true for moves from SSE class
18493 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18494 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18495 * config/i386/constraints.md (Yi, Ym): Depend on
18496 TARGET_INTER_UNIT_MOVES_TO_VEC.
18497 (Yj, Yn): New constraints.
18498 * config/i386/i386.md (*movdi_internal): Change constraints of
18499 operand 1 from Yi to Yj and from Ym to Yn.
18500 (*movsi_internal): Ditto.
18501 (*movdf_internal): Ditto.
18502 (*movsf_internal): Ditto.
18503 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18504 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18505 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18506 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18507 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18508 * config/i386/sse.md (movdi_to_sse): Ditto.
18509 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18510 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18511 TARGET_INTER_UNIT_MOVES.
18512 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18513 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18514 instead of TARGET_INTER_UNIT_MOVES.
18515 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18516 operand 1 from Yi to Yj and from Ym to Yn.
18517
4c871069
JG
185182013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18519
18520 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18521 (float_truncate_hi_): Likewise.
18522 (float_extend_lo_): Likewise.
18523 (float_truncate_lo_): Likewise.
18524 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18525 (aarch64_float_extend_lo_v2df): Likewise.
18526 (vec_unpacks_hi_v4sf): Likewise.
18527 (aarch64_float_truncate_lo_v2sf): Likewise.
18528 (aarch64_float_truncate_hi_v4sf): Likewise.
18529 (vec_pack_trunc_v2df): Likewise.
18530 (vec_pack_trunc_df): Likewise.
18531
1709ff9b
JG
185322013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18533
18534 * config/aarch64/aarch64-builtins.c
18535 (aarch64_fold_builtin): Fold float conversions.
18536 * config/aarch64/aarch64-simd-builtins.def
18537 (floatv2si, floatv4si, floatv2di): New.
18538 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18539 * config/aarch64/aarch64-simd.md
18540 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18541 * config/aarch64/iterators.md (FLOATUORS): New.
18542 (optab): Add float, floatuns.
18543 (su_optab): Likewise.
18544
ce966824
JG
185452013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18546
18547 * config/aarch64/aarch64-builtins.c
18548 (aarch64_builtin_vectorized_function): Use new names for
18549 fcvt builtins.
18550 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18551 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18552 (fcvtzu): Split as...
18553 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18554 (fcvtas): Split as...
18555 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18556 (fcvtau): Split as...
18557 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18558 (fcvtps): Split as...
18559 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18560 (fcvtpu): Split as...
18561 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18562 (fcvtms): Split as...
18563 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18564 (fcvtmu): Split as...
18565 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18566 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18567 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18568 (lfrintnusf, lfrintnudf): Likewise.
18569 * config/aarch64/aarch64-simd.md
18570 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18571 define_insn.
18572 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18573 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18574 (fcvt_pattern): Likewise.
18575
b9de24fe
JG
185762013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18577
18578 * config/aarch64/aarch64-simd.md
18579 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18580 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18581
77a205be
JG
185822013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18583
18584 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18585 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18586 (vrnd<a,m,n,p>_f32): Implement using builtins.
18587 (vrnd<i,x><q>_f<32, 64>): New.
18588
0659ce6f
JG
185892013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18590
18591 * config/aarch64/aarch64-builtins.c
18592 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18593 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18594 (frintz): Rename to...
18595 (btrunc): ...this.
18596 (frintp): Rename to...
18597 (ceil): ...this.
18598 (frintm): Rename to...
18599 (floor): ...this.
18600 (frinti): Rename to...
18601 (nearbyint): ...this.
18602 (frintx): Rename to...
18603 (rint): ...this.
18604 (frinta): Rename to...
18605 (round): ...this.
18606 * config/aarch64/aarch64-simd.md
18607 (aarch64_frint<frint_suffix><mode>): Delete.
18608 (<frint_pattern><mode>2): Convert to insn.
18609 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18610 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18611 (frint_pattern): Likewise.
18612 (frint_suffix): Likewise.
18613
ea78906a
RB
186142013-04-29 Richard Biener <rguenther@suse.de>
18615
18616 PR tree-optimization/57081
18617 * loop-init.c: Include tree-flow.h.
18618 (loop_optimizer_finalize): Free number of iteration estimates.
18619 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18620
baee1763
JJ
186212013-04-29 Jakub Jelinek <jakub@redhat.com>
18622
94dc5332
JJ
18623 PR tree-optimization/57083
18624 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18625 non-singleton shift count range, zero extend low_bound for uns case.
18626
baee1763
JJ
18627 * config/i386/predicates.md (general_vector_operand): New predicate.
18628 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18629 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18630 if they aren't nonimmediate operands. If their original values
18631 satisfy const_vector_equal_evenodd_p, don't shift them.
18632 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18633 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18634 if not nonimmediate_operand.
18635 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18636 instead of register_operand.
18637 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18638
a9073727 186392013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18640
18641 * stor-layout.c (finalize_size_functions): Allocate a structure and
18642 reset cfun before dumping the functions.
18643
ba8011e6
JJ
186442013-04-27 Jakub Jelinek <jakub@redhat.com>
18645
d6fde69e
JJ
18646 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18647
ba8011e6
JJ
18648 PR target/56866
18649 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18650 use xop_pmacsdqh if uns_p.
18651 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18652 the immediate rotate count.
18653
2c62cbaa
VM
186542013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18655
18656 * rtl.h (struct rtx_def): Add comment for field jump.
18657 (LRA_SUBREG_P): New macro.
18658 * recog.c (register_operand): Check LRA_SUBREG_P.
18659 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18660 stack frame.
18661 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18662 (lra_final_code_change): Skip subreg change for operators.
18663 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18664 if there are no operand changes.
18665 * lra-constraints.c (curr_insn_set): New.
18666 (match_reload): Set LRA_SUBREG_P.
18667 (emit_spill_move): Ditto.
18668 (check_and_process_move): Use curr_insn_set. Process only single
18669 set insns. Don't initialize sec_mem_p and change_p.
18670 (simplify_operand_subreg): Use LRA_SUBREG_P.
18671 (reg_in_class_p): New function.
18672 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18673 of #ifdef. Add code to remove cycling.
18674 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18675 non-null disp. Reload inner instead of disp when base and index
18676 are null. Try to put lo_sum into register.
18677 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18678 (check_and_process_move): Move code for move cost check to
18679 simple_move_p. Remove equiv_substitution.
18680 (simple_move_p): New function.
18681 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18682 curr_insn_set. Call check_and_process_move only for single set
18683 insns. Use the new function. Move call of check_and_process_move
18684 after operand equiv substitution and address process.
18685
e7d764f3
JJ
186862013-04-26 Jakub Jelinek <jakub@redhat.com>
18687
18688 PR go/57045
18689 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18690 with nonlocal goto receivers or returns twice calls, ignore
18691 unininitialized values from abnormal edges to nl goto receiver
18692 or returns twice call.
18693
41e10689
JJ
186942013-04-26 Jakub Jelinek <jakub@redhat.com>
18695
18696 PR tree-optimization/57051
18697 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18698 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18699 bitsize.
18700
d7ed20db
RB
187012013-04-26 Richard Biener <rguenther@suse.de>
18702
18703 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18704 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18705 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18706 (fixup_loop_arrays_after_move): New function.
18707 (move_sese_region_to_fn): Properly outline the loop tree parts
18708 of the SESE region.
18709
df93505e
UB
187102013-04-26 Uros Bizjak <ubizjak@gmail.com>
18711
18712 * config/i386/i386.md (type, unit): Fix long lines.
18713
dd366ec3
RB
187142013-04-26 Richard Biener <rguenther@suse.de>
18715
18716 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18717 (lto-streamer-out.o): Likewise.
18718 * cfgloop.c (init_loops_structure): Export, add struct function
18719 argument and adjust.
18720 (flow_loops_find): Adjust.
18721 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18722 (init_loops_structure): Declare.
18723 * lto-streamer-in.c: Include cfgloop.h.
18724 (input_cfg): Input the loop tree.
18725 * lto-streamer-out.c: Include cfgloop.h.
18726 (output_cfg): Output the loop tree.
18727 (output_struct_function_base): Do not drop PROP_loops.
18728
a9e0d843
RB
187292013-03-26 Richard Biener <rguenther@suse.de>
18730
18731 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18732 (pass_build_cfg): Provide PROP_loops.
18733 (move_sese_region_to_fn): Remove loops that are outlined into fn
18734 for now.
18735 * tree-inline.c: Include cfgloop.h.
18736 (initialize_cfun): Do not drop PROP_loops.
18737 (copy_loops): New function.
18738 (copy_cfg_body): Copy loop structure.
18739 (tree_function_versioning): Initialize destination loop tree.
18740 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18741 (pass_parallelize_loops): Do IL verification.
18742 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18743 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18744 the CFG make sure we fixup loops as well.
18745 * tree-ssa-tail-merge.c: Include cfgloop.h.
18746 (replace_block_by): When merging loop latches mark loops for fixup.
18747 * lto-streamer-out.c (output_struct_function_base): Drop
18748 PROP_loops for now.
18749 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18750 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18751 * ipa-split.c: Include cfgloop.h.
18752 (split_function): Add the new return block to the loop tree root.
18753 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18754 whether we have removed the forwarder block.
18755 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18756 * cfgloop.h (place_new_loop): Declare.
18757 * cfgloopmanip.c (place_new_loop): Export.
18758 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18759 (tree-switch-conversion.o): Likewise.
18760 (tree-complex.o): Likewise.
18761 (tree-inline.o): Likewise.
18762 (tree-ssa-tailmerge.o): Likewise.
18763 (ipa-split.o): Likewise.
18764 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18765 (tree-ssa-copy.o): Likewise.
18766 * tree-switch-conversion.c: Include cfgloop.h
18767 (process_switch): If we emit a bit-test cascade, schedule loops
18768 for fixup.
18769 * tree-complex.c: Include cfgloop.h.
18770 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18771 * asan.c: Include cfgloop.h.
18772 (create_cond_insert_point): Properly add new basic-blocks to
18773 loops, schedule loop fixup.
18774 * cfgloop.c (verify_loop_structure): Check that looks are not
18775 marked for fixup.
18776 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18777 to loops.
18778 (expand_omp_for_generic): Likewise.
18779 (expand_omp_sections): Likewise.
18780 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18781 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18782 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18783 is initialized, not when loops are present.
18784 * tree-parloops.c (parallelize_loops): Remove checking here.
18785 * passes.c (init_optimization_passes): Schedule a copy-propagation
18786 pass before complete unrolling of inner loops.
18787
e78e8a0b
JJ
187882013-04-26 Jakub Jelinek <jakub@redhat.com>
18789
a2e836b2
JJ
18790 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18791 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18792 (colorize_init): Add argument to _WIN32 version.
18793 * toplev.c: Include diagnostic-color.h.
18794 (process_options): Default to -fdiagnostics-color=auto if
18795 GCC_COLORS env var is in the environment.
18796 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
18797 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18798 env var is in the environment, the default is auto rather than never.
a2e836b2 18799
e78e8a0b
JJ
18800 * diagnostic.h (file_name_as_prefix): Add context argument.
18801 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18802 the string as locus.
18803 * langhooks.c (lhd_print_error_function): Adjust caller.
18804
013e5ef9
LC
188052013-04-25 Lawrence Crowl <crowl@google.com>
18806
18807 * var-tracking.c (shared_hash_def::htab):
18808 Change type to hash_table. Update dependent calls and types.
18809
4a8fb1a1
LC
188102013-04-25 Lawrence Crowl <crowl@google.com>
18811
18812 * Makefile.in: Update as needed below.
18813
18814 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18815 Move declaration to after the type's method definitons.
18816
18817 * attribs.c (htab_t scoped_attributes::attribute_hash):
18818 Change type to hash_table. Update dependent calls and types.
18819
18820 * bitmap.c (htab_t bitmap_desc_hash):
18821 Change type to hash_table. Update dependent calls and types.
18822
18823 * cselib.c (htab_t cselib_hash_table):
18824 Change type to hash_table. Update dependent calls and types.
18825
18826 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18827 (hash_string_slot_node): Move implementation into lto-streamer.h
18828 struct string_slot_hasher.
18829 (eq_string_slot_node): Likewise.
18830
18831 * data-streamer-out.c: Update output_block::string_hash_table
18832 dependent calls and types.
18833
18834 * dwarf2cfi.c (htab_t trace_index):
18835 Change type to hash_table. Update dependent calls and types.
18836
18837 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18838 Change type to hash_table. Update dependent calls and types.
18839 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
18840 (htab_t optimize_external_refs::map): Likewise.
18841 (htab_t output_comp_unit::extern_map): Likewise.
18842 (htab_t output_comdat_type_unit::extern_map): Likewise.
18843 (htab_t output_macinfo::macinfo_htab): Likewise.
18844 (htab_t optimize_location_lists::htab): Likewise.
18845 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
18846
18847 * except.c (htab_t ehspec_hash_type):
18848 Change type to hash_table. Update dependent calls and types.
18849 (assign_filter_values::ttypes): Likewise.
18850 (assign_filter_values::ehspec): Likewise.
18851 (sjlj_assign_call_site_values::ar_hash): Likewise.
18852 (convert_to_eh_region_ranges::ar_hash): Likewise.
18853
18854 * gcse.c (htab_t pre_ldst_table):
18855 Change type to hash_table. Update dependent calls and types.
18856
18857 * ggc-common.c (htab_t saving_htab):
18858 Change type to hash_table. Update dependent calls and types.
18859 (htab_t loc_hash): Likewise.
18860 (htab_t ptr_hash): Likewise.
18861 (call_count): Rename ggc_call_count.
18862 (call_alloc): Rename ggc_call_alloc.
18863 (loc_descriptor): Rename make_loc_descriptor.
18864 (add_statistics): Rename ggc_add_statistics.
18865
18866 * ggc-common.c (saving_htab):
18867 Change type to hash_table. Update dependent calls and types.
18868
18869 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
18870 (push_gimplify_context): Likewise.
18871 (pop_gimplify_context): Likewise.
18872 (struct gimple_temp_hash_elt): Added.
18873 (struct gimplify_hasher): Likewise.
18874 (struct gimplify_ctx.temp_htab):
18875 Change type to hash_table. Update dependent calls and types.
18876
18877 * gimple-fold.c: Include gimplify-ctx.h.
18878
18879 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
18880 Change type to hash_table. Update dependent calls and types.
18881 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
18882 avoid potential global name collision.
18883
18884 * gimplify.c: Include gimplify-ctx.h.
18885 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
18886 (htab_t gimplify_ctx::temp_htab):
18887 Update dependent calls and types for new type hash_table.
18888 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
18889 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
18890
18891 * gimplify-ctx.h: New.
18892 (struct gimple_temp_hash_elt): Move from gimplify.c.
18893 (class gimplify_hasher): New.
18894 (struct gimplify_ctx): Move from gimple.h.
18895 (htab_t gimplify_ctx::temp_htab):
18896 Change type to hash_table. Update dependent calls and types.
18897
18898 * graphite-clast-to-gimple.c: Include graphite-htab.h.
18899 (htab_t ivs_params::newivs_index):
18900 Change type to hash_table. Update dependent calls and types.
18901 (htab_t ivs_params::params_index): Likewise.
18902 (htab_t print_generated_program::params_index): Likewise.
18903 (htab_t gloog::newivs_index): Likewise.
18904 (htab_t gloog::params_index): Likewise.
18905
18906 * graphite.c: Include graphite-htab.h.
18907 4htab_t graphite_transform_loops::bb_pbb_mapping):
18908 Change type to hash_table. Update dependent calls and types.
18909
18910 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
18911 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
18912 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
18913
18914 * graphite-dependences.c: Include graphite-htab.h.
18915 (loop_is_parallel_p): Change hash table type of parameter.
18916
18917 * graphite-htab.h: New.
18918 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
18919 (extern find_pbb_via_hash): Move from graphite-poly.h.
18920 (extern loop_is_parallel_p): Move from graphite-poly.h.
18921 (extern get_loop_body_pbbs): Move from graphite-poly.h.
18922
18923 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
18924 (extern loop_is_parallel_p): Move to graphite-htab.h.
18925 (extern get_loop_body_pbbs): Move to graphite-htab.h.
18926
18927 * haifa-sched.c (htab_t delay_htab):
18928 Change type to hash_table. Update dependent calls and types.
18929 (htab_t delay_htab_i2): Likewise.
18930
18931 * ira-color.c (htab_t allocno_hard_regs_htab):
18932 Change type to hash_table. Update dependent calls and types.
18933
18934 * ira-costs.c (htab_t cost_classes_htab):
18935 Change type to hash_table. Update dependent calls and types.
18936
18937 * loop-invariant.c (htab_t merge_identical_invariants::eq):
18938 Change type to hash_table. Update dependent calls and types.
18939
18940 * loop-iv.c (htab_t bivs):
18941 Change type to hash_table. Update dependent calls and types.
18942
18943 * loop-unroll.c (htab_t opt_info::insns_to_split):
18944 Change type to hash_table. Update dependent calls and types.
18945 (htab_t opt_info::insns_with_var_to_expand): Likewise.
18946
18947 * lto-streamer.h (struct string_slot): Move from data-streamer.h
18948 (struct string_slot_hasher): New.
18949 (htab_t output_block::string_hash_table):
18950 Change type to hash_table. Update dependent calls and types.
18951
18952 * lto-streamer-in.c (freeing_string_slot_hasher): New.
18953 (htab_t file_name_hash_table):
18954 Change type to hash_table. Update dependent calls and types.
18955
18956 * lto-streamer-out.c: Update output_block::string_hash_table dependent
18957 calls and types.
18958
18959 * lto-streamer.c (htab_t tree_htab):
18960 Change type to hash_table. Update dependent calls and types.
18961
18962 * omp-low.c: Include gimplify-ctx.h.
18963
18964 * passes.c (htab_t name_to_pass_map):
18965 Change type to hash_table. Update dependent calls and types.
18966 (pass_traverse): Rename to passes_pass_traverse.
18967
18968 * plugin.c (htab_t event_tab):
18969 Change type to hash_table. Update dependent calls and types.
18970
18971 * postreload-gcse.c (htab_t expr_table):
18972 Change type to hash_table. Update dependent calls and types.
18973 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
18974
18975 * sese.c (debug_rename_map_1): Make extern.
18976 (htab_t copy_bb_and_scalar_dependences::rename_map):
18977 Change type to hash_table. Update dependent calls and types.
18978
18979 * sese.h (extern debug_rename_map): Move to .c file.
18980
18981 * store-motion.c (htab_t store_motion_mems_table):
18982 Change type to hash_table. Update dependent calls and types.
18983
18984 * trans-mem.c (htab_t tm_new_mem_hash):
18985 Change type to hash_table. Update dependent calls and types.
18986
18987 * tree-browser.c (htab_t TB_up_ht):
18988 Change type to hash_table. Update dependent calls and types.
18989
18990 * tree-cfg.c (htab_t discriminator_per_locus):
18991 Change type to hash_table. Update dependent calls and types.
18992
18993 * tree-complex.c: Include tree-hasher.h
18994 (htab_t complex_variable_components):
18995 Change type to hash_table. Update dependent calls and types.
18996
18997 * tree-eh.c (htab_t finally_tree):
18998 Change type to hash_table. Update dependent calls and types.
18999
19000 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
19001 struct int_tree_hasher.
19002 (extern int_tree_map_eq): Likewise.
19003 (uid_decl_map_hash): Removed.
19004 (extern decl_tree_map_eq): Likewise.
19005
19006 * tree-hasher.h: New.
19007 (struct int_tree_hasher): New.
19008 (typedef int_tree_htab_type): New.
19009
19010 * tree-inline.c: Include gimplify-ctx.h.
19011
19012 * tree-mudflap.c: Include gimplify-ctx.h.
19013
19014 * tree-parloops.c: Include tree-hasher.h.
19015 (htab_t eliminate_local_variables_stmt::decl_address):
19016 Change type to hash_table. Update dependent calls and types.
19017 (htab_t separate_decls_in_region::decl_copies): Likewise.
19018
19019 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
19020 Change type to hash_table. Update dependent calls and types.
19021
19022 * tree-sra.c (candidates):
19023 Change type to hash_table. Update dependent calls and types.
19024
19025 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
19026 in tree-flow.h.
19027 (int_tree_map_hash): Likewise.
19028
19029 * tree-ssa-dom.c (htab_t avail_exprs):
19030 Change type to hash_table. Update dependent calls and types.
19031
19032 * tree-ssa-live.c (var_map_base_init::tree_to_index):
19033 Change type to hash_table. Update dependent calls and types.
19034
19035 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
19036 Change type to hash_table. Update dependent calls and types.
19037
19038 * tree-ssa-phiopt.c (seen_ssa_names):
19039 Change type to hash_table. Update dependent calls and types.
19040
19041 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
19042 Change type to hash_table. Update dependent calls and types.
19043
19044 * tree-ssa-uncprop.c (equiv):
19045 Change type to hash_table. Update dependent calls and types.
19046
c5a44004
JJ
190472013-04-25 Jakub Jelinek <jakub@redhat.com>
19048
19049 PR rtl-optimization/57003
19050 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
19051 call note_stores with kill_clobbered_value callback again after
19052 killing regs_invalidated_by_call.
19053
09962a4a
JG
190542013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19055
19056 * config/aarch64/aarch64-simd.md
19057 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
19058 (aarch64_simd_bsl<mode>): Likewise.
19059 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
19060
ea28bb0b
MP
190612013-04-25 Marek Polacek <polacek@redhat.com>
19062
19063 PR tree-optimization/57066
3c21604f 19064 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 19065
96659611
JG
190662013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
19067
19068 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
19069
9697e620
JG
190702013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19071
19072 * config/aarch64/aarch64-builtins.c
19073 (aarch64_fold_builtin): New.
19074 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
19075 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
19076 * config/aarch64/aarch64-simd-builtins.def (abs): New.
19077 * config/aarch64/arm_neon.h
19078 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19079
0ac198d3
JG
190802013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19081 Tejas Belagod <tejas.belagod@arm.com>
19082
19083 * config/aarch64/aarch64-builtins.c
19084 (aarch64_gimple_fold_builtin): New.
19085 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19086 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19087 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19088 (addvv4sf): Update.
19089 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19090
58cff58c
N
190912013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19092
df93505e 19093 * config/aarch64/aarch64.md
58cff58c
N
19094 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19095
7e0228bf
N
190962013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19097
19098 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19099 (*ngcsi_uxtw): New pattern.
19100
5819f96f 191012013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19102 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19103
19104 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19105 (TB_DREG): Add T_V4HF.
19106 (v4hf_UP): New macro.
19107 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19108 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19109 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19110 built-ins.
df93505e 19111 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19112 (arm_vector_mode_supported_p): Handle V4HF.
19113 (arm_mangle_map): Handle V4HFmode.
19114 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19115 * config/arm/arm_neon_builtins.def: Add entries for
19116 vcvtv4hfv4sf, vcvtv4sfv4hf.
19117 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19118 (neon_vcvtv4hfv4sf): Likewise.
19119 * config/arm/neon-gen.ml: Handle half-precision floating point
19120 features.
19121 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19122 * config/arm/arm_neon.h: Regenerate.
19123 * config/arm/neon.ml (type elts): Add F16.
19124 (type vectype): Add T_float16x4, T_floatHF.
19125 (type vecmode): Add V4HF.
19126 (type features): Add Requires_FP_bit feature.
19127 (elt_width): Handle F16.
19128 (elt_class): Likewise.
19129 (elt_of_class_width): Likewise.
19130 (mode_of_elt): Refactor.
19131 (type_for_elt): Handle F16, fix error messages.
19132 (vectype_size): Handle T_float16x4.
19133 (vcvt_sh): New function.
19134 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19135 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19136 (string_of_mode): Handle V4HF.
19137 * doc/arm-neon-intrinsics.texi: Regenerate.
19138
1ef395e4
JG
191392013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19140
19141 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19142 format specifier in 'X' case.
19143
41c34e94
AM
191442013-04-25 Alan Modra <amodra@gmail.com>
19145
19146 PR target/57052
19147 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19148 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19149 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19150 Repeat for many other rotate/shift and mask patterns using subregs.
19151 Name lshiftrt insns.
19152 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19153 on WORDS_BIG_ENDIAN.
19154
b9a7eb5d
AM
191552013-04-25 Alan Modra <amodra@gmail.com>
19156
19157 * config.gcc: Support little-endian powerpc-linux targets.
19158 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19159 (LINK_OS_LINUX_SPEC): Define.
19160 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19161 Preserve MASK_LITTLE_ENDIAN.
19162 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19163 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19164 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19165 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19166 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19167 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19168 Correct fp word order for little-endian. Don't shift toc entries
19169 smaller than a word for little-endian.
19170 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19171 (bswapdi2 splits): Correct low-part subreg for little-endian.
19172 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19173 low/high where such is correct only for be.
19174 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19175 little-endian for -mcall-aixdesc.
19176
87f73374
AM
191772013-04-25 Alan Modra <amodra@gmail.com>
19178
19179 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19180 replace_equiv_address_nv.
19181
cabf91cd
AM
191822013-04-25 Alan Modra <amodra@gmail.com>
19183
19184 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19185
0ae24cc8
VM
191862013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19187
19188 Revert:
19189 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19190 * rtl.h (struct rtx_def): ...
cabf91cd 19191
77bce07c
VM
191922013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19193
19194 PR rtl-optimizations/57046
19195 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19196 for multi-reg splits.
19197
0db63e7f
L
191982013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19199
19200 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19201
3362b6b6
SA
192022013-04-24 Sterling Augustine <saugustine@google.com>
19203
19204 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19205 (comp_dir_string, debug_str_dwo_section): New.
19206 (DEBUG_STR_DWO_SECTION): Rename to ...
19207 (DEBUG_DWO_STR_SECTION): ... this.
19208 (DEBUG_NORM_STR_SECTION): Delete.
19209 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19210 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19211 (find_AT_string): Move most logic to ...
19212 (find_AT_string_in_table): ... here. New.
19213 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19214 add_skeleton_AT_string. Delete logic.
19215 (output_skeleton_debug_sections): Remove call to
19216 add_top_level_skeleton_die_attrs.
19217 (add_comp_dir_attribute): Move logic to comp_dir_string.
19218 (dwarf2out_init): Initialize debug_str_dwo_section.
19219 (output_indirect_string): Call find_string_form.
19220 (output_indirect_strings): Rewrite.
19221 (prune_unused_types): Empty skeleton_debug_str_hash.
19222 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19223 (dwarf2out_finish): Call output_indirect_strings.
19224
e93e18e9
PC
192252013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19226
19227 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19228
f6ce35ac
VM
192292013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19230
cabf91cd 19231 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19232 (LRA_SUBREG_P): New macro.
19233 * recog.c (register_operand): Check LRA_SUBREG_P.
19234 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19235 stack frame.
19236 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19237 (lra_final_code_change): Skip subreg change for operators.
19238 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19239 if there are no operand changes.
19240 * lra-constraints.c (curr_insn_set): New.
19241 (match_reload): Set LRA_SUBREG_P.
19242 (emit_spill_move): Ditto.
19243 (check_and_process_move): Use curr_insn_set. Process only single
19244 set insns. Don't initialize sec_mem_p and change_p.
19245 (simplify_operand_subreg): Use LRA_SUBREG_P.
19246 (reg_in_class_p): New function.
19247 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19248 of #ifdef. Add code to remove cycling.
19249 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19250 non-null disp. Reload inner instead of disp when base and index
19251 are null. Try to put lo_sum into register.
19252 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19253 (check_and_process_move): Move code for move cost check to
f6ce35ac 19254 simple_move_p. Remove equiv_substitution.
cabf91cd 19255 (simple_move_p): New function.
f6ce35ac
VM
19256 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19257 curr_insn_set. Call check_and_process_move only for single set
19258 insns. Use the new function. Move call of check_and_process_move
19259 after operand equiv substitution and address process.
19260
38047d90
JG
192612013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19262
19263 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19264 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19265 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19266
13f39b2e
PC
192672013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19268
19269 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19270
97c116dc
MP
192712013-04-24 Marek Polacek <polacek@redhat.com>
19272
19273 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19274 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19275 (select_loops_exit_conditions): Likewise.
19276 (number_of_iterations_for_all_loops): Likewise.
19277 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19278 (scev_analysis): Likewise.
19279
83082391 192802013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19281 Chao-ying Fu <fu@mips.com>
83082391 19282
cabf91cd
AM
19283 * config/mips/micromips.md (jraddiusp): New pattern.
19284 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19285 instruction if possible.
83082391 19286
19e34aa2
AM
192872013-04-24 Alan Modra <amodra@gmail.com>
19288
19289 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19290
fdb6603c
JB
192912013-04-24 Julian Brown <julian@codesourcery.com>
19292 Chung-Lin Tang <cltang@codesourcery.com>
19293
19294 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19295 dependency behavior in enumeration type DIE generation. Add TODO note
19296 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19297
bf190e8d
LC
192982013-04-23 Lawrence Crowl <crowl@google.com>
19299
19300 * Makefile.in: Update as needed below.
19301
19302 * hash-table.h (class hash_table):
19303 Correct many methods with parameter types compare_type to the correct
19304 value_type. (Correct code was unlikely to notice the change.)
19305 (hash_table::elements_with_deleted) New.
19306 (class hashtable::iterator): New.
19307 (hashtable::begin()): New.
19308 (hashtable::end()): New.
19309 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19310
19311 * statistics.c (statistics_hashes):
19312 Change type to hash_table. Update dependent calls and types.
19313
19314 * tree-into-ssa.c (var_infos):
19315 Change type to hash_table. Update dependent calls and types.
19316
19317 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19318 Change type to hash_table. Update dependent calls and types.
19319
19320 * tree-ssa-loop-im.c (struct mem_ref.refs):
19321 Change type to hash_table. Update dependent calls and types.
19322
19323 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19324 Change type to hash_table. Update dependent calls and types.
19325
19326 * tree-ssa-sccvn.c (vn_tables_s::nary):
19327 Change type to hash_table. Update dependent calls and types.
19328 (vn_tables_s::phis): Likewise.
19329 (vn_tables_s::references): Likewise.
19330
19331 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19332 (vn_reference_eq): Update parameter and return types.
19333
19334 * tree-ssa-structalias.c (pointer_equiv_class_table):
19335 Change type to hash_table. Update dependent calls and types.
19336 (location_equiv_class_table): Likewise.
19337
19338 * tree-vect-data-refs.c: Consequential changes for making
19339 peeling a hash_table.
19340
19341 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19342 (destroy_loop_vec_info): Dependent hash_table update.
19343
19344 * tree-vectorizer.h (peeling_htab):
19345 Change type to hash_table. Update dependent calls and types.
19346
d70a81dd
SC
193472013-04-23 Shiva Chen <shiva0217@gmail.com>
19348
cabf91cd
AM
19349 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19350 to check the register content is equal or not.
19351 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19352 to assign register content record.
19353 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19354 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19355 * lra-int.h (struct lra_reg): Add offset member.
19356 (lra_reg_val_equal_p): New static inline function.
19357 (lra_update_reg_val_offset): New static inline function.
19358 (lra_assign_reg_val): New static inline function.
19359 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19360 to assign register content record.
19361 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19362
b894a1f3
CM
193632013-04-23 Catherine Moore <clm@codesourcery.com>
19364
19365 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19366 operands. Record compression.
19367
ecd14de9
XDL
193682013-04-23 Xinliang David Li <davidxl@google.com>
19369
19370 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19371
92e776e9
RB
193722013-04-23 Richard Biener <rguenther@suse.de>
19373
19374 PR middle-end/57036
19375 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19376 parameter, only add abnormal goto edges from the copied body
19377 if the call could perform abnormal gotos.
19378 (copy_cfg_body): Adjust.
19379
a15ee567
SN
193802013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19381
19382 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19383
08c52234
AS
193842013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19385
19386 * coretypes.h (gimple_stmt_iterator): Add struct to make
19387 compatible with C.
19388
999c1171
RB
193892013-04-23 Richard Biener <rguenther@suse.de>
19390
19391 PR tree-optimization/57026
19392 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19393 from SSA names occuring in abnormal PHI nodes.
19394
53669259
AK
193952013-04-22 Andi Kleen <ak@linux.intel.com>
19396
19397 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19398
1a0ad150
AK
193992013-04-22 Andi Kleen <ak@linux.intel.com>
19400
19401 * lto/lto.c (print_lto_report_1): Declare early.
19402 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19403
057f8f20
AK
194042013-04-22 Andi Kleen <ak@linux.intel.com>
19405
19406 * common.opt (-flto-report-wpa): Add.
19407 * doc/invoke.texi (-flto-report-wpa): Add.
19408 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19409 (lto_main): dito.
19410
473b1e05
XDL
194112013-04-22 Xinliang David Li <davidxl@google.com>
19412
19413 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19414 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19415 * Makefile.in: New dependency
19416
cabf91cd 19417 David Daney <ddaney.cavm@gmail.com>
b1485a33 19418
cabf91cd
AM
19419 * configure.ac (gcc_cv_as_micromips_support): Use the
19420 --fatal-warnings option.
19421 * configure: Regenerate.
b1485a33 19422
829d0168
MP
194232013-04-22 Marek Polacek <polacek@redhat.com>
19424
19425 PR sanitizer/56990
19426 * tsan.c (instrument_expr): Don't instrument expression
19427 in case its size is zero.
19428
6d9b7208
UB
194292013-04-22 Uros Bizjak <ubizjak@gmail.com>
19430
19431 PR target/57032
19432 Revert:
19433 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19434
19435 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19436
ea679d55
JG
194372013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19438
19439 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19440 (gimple_stmt_iterator): New typedef.
19441 * gimple.h (gimple_stmt_iterator): Rename to...
19442 (gimple_stmt_iterator_d): ... This.
19443 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19444 trees be valid for GIMPLE and GENERIC.
19445 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19446 * gimple-fold.c (gimple_fold_call): Call target hook
19447 gimple_fold_builtin.
19448 * hooks.c (hook_bool_gsiptr_false): New.
19449 * hooks.h (hook_bool_gsiptr_false): New.
19450 * target.def (fold_stmt): New.
19451 * doc/tm.texi: Regenerate.
19452
88a581da
VM
194532013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19454
19455 PR target/57018
19456 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19457 a set sp if no stack realignment.
19458
92be22dc
NC
194592013-04-22 Nick Clifton <nickc@redhat.com>
19460
19461 * config.gcc (tilegx-linux): Extend extra_objs rather than
19462 overwriting it.
19463 (tilepro-linux): Likewise.
19464
0ddec79f
JG
194652013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19466
19467 * config/aarch64/aarch64-builtins.c
19468 (CF): Remove.
19469 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19470 (VAR<1-12>): Add MAP parameter.
19471 (BUILTIN_*): Likewise.
19472 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19473 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19474 (aarch64_ushl_n<mode>): Likewise.
19475 (aarch64_sshr_n<mode>): Likewise.
19476 (aarch64_ushr_n<mode>): Likewise.
19477 (aarch64_<maxmin><mode>): Likewise.
19478 (aarch64_sqrt<mode>): Likewise.
19479 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19480 (vshr<q>_n_*): Likewise.
19481
0050faf8
JG
194822013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19483
19484 * config/aarch64/aarch64-builtins.c
19485 (aarch64_simd_builtin_type_mode): Handle SF types.
19486 (sf_UP): Define.
19487 (BUILTIN_GPF): Define.
19488 (aarch64_init_simd_builtins): Handle SF types.
19489 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19490 (frecps): Likewise.
19491 (frecpx): Likewise.
19492 * config/aarch64/aarch64-simd.md
19493 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19494 (aarch64_frecpe<mode>): New.
19495 (aarch64_frecps<mode>): Likewise.
19496 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19497 (v8type): Add frecp<esx>.
19498 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19499 (aarch64_frecps<mode>): Likewise.
19500 * config/aarch64/iterators.md (FRECP): New.
19501 (frecp_suffix): Likewise.
19502 * config/aarch64/arm_neon.h
19503 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19504
0fad3dbc 195052013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19506
19507 PR target/56995
19508 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19509 (REG_CLASS_NAMES): Idem.
19510 (REG_CLASS_CONTENTS): Idem.
19511 (REGCLASS_HAS_FP_REG): Idem.
19512 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19513 (sh_conditional_register_usage): Idem.
19514
3e8a33f9
JL
195152013-04-21 Jeff Law <law@redhat.com>
19516
19517 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19518 (ssa_forward_propagate_and_combine): Use it.
19519
f38e1b0a
VM
195202013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19521
19522 * lra.c: Update the flow chart diagram.
19523
682303da
VM
195242013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19525
19526 PR rtl-optimization/56847
19527 * lra-constraints.c (process_alt_operands): Discourage alternative
19528 with non-matche doffsettable memory constraint fro memory with
19529 known offset.
19530
f6b64c35
RB
195312013-04-19 Richard Biener <rguenther@suse.de>
19532
19533 PR tree-optimization/56982
19534 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19535 function.
19536 * gimplify.c (gimplify_call_expr): Notice special calls.
19537 (gimplify_modify_expr): Likewise.
19538 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19539 abnormal control flow receivers.
19540 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19541 in the same way as cfun->has_nonlocal_labels.
19542 (gimple_purge_dead_abnormal_call_edges): Likewise.
19543 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19544 receivers start a basic-block.
19545
01d8bf07
RB
195462013-04-19 Richard Biener <rguenther@suse.de>
19547
19548 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19549 member ...
19550 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19551 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19552 (SLP_TREE_LOAD_PERMUTATION): Add.
19553 (vect_transform_slp_perm_load): Adjust prototype.
19554 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19555 (vect_free_slp_instance): Likewise.
19556 (vect_create_new_slp_node): Likewise.
19557 (vect_supported_slp_permutation_p): Remove.
19558 (vect_slp_rearrange_stmts): Adjust.
19559 (vect_supported_load_permutation_p): Likewise. Inline
19560 vect_supported_slp_permutation_p here.
19561 (vect_analyze_slp_instance): Compute load permutations per
19562 slp node instead of per instance.
19563 (vect_get_slp_defs): Adjust.
19564 (vect_transform_slp_perm_load): Likewise.
19565 (vect_schedule_slp_instance): Remove redundant code.
19566 (vect_schedule_slp): Remove hack for PR56270, add it ...
19567 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19568 CSE loads for SLP. Adjust.
19569
ede22fc3
GY
195702013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19571
19572 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19573 spelling in two comments.
19574
67bc84fb
GY
195752013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19576
19577 PR target/56797
19578 * config/arm/arm.c (load_multiple_sequence): Require SP
19579 as base register for loads if SP is in the register list.
19580
e248d83f
MJ
195812013-04-19 Martin Jambor <mjambor@suse.cz>
19582
19583 PR tree-optimization/56718
19584 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19585 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19586 and made public. Adjusted all callers.
19587 (ipa_intraprocedural_devirtualization): New function.
19588 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19589 (ipa_intraprocedural_devirtualization): Likewise.
19590 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19591
4891e8f8
RB
195922013-04-19 Richard Biener <rguenther@suse.de>
19593
19594 PR tree-optimization/57000
19595 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19596
dad89f7c
TG
195972013-04-19 Terry Guo <terry.guo@arm.com>
19598
19599 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19600 Replace with ...
19601 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19602 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19603 (cortex_m4_fmacs): Use new reservations.
19604 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19605
72ea0d47
VM
196062013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19607
f1e6512c 19608 PR rtl-optimization/56999
72ea0d47
VM
19609 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19610 related code.
19611 (lra_coalesce): Remove split_origin_bitmap and related code.
19612 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19613 ranges if necessary.
19614
780a5b71
UB
196152013-04-18 Uros Bizjak <ubizjak@gmail.com>
19616
19617 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19618 New array.
19619 (ix86_expand_call): Remove clobbered_registers array and use
19620 x86_64_ms_sysv_extra_clobbered_registers instead.
19621 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19622 Declare here.
19623 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19624 predicate.
19625 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19626 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19627 (*call_value_rex64_ms_sysv): Ditto.
19628
6f5a366a
CC
196292013-04-18 Cary Coutant <ccoutant@google.com>
19630
19631 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19632 parent instead of die_mark.
19633
475b8f37
DN
196342013-04-18 Diego Novillo <dnovillo@google.com>
19635
19636 * gimple.c (create_gimple_tmp): New.
19637 (get_expr_type): New.
19638 (build_assign): New.
19639 (build_type_cast): New.
19640 * gimple.h (enum ssa_mode): Define.
19641 (gimple_seq_set_location): New.
19642 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19643 to use build_assign and build_type_cast.
475b8f37 19644
08940f33
RB
196452013-04-18 Richard Biener <rguenther@suse.de>
19646
19647 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19648 handle negative step. Remove redundant checks.
19649 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19650 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19651 for negative step and grouped loads fail to vectorize.
19652
0e0f87d4
SB
196532013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19654
19655 * emit-rtl.c (reset_insn_used_flags): New function.
19656 (reset_all_used_flags): Use it.
19657 (verify_insn_sharing): New function.
19658 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19659
4c445590
JJ
196602013-04-18 Jakub Jelinek <jakub@redhat.com>
19661
19662 PR tree-optimization/56984
19663 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19664 and (x >> M) >= N don't register any assertion if N << M is the
19665 minimum value.
19666
6873ecab
SB
196672013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19668
19669 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19670 do not delete_insn insns that have not yet been emitted, only
19671 unlink them with remove_insn.
19672 * df-scan.c (df_insn_delete): Revert r197492.
19673
3ccb989e
SB
196742013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19675
19676 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19677 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19678
196792013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19680
19681 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19682 define_insn_and_split.
19683 (and_scc,ior_scc,negscc): Likewise.
19684 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19685
3ccb989e 196862013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19687
19688 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19689 can benefit from using a sequence of LDRD instructions in epilogue
19690 instead of a single LDM instruction.
19691
6d10a203
MLI
196922013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19693
19694 PR 45688
19695 * doc/extend.texi: Fix typo.
19696
6983e6b5
RB
196972013-04-17 Richard Biener <rguenther@suse.de>
19698
19699 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19700 (vect_build_slp_tree): ... here.
19701 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19702 match. Remove special-casing of mismatched complex loads.
19703 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19704 re-try the match with swapped commutative operands.
19705 (vect_supported_load_permutation_p): Remove special-casing of
19706 mismatched complex loads.
19707 (vect_analyze_slp_instance): Adjust.
19708
ef23e6a2
RB
197092013-04-17 Richard Biener <rguenther@suse.de>
19710
19711 PR rtl-optimization/56921
19712 * cfgloop.h (struct loop): Add simple_loop_desc member.
19713 (struct niter_desc): Mark with GTY(()).
19714 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19715 * loop-iv.c (get_simple_loop_desc): Likewise.
19716 (free_simple_loop_desc): Likewise.
19717
19718 Revert
19719 2013-04-16 Richard Biener <rguenther@suse.de>
19720
19721 PR rtl-optimization/56921
19722 * loop-init.c (pass_rtl_move_loop_invariants): Add
19723 TODO_do_not_ggc_collect to todo_flags_finish.
19724 (pass_rtl_unswitch): Same.
19725 (pass_rtl_unroll_and_peel_loops): Same.
19726 (pass_rtl_doloop): Same.
19727
fc6f94f5
EB
197282013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19729
19730 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19731 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19732 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19733 references.
19734 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19735 * tree-streamer.c (record_common_node): Adjust reference in comment.
19736
10a88311
TG
197372013-04-17 Terry Guo <terry.guo@arm.com>
19738
19739 * config/arm/cortex-m4.md: Add a new bypass.
19740
6d9b7208 197412013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19742
19743 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19744 New pattern.
19745 (*subs_<optab><mode>_multp2): New pattern.
19746 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19747 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19748
6d9b7208 197492013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19750
19751 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19752 (*subs_mul_imm_<mode>): New pattern.
19753
18a6701e
DE
197542013-04-16 David Edelsohn <dje.gcc@gmail.com>
19755
19756 PR target/56948
19757 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19758 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19759 (vsx_movti_32bit): Change j->wa to O->wa.
19760
07c37b2f
RB
197612013-04-16 Richard Biener <rguenther@suse.de>
19762
19763 PR rtl-optimization/56921
19764 * loop-init.c (pass_rtl_move_loop_invariants): Add
19765 TODO_do_not_ggc_collect to todo_flags_finish.
19766 (pass_rtl_unswitch): Same.
19767 (pass_rtl_unroll_and_peel_loops): Same.
19768 (pass_rtl_doloop): Same.
19769
0e0f87d4 197702013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
19771
19772 * config/arm/arm.c (emit_multi_reg_push): New declaration
19773 for an existing function.
19774 (arm_emit_strd_push): New function.
19775 (arm_expand_prologue): Used here.
19776 (arm_emit_ldrd_pop): New function.
19777 (arm_expand_epilogue): Used here.
19778 (arm_get_frame_offsets): Update condition.
19779 (arm_emit_multi_reg_pop): Add a special case for load of a single
19780 register with writeback.
19781
5e8e2af4
UB
197822013-04-16 Uros Bizjak <ubizjak@gmail.com>
19783
19784 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19785 description.
19786
9fd9ccf7
RB
197872013-04-16 Richard Biener <rguenther@suse.de>
19788
19789 PR tree-optimization/56756
19790 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19791 (first_mem_ref_loc): New.
19792 (execute_sm): Place the load temporarily before a previous
19793 access instead of in the latch edge to ensure its SSA dependencies
19794 are defined at points dominating the load.
19795
96fba521
SB
197962013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19797
4c8af858
SB
19798 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19799 correct fix by moving header and footer insn to the footer of
19800 the merged basic block. Clear BB_END of the merged-away block.
19801
96fba521
SB
19802 PR middle-end/43631
19803 * emit-rtl.c (make_note_raw): New function.
19804 (link_insn_into_chain): New static inline function.
19805 (add_insn): Use it.
19806 (add_insn_before, add_insn_after): Factor insn chain linking code...
19807 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19808 using link_insn_into_chain.
19809 (note_outside_basic_block_p): New helper function for emit_note_after
19810 and emit_note_before.
19811 (emit_note_after): Use nobb variant of add_insn_after if the note
19812 should not be contained in a basic block.
19813 (emit_note_before): Use nobb variant of add_insn_before if the note
19814 should not be contained in a basic block.
19815 (emit_note_copy): Use make_note_raw.
19816 (emit_note): Likewise.
19817 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19818 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19819 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19820 the moved barrier the tail of the basic block it follows.
19821 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19822
7b8265ba
JJ
198232013-04-15 Jakub Jelinek <jakub@redhat.com>
19824
19825 PR tree-optimization/56962
19826 * gimple-ssa-strength-reduction.c (record_increment): Only set
19827 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19828 either rhs1 or rhs2 is equal to c->base_expr.
19829
5185d248
RB
198302013-04-15 Richard Biener <rguenther@suse.de>
19831
19832 PR tree-optimization/56933
19833 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19834 member.
19835 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19836 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19837 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19838 dependence check ...
19839 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
19840 ... here.
19841 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
19842 GROUP_READ_WRITE_DEPENDENCE.
19843
a24243a0
AK
198442013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19845
19846 * emit-rtl.c (reset_all_used_flags): New function.
19847 (verify_rtl_sharing): Call reset_all_used_flags before and after
19848 performing the checks.
19849
1c50eada
KT
198502013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19851
19852 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
19853 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
19854 * config/arm/constraints.md (De): New constraint.
19855 * config/arm/neon.md (anddi3_neon): Delete.
19856 (neon_vand<mode>): Expand to standard anddi3 pattern.
19857 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
19858 Move earlier in the file.
19859 (neon_inv_logic_op2): Likewise.
19860 (arm_anddi_operand_neon): New predicate.
19861
e927b6ad
RO
198622013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19863
19864 * configure.ac (gcc_cv_ld_as_needed): Set
19865 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
19866 Use -z ignore, -z record on *-*-solaris2*.
19867 (HAVE_LD_AS_NEEDED): Update comment.
19868 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
19869 * configure: Regenerate.
19870 * config.in: Regenerate.
19871 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
19872 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
19873 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
19874 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
19875 equivalents. Fix markup.
19876 * doc/tm.texi: Regenerate.
19877
e0ea8797
AH
198782013-04-15 Andrew Hsieh <andrewhsieh.google.com>
19879
19880 * config/i386/i386.opt: New option mstack-protector-guard=.
19881 * config/i386/i386-opts.h: Add enum stack_protector_guard.
19882 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
19883 TARGET_SSP_TLS_GUARD.
19884 * config/i386/i386.c (ix86_option_override_internal): Set
19885 ix86_stack_protector_guard.
19886 * config/i386/i386.md (stack_protect_set): Enable for
19887 TARGET_SSP_TLS_GUARD only.
19888 (stack_protect_set_<mode>): Ditto.
19889 (stack_protect_test): Ditto.
19890 (stack_protect_test_<mode>): Ditto.
19891 * doc/invoke.texi (i386 Option): Document.
19892
811b72f9
EB
198932013-04-15 Eric Botcazou <ebotcazou@adacore.com>
19894
19895 PR target/56890
19896 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
19897 (S_MODES): Set H_MODE bit.
19898 (SF_MODES): Set only S_MODE and SF_MODE bits.
19899 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
19900 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
19901 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
19902 <MODE_FLOAT>: Likewise.
19903
5529fdd6
JY
199042013-04-15 Joey Ye <joey.ye@arm.com>
19905
19906 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
19907
517b1da2
JY
199082013-04-15 Joey Ye <joey.ye@arm.com>
19909
19910 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
19911 for real far jump.
19912 (thumb_far_jump_used_p): Count instruction size and set
19913 far_jump_used.
19914
01007ae0
EB
199152013-04-14 Eric Botcazou <ebotcazou@adacore.com>
19916
19917 * reorg.c (fill_simple_delay_slots): Reindent block of code.
19918 * resource.c (mark_target_live_regs): Reformat conditional block.
19919
c46f6580
SB
199202013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19921
19922 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
19923 notes, they are emitted only just before final.
19924 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
19925
1f397f45
SB
199262013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19927
19928 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
19929 * cfgrtl.c (delete_insn): Call it here instead.
19930 * lra-spills.c (lra_final_code_change): Use delete_insn.
19931 * haifa-sched.c (sched_remove_insn): Likewise.
19932 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
19933 returning to the nop pool.
19934 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
19935 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
19936
58a51369
SB
199372013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19938
19939 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
19940 * doc/tm.texi: Regenerated.
19941
33159866
UB
199422013-04-12 Uros Bizjak <ubizjak@gmail.com>
19943
19944 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
19945 QImode checks.
19946
226e378f
SB
199472013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19948
19949 * df-core.c (df_find_def): Compare register numbers.
19950 (df_find_use): Likewise.
19951
fafb9b18
VM
199522013-04-12 Vladimir Makarov <vmakarov@redhat.com>
19953
19954 PR target/56903
19955 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
19956 lra_in_progress for return.
19957
9a946fd6
GY
199582013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19959
19960 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
19961 define_insn into define_insn_and_split and emit movsicc patterns.
19962
41b83758
GY
199632013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19964
19965 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
19966
d3afd9aa
RB
199672013-04-12 Richard Biener <rguenther@suse.de>
19968
19969 * tree-pass.h (TODO_do_not_ggc_collect): New.
19970 * passes.c (execute_one_ipa_transform_pass): Honor
19971 TODO_do_not_ggc_collect.
19972 (execute_one_pass): Likewise.
19973
19974 Revert
19975 2013-04-10 Richard Biener <rguenther@suse.de>
19976
19977 * passes.c (init_optimization_passes): Remove reload pass.
19978 * ira.c (do_reload): Merge into ...
19979 (ira): ... this.
19980 (rest_of_handle_reload): Remove.
19981 (pass_reload): Likewise.
19982 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19983 of reload for vzeroupper pass placement.
19984
06f9b387
JJ
199852013-04-12 Jakub Jelinek <jakub@redhat.com>
19986
19987 PR tree-optimization/56918
19988 PR tree-optimization/56920
19989 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
19990 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
19991 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
19992 use wide_mul_with_sign method.
19993
953094d2
RB
199942013-04-12 Richard Biener <rguenther@suse.de>
19995
19996 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
19997 not be considered a gimple constant.
19998
bb506982
MG
199992013-04-12 Marc Glisse <marc.glisse@inria.fr>
20000
20001 * fold-const.c (const_binop): Handle vector shifts by a scalar.
20002 (fold_binary_loc): Call const_binop also for mixed vector-scalar
20003 operations.
20004
4b84d650
JJ
200052013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
20006 Jakub Jelinek <jakub@redhat.com>
20007
20008 * opts.c: Include diagnostic-color.h.
20009 (common_handle_option): Handle OPT_fdiagnostics_color_.
20010 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
20011 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
20012 (diagnostic-color.o): New.
20013 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
20014 (diagnostic_color_rule): New enum.
20015 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
20016 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
20017 the location string.
20018 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
20019 either NULL, or color kind.
20020 * diagnostic-color.c: New file.
20021 * diagnostic-color.h: New file.
20022 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
20023 arguments.
20024 * doc/invoke.texi (-fdiagnostics-color): Document.
20025 * pretty-print.h (pp_show_color): Define.
20026 (struct pretty_print_info): Add show_color field.
20027 * diagnostic.c: Include diagnostic-color.h.
20028 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
20029 macros. Colorize error:, warning: etc. strings and also the location
20030 string.
20031 (diagnostic_show_locus): Colorize the caret line.
20032 * pretty-print.c: Include diagnostic-color.h.
20033 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
20034 inside of %< %> quotes or quoted through q format modifier.
20035
067a1e71
AK
200362013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20037
33159866 20038 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 20039
33159866 200402013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
20041
20042 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
20043 code in CC_NZ mode.
20044 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
20045 pattern.
20046
7b55f98f
MP
200472013-04-11 Marek Polacek <polacek@redhat.com>
20048
20049 PR tree-optimization/48184
33159866 20050 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 20051
966b587e
EB
200522013-04-11 Eric Botcazou <ebotcazou@adacore.com>
20053
20054 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
20055 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
20056 (skip_simple_arithmetic): Tidy up.
20057 * tree.h (skip_simple_constant_arithmetic): Declare.
20058
33159866 200592013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
20060
20061 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
20062
1d42c1ec
RB
200632013-04-11 Richard Biener <rguenther@suse.de>
20064
20065 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20066 generate vector constants.
20067
4ba5ea11
RB
200682013-04-11 Richard Biener <rguenther@suse.de>
20069
20070 PR tree-optimization/56878
20071 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
20072 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
20073 New function.
20074 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20075 Prefer to align the DR with the most invariant base address.
20076
f0defe58
SKS
200772013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20078
20079 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20080 comment.
20081
d07458be
JG
200822013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20083
20084 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20085 floating-point vector comparisons against 0.
20086
146b8692
JJ
200872013-04-11 Jakub Jelinek <jakub@redhat.com>
20088
20089 PR tree-optimization/56899
20090 * fold-const.c (extract_muldiv_1): Apply distributive law
20091 only if TYPE_OVERFLOW_WRAPS (ctype).
20092
b8578ff7
BC
200932013-04-11 Bin Cheng <bin.cheng@arm.com>
20094
20095 PR target/56124
20096 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20097 loading has side effect.
20098
0ea8a6f9
SB
200992013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20100
20101 * config/sparc/sparc.c: Include tree-pass.h.
20102 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20103 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20104 head of file. Change return type. Split off gate function.
20105 (sparc_gate_work_around_errata): New function.
20106 (pass_work_around_errata): New pass definition.
20107 (insert_pass_work_around_errata) New pass insert definition to
20108 insert pass_work_around_errata just after delayed-branch scheduling.
20109 (sparc_option_override): Insert the pass.
20110 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20111
42e37616
DM
201122013-04-10 David S. Miller <davem@davemloft.net>
20113
89deeb3b
DM
20114 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20115 or -mcpu=hypersparc.
20116
42e37616
DM
20117 * target.def (cstore_mode): New hook.
20118 * target.h: Include insn-codes.h
20119 * targhooks.c: Likewise.
20120 (default_cstore_mode): New function.
20121 * targhooks.h: Declare it.
20122 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20123 * doc/tm.texi: Rebuild.
20124 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20125 target hook, rather than inspecting the insn_data.
20126 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20127 (TARGET_CSTORE_MODE): Redefine.
20128 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20129 result patterns.
20130 * config/sparc/predicates.md (cstore_result_operand): New special
20131 predicate.
20132 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20133 Use it for operand 0.
20134 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20135 (*snesi_special): Likewise.
20136 (*snesi_zero): Likewise.
20137 (*seqsi_zero): Likewise.
20138 (*sltu_insn): Likewise.
20139 (*sgeu_insn): Likewise.
20140 (*seqdi_special): Make operand 0 and comparison operation be of
20141 DImode.
20142 (*snedi_special): Likewise.
20143 (*snedi_special_vis3): Likewise.
20144 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20145 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20146 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20147 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20148 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20149 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20150 (*sltu_extend_sp64): Likewise.
20151 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20152 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20153 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20154 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20155 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20156
95ca411e
YZ
201572013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20158
20159 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20160 (aarch64_start_file): Use the new function.
20161
6782438d 201622013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20163 Jason Merrill <jason@redhat.com>
6782438d
SKS
20164
20165 * common.opt: Add -gdwarf.
20166 * opts.c (common_handle_option): Handle it.
20167 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20168
bb313b93
RB
201692013-04-10 Richard Biener <rguenther@suse.de>
20170
20171 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20172 (execute_one_ipa_transform_pass): But unconditionally here.
20173 (execute_one_pass): And here.
20174 (init_optimization_passes): Remove reload pass.
20175 * tree-pass.h (TODO_ggc_collect): Remove.
20176 (pass_reload): Likewise.
20177 * ira.c (do_reload): Merge into ...
20178 (ira): ... this.
20179 (rest_of_handle_reload): Remove.
20180 (pass_reload): Likewise.
20181 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20182 of reload for vzeroupper pass placement.
20183 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20184 and todo_flags_finish of all passes.
20185
793d9a16
RB
201862013-04-10 Richard Biener <rguenther@suse.de>
20187
20188 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20189 first_const_oprnd field, rename first_def_type to first_op_type.
20190 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20191 (vect_get_and_check_slp_defs): Always use the type of the
20192 operand. Allow mixed vect_external_def, vect_constant_def types.
20193 (vect_get_constant_vectors): Handle mixed vect_external_def,
20194 vect_constant_def types.
20195
12211b99 201962013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20197
20198 PR tree-optimization/55524
20199 * tree-ssa-math-opts.c
20200 (convert_mult_to_fma): Don't use an fms construct
20201 when we don't have an fms operation, but fnma, and it looks
20202 likely that we'll be able to use the latter.
20203
12211b99 202042013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20205
20206 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20207 function.
20208 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20209 inline fail caused by overwritable functions.
20210
34ab4a5b
CJW
202112013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20212
20213 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20214 unnecessary bits in the constant power of two case.
20215
abf9bfbc
RB
202162013-04-10 Richard Biener <rguenther@suse.de>
20217
20218 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20219 broken code swapping operands.
20220 (vect_build_slp_tree): Do not compute load permutations here.
20221 (vect_analyze_slp_instance): Compute load permutations here,
20222 after building the SLP tree.
20223
f408477e
CB
202242013-04-09 Christian Bruel <christian.bruel@st.com>
20225
20226 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20227 of next/prev_real_insn.
20228
5ac42672
JH
202292013-04-09 Jan Hubicka <jh@suse.cz>
20230
abf9bfbc
RB
20231 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20232 Drop aliased parameter.
5ac42672
JH
20233 (function_and_variable_visibility): Do not handle alias pairs.
20234 * cgraph.c (varpool_externally_visible_p): Update prototype.
20235 * varpool.c (varpool_add_new_variable): Update.
20236
5017f1d2
KT
202372013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20238
20239 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20240
48eecbee
SB
202412013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20242
a949cf1c
SB
20243 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20244
48eecbee
SB
20245 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20246
75ef8e3d
MP
202472013-04-09 Marek Polacek <polacek@redhat.com>
20248
20249 PR tree-optimization/48762
33159866 20250 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20251
23847df4
RB
202522013-04-09 Richard Biener <rguenther@suse.de>
20253
20254 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20255 dealing with cost.
20256 (vect_build_slp_tree): Likewise.
20257 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20258 calculating the cost of a SLP instance.
20259 (vect_analyze_slp_instance): Use it from here, after building
20260 the SLP tree.
20261
ea3a0fde
JJ
202622013-04-09 Jakub Jelinek <jakub@redhat.com>
20263
20264 PR middle-end/56883
20265 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20266 expand_omp_for_static_chunk): Use simple_p = true in
20267 force_gimple_operand_gsi calls when assigning to addressable decls.
20268
a32dfe9d
JL
202692013-04-09 Jeff Law <law@redhat.com>
20270
20271 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20272 when the boolean was created by converting a wider object which
20273 had a boolean range.
20274
d755c7ef
RB
202752013-04-09 Richard Biener <rguenther@suse.de>
20276
20277 * tree-vectorizer.h (slp_void_p): Remove.
20278 (slp_tree): Typedef before _slp_tree declaration.
20279 (struct _slp_tree): Use a vector of slp_tree as children.
20280 (vect_get_place_in_interleaving_chain): Remove.
20281 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20282 Move ...
20283 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20284 and make static.
20285 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20286 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20287 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20288 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20289 Use slp_node instead of slp_void_p and adjust.
20290
3d741091
RB
202912013-04-09 Richard Biener <rguenther@suse.de>
20292
20293 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20294 work that is not necessary.
20295
39307ba7
JJ
202962013-04-09 Jakub Jelinek <jakub@redhat.com>
20297
20298 PR tree-optimization/56854
20299 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20300 forward into clobber stmts if it would change MEM_REF lhs into
20301 non-MEM_REF.
20302
343881fd
MK
203032013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20304
20305 * tree.c (type_hash_lookup, type_hash_add): Make static.
20306 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20307
3922658a
RB
203082013-04-09 Richard Biener <rguenther@suse.de>
20309
20310 * tree.h (unsave_expr_now): Remove.
20311 * tree-inline.c (mark_local_for_remap_r): Remove.
20312 (unsave_expr_1): Likewise.
20313 (unsave_r): Likewise.
20314 (unsave_expr_now): Likewise.
20315 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20316 (propagate_tree_value): Likewise.
20317
9fb6b620
SB
203182013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20319
20320 * doc/rtl.texi (sequence): Rewrite documentation to match the
20321 current use of SEQUENCE rtl objects.
20322 * rtl.def (SEQUENCE): Likewise.
20323
20324 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20325 Update documentation.
20326 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20327 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20328
20329 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20330
8ddb5a29
TJ
203312013-04-08 Teresa Johnson <tejohnson@google.com>
20332
20333 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20334 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20335 methods.
8ddb5a29
TJ
20336 (estimate_edge_size_and_time): Add comment to suggest using rounding
20337 methods.
20338 (estimate_node_size_and_time): Ditto.
20339 (remap_edge_change_prob): Use helper rounding divide methods.
20340 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20341 (gimple_mod_pow2_value_transform): Ditto.
20342 (gimple_mod_subtract_transform): Ditto.
20343 (gimple_ic_transform): Ditto.
20344 (gimple_stringops_transform): Ditto.
20345 * stmt.c (conditional_probability): Ditto.
20346 (emit_case_dispatch_table): Ditto.
20347 * lto-cgraph.c (merge_profile_summaries): Ditto.
20348 * tree-optimize.c (execute_fixup_cfg): Ditto.
20349 * cfgcleanup.c (try_forward_edges): Ditto.
20350 * cfgloopmanip.c (scale_loop_profile): Ditto.
20351 (loopify): Ditto.
20352 (duplicate_loop_to_header_edge): Ditto.
20353 (lv_adjust_loop_entry_edge): Ditto.
20354 * tree-vect-loop.c (vect_transform_loop): Ditto.
20355 * profile.c (compute_branch_probabilities): Ditto.
20356 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20357 * lto-streamer-in.c (input_cfg): Ditto.
20358 * gimple-streamer-in.c (input_bb): Ditto.
20359 * ipa-cp.c (update_profiling_info): Ditto.
20360 (update_specialized_profile): Ditto.
20361 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20362 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20363 rounding methods.
8ddb5a29
TJ
20364 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20365 (compute_trg_info): Ditto.
20366 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20367 (purge_dead_edges): Ditto.
20368 * loop-unswitch.c (unswitch_loop): Ditto.
20369 * cgraphclones.c (cgraph_clone_edge): Ditto.
20370 (cgraph_clone_node): Ditto.
20371 * tree-inline.c (copy_bb): Ditto.
20372 (copy_edges_for_bb): Ditto.
20373 (initialize_cfun): Ditto.
20374 (copy_cfg_body): Ditto.
20375 (expand_call_inline): Ditto.
20376
661e6bd7
KT
203772013-04-08 Kai Tietz <ktietz@redhat.com>
20378
20379 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20380 TARGET_CYGWIN64 by TARGET_64BIT.
20381
105766f3
JR
203822013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20383
20384 * config/epiphany/epiphany.md (GPR_1): New constant.
20385 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20386 * config/epiphany/epiphany.c (gen_compare_reg):
20387 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20388 is already in place.
20389 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20390 Don't require being called during rtl expansion; If y operlaps r0,
20391 return 0.
20392 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20393 (epiphany_expand_epilogue): Likewise.
20394
8afab237
JR
20395 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20396 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20397 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20398
fa7707d6
JR
20399 * config/epiphany/constraints.md (CnL): New constraint.
20400 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20401 * config/epiphany/predicates.md (add_operand): Allow 1024.
20402
5138e18d
JR
20403 * config/epiphany/epiphany.md (logical_op): New code iterator.
20404 (op_mnc): New code attribute.
20405 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20406 (mov_f+1, mov_f+2): New peephole2 patterns.
20407
2ccc703d
JR
20408 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20409 (cstoresi4): Also allow re-use of zero result when doing a NE
20410 comparison to a non-zero operand.
aefb0819 20411 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20412
093ac0a5
JR
20413 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20414 Use gen_addsi3_i / gen_subsi3_i.
20415
f223bb13
JJ
204162013-04-08 Jakub Jelinek <jakub@redhat.com>
20417
20418 PR c++/34949
20419 PR c++/50243
20420 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20421 contain anything but clobbers, at most one __builtin_stack_restore,
20422 optionally debug stmts and final resx, and if it has at least one
20423 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20424 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20425 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20426 which isn't defaut definition, remove them.
20427 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20428 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20429 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20430 with MEM_REF LHS with SSA_NAME address.
20431
4481581f
JL
204322013-04-08 Jeff Law <law@redhat.com>
20433
20434 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20435
451dabda
RB
204362013-04-08 Richard Biener <rguenther@suse.de>
20437
20438 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20439 extra newline.
20440 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20441 determined vector type.
20442 (vect_analyze_data_refs): Likewise.
20443 (vect_get_new_vect_var): Adjust.
20444 (vect_create_destination_var): Preserve SSA name versions.
20445 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20446 not dump anything here.
20447
3b088b47
JR
204482013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20449
20450 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20451 Add member lr_slot_known.
20452 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20453 if necessary.
20454 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20455 Remove code that sets lr_slot_offset according to what a previous
20456 version of epiphany_emit_save_restore used to do.
20457 (epiphany_emit_save_restore): When doing an lr save or restore,
20458 set/verify lr_slot_known and lr_slot_offset.
20459
d8484d41
XQ
204602013-04-08 Xinyu Qi <xyqi@marvell.com>
20461
33159866
UB
20462 PR target/54338
20463 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20464 in ALL_REGS.
20465
481be1c4
RB
204662013-04-08 Richard Biener <rguenther@suse.de>
20467
20468 * alias.c (find_base_term): Fix thinko in previous change.
20469
401f3a81
JJ
204702013-04-08 Jakub Jelinek <jakub@redhat.com>
20471
20472 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20473 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20474 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20475 if possible to compute val.
20476 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20477 For QImode integers don't require anything about precision. Use
20478 const_with_all_bytes_same to find out if the constant doesn't have
20479 repeated bytes in it.
20480
03ed99a8
AK
204812013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20482
20483 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20484 within mode size.
20485
781b2e62
MP
204862013-04-08 Marek Polacek <polacek@redhat.com>
20487
20488 PR rtl-optimization/48182
20489 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20490 value to 1.
20491
27e430a2
JDA
204922013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20493
20494 PR target/55487
20495 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20496 nuses, make sure we have a label.
20497
4902aa64
BS
204982013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20499
20500 PR target/56843
20501 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20502 (rs6000_emit_swdiv_low_precision): Remove.
20503 (rs6000_emit_swdiv): Rewrite to handle between one and four
20504 iterations of Newton-Raphson generally; modify required number of
20505 iterations for some cases.
20506 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20507
7bca81dc
SB
205082013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20509
20510 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20511 set-but-unused variable.
20512
20513 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20514 basic blocks of released function bodies garbage-collectable.
20515
20516 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20517 (struct rtl_opt_pass): Add TODO_df_finish.
20518
20519 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20520
4542a38a
GY
205212013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20522
20523 * config/arm/constraints.md (q): New constraint.
20524 * config/arm/ldrdstrd.md: New file.
20525 * config/arm/arm.md (ldrdstrd.md) New include.
20526 (arm_movdi): Use "q" instead of "r" constraint
20527 for double-word memory access.
20528 (movdf_soft_insn): Likewise.
20529 * config/arm/vfp.md (movdi_vfp): Likewise.
20530 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20531 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20532 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20533 (mem_ok_for_ldrd_strd): Likewise.
20534 (output_move_double): Update assertion.
20535
2385b218
GY
205362013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20537
20538 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20539
75fe1cb5
GY
205402013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20541
20542 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20543 define_insn_and_split.
20544 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20545
dd660e8e
GY
205462013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20547
20548 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20549 define_insn_and_split.
33159866 20550 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20551 (shiftsi3_compare): New pattern.
20552 (rrx): New pattern.
20553 * config/arm/unspecs.md (UNSPEC_RRX): New.
20554
045e472c
GY
205552013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20556
20557 * config/arm/arm.md (negdi_extendsidi): New pattern.
20558 (negdi_zero_extendsidi): Likewise.
20559
3f3bf1a8
GY
205602013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20561
20562 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20563 define_insn_and_split.
20564 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20565 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20566
b0b49556
GY
205672013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20568
20569 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20570 define_insn_and_split.
20571 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20572 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20573
d633dd84
GY
205742013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20575
20576 * config/arm/arm.md (subsi3_carryin): New pattern.
20577 (subsi3_carryin_const): Likewise.
20578 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20579 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20580
f4499066
GY
205812013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20582
20583 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20584
ceef6fd9
GY
205852013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20586
20587 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20588 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20589
ddbdd8a7
KT
205902013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20591
20592 * config/arm/arm.c (arm_expand_builtin): Change fcode
20593 type to unsigned int.
20594
8456d78a
RR
205952013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20596
20597 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20598
526c230f
ILT
205992013-04-04 Ian Lance Taylor <iant@google.com>
20600
33159866
UB
20601 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20602 language standard.
526c230f 20603
3cfbe04d
SB
206042013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20605
20606 PR middle-end/56729
20607 * df-scan.c (df_insn_delete): Disable failing assert.
20608
dfa3f8d0
KT
206092013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20610
20611 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20612 New function prototype.
20613 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20614 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20615 (arm_builtin_vectorized_function): New function.
20616
f7837758
KT
206172013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20618
20619 * config/arm/arm_neon_builtins.def: New file.
20620 * config/arm/arm.c (neon_builtin_data): Move contents to
20621 arm_neon_builtins.def.
20622 (enum arm_builtins): Include neon builtin definitions.
20623 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20624 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20625
39c1b6db
MP
206262013-04-04 Marek Polacek <polacek@redhat.com>
20627
20628 PR tree-optimization/48186
20629 * predict.c (maybe_hot_frequency_p): Return false if
20630 HOT_BB_FREQUENCY_FRACTION is 0.
20631 (cgraph_maybe_hot_edge_p): Likewise.
20632
314f64eb
RB
206332013-04-04 Richard Biener <rguenther@suse.de>
20634
20635 PR tree-optimization/56826
20636 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20637 more accurately.
20638
51a905b2
RB
206392013-04-04 Richard Biener <rguenther@suse.de>
20640
20641 PR tree-optimization/56213
20642 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20643 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20644
f1bf4f3a
RB
206452013-04-04 Richard Biener <rguenther@suse.de>
20646
20647 PR tree-optimization/56837
20648 * tree-loop-distribution.c (classify_partition): For non-zero
20649 values require that the value has the same precision as its
20650 mode to be useful as memset value.
20651
0bca7ded
NC
206522013-04-03 Nick Clifton <nickc@redhat.com>
20653
33159866 20654 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20655 (fmssf4): Use fmsf.s on E3V5 architectures.
20656 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20657 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20658
b4019227
JL
206592013-04-03 Jeff Law <law@redhat.com>
20660
20661 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20662 (lra-eliminations.o): Likewise.
20663
f57ddb5b
TJ
206642013-04-03 Teresa Johnson <tejohnson@google.com>
20665
20666 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20667 compute_working_sets here from profile.c.
f57ddb5b 20668 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20669 (gcov_working_set_t): Moved typedef here from basic-block.h
20670 (compute_working_set): Declare.
f57ddb5b
TJ
20671 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20672 (get_working_sets): Renamed from compute_working_set,
33159866 20673 replace most of body with call to new compute_working_sets.
f57ddb5b 20674 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20675 to get_working_sets.
20676 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20677 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20678 to get_working_sets.
f57ddb5b
TJ
20679 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20680 * gcov-dump.c (dump_working_sets): New function.
20681
12211b99 206822013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20683
20684 * hwint.c (sext_hwi, zext_hwi): New functions.
20685 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20686 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20687 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20688 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20689 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20690 (sext_hwi, zext_hwi): New functions.
0bca7ded 20691
be672e08
JL
206922013-04-03 Jeff Law <law@redhat.com>
20693
20694 PR tree-optimization/56799
33159866
UB
20695 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20696 back test for widening conversion erroneously dropped in prior change.
be672e08 20697
9d821fa5
KT
206982013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20699
20700 PR target/56809
20701 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20702 instead of next_real_insn.
20703
71c581e7
MP
207042013-04-03 Marek Polacek <polacek@redhat.com>
20705
20706 PR sanitizer/55702
33159866 20707 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20708
4a32ef80
KT
207092013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20710
20711 PR target/56809
20712 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20713 next_real_insn.
20714 (thumb1_output_casesi): Likewise.
20715 (thumb2_output_casesi): Likewise.
20716
1b2253d4
RB
207172013-04-03 Richard Biener <rguenther@suse.de>
20718
20719 PR tree-optimization/56817
20720 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20721 Split out ...
20722 (tree_unroll_loops_completely_1): ... new function to manually
20723 walk the loop tree, properly defering outer loops of unrolled
20724 loops to later iterations.
20725
38000232
MG
207262013-04-03 Marc Glisse <marc.glisse@inria.fr>
20727
20728 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20729 (vectorizable_load): Likewise.
20730 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20731 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20732
3fa35298
MG
207332013-04-03 Marc Glisse <marc.glisse@inria.fr>
20734
20735 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20736 BIT_FIELD_REF.
20737
b3d45ff0
UW
207382013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20739
20740 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20741
ec9202a8
BC
207422013-04-03 Bin Cheng <bin.cheng@arm.com>
20743
20744 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20745
6805bd36
MG
207462013-04-03 Marc Glisse <marc.glisse@inria.fr>
20747
20748 PR tree-optimization/56790
33159866
UB
20749 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20750 folding.
6805bd36 20751
da694a77
MG
207522013-04-03 Marc Glisse <marc.glisse@inria.fr>
20753
20754 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20755 Handle VEC_MERGE.
20756 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20757 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20758 equal arguments.
20759
4e7d7b3d
JJ
207602013-04-03 Jakub Jelinek <jakub@redhat.com>
20761
20762 PR c/19449
20763 * tree.h (force_folding_builtin_constant_p): New decl.
20764 * builtins.c (force_folding_builtin_constant_p): New variable.
20765 (fold_builtin_constant_p): Fold immediately also if
20766 force_folding_builtin_constant_p.
20767
e6c9d234
RB
207682013-04-03 Richard Biener <rguenther@suse.de>
20769
20770 PR tree-optimization/56812
20771 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20772 DRs of the same interleaving chain are independent.
20773
984d07dd
JM
207742013-04-02 Jason Merrill <jason@redhat.com>
20775
20776 * gdbinit.in (pbb): Use debug fn.
20777
622849c9
LC
207782013-04-02 Lawrence Crowl <crowl@google.com>
20779
20780 * sese.h (struct ivtype_map_elt_s): Remove unused.
20781 (extern debug_ivtype_map): Remove unused.
20782 (extern eq_ivtype_map_elts): Remove unused.
20783 * sese.c (debug_ivtype_map): Removed unused.
20784 (debug_ivtype_map_1): Removed unused.
20785 (debug_ivtype_elt): Remove unused.
20786 (eq_ivtype_map_elts): Remove unused.
20787
20788
82c0e1a0
KT
207892013-04-02 Kai Tietz <ktietz@redhat.com>
20790
20791 PR target/52790
20792 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20793 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
20794 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20795 function.
82c0e1a0
KT
20796 (legitimize_pe_coff_symbol): Likewise.
20797 (is_imported_p): New helper-function.
20798 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20799 for Windows x64 targets.
20800 (ix86_expand_prologue): Optimize for pe-coff targets.
20801 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20802 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20803 medium/large code-model.
20804 (legitimize_pic_address): Likewise.
20805 (legitimize_tls_address): Likewise.
20806 (ix86_expand_call): Likewise.
20807 (x86_output_mi_thunk): Likewise.
20808 (get_dllimport_decl): Add new beimport argument.
20809 (construct_plt_address): Don't assert for x64 pe-coff targets.
20810 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20811 targets.
20812 (SYMBOL_FLAG_STUBVAR): New macro.
20813 (SYMBOL_REF_STUBVAR_P): Likewise.
20814 * config/i386/winnt.c (stub_list): New structure.
20815 (stub_head): New local variable.
20816 (i386_pe_record_stub): New function.
20817 (i386_pe_file_end): Emit refptr-stubs.
20818
5d751b0c
JJ
208192013-04-02 Jakub Jelinek <jakub@redhat.com>
20820
09bb4c99
JJ
20821 PR rtl-optimization/56745
20822 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20823 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20824
a1d8947a
JJ
20825 PR c++/34949
20826 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20827 and both of them are MEM_REFs, just compare first argument for
20828 equality and attempt to deal even with differing offsets.
20829
5d751b0c
JJ
20830 PR c++/34949
20831 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20832 of gimple_clobber_p to be MEM_REF.
20833 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20834 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20835 after gimplification.
20836 * asan.c (get_mem_ref_of_assignment): Don't instrument
20837 gimple_clobber_p stmts.
20838 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
20839 gimple_clobber_p stmt if they have MEM_REF lhs and
20840 are dead because of another gimple_clobber_p stmt.
20841 * tree-ssa-live.c (clear_unused_block_pointer): Treat
20842 gimple_clobber_p stmts like debug stmts.
20843 (remove_unused_locals): Remove clobbers with MEM_REF lhs
20844 that refer to unused VAR_DECLs or uninitialized values.
20845 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
20846 gimple_clobber_p stmts if they refer to removed parameters.
20847 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
20848 formatting.
20849
e594716a
UB
208502013-04-02 Uros Bizjak <ubizjak@gmail.com>
20851
20852 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
20853 using SWI48 mode attribute.
20854
7a80735b
WM
208552013-04-02 Wei Mi <wmi@google.com>
20856
20857 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
20858 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
20859 *<rotate_insn><mode>3_mask in i386.md.
20860
f423a9e4
AI
208612013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
20862
20863 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
20864
90eb75f2
RB
208652013-04-02 Richard Biener <rguenther@suse.de>
20866
20867 PR tree-optimization/56778
20868 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20869 Runtime alias tests are not supported for gather loads.
20870 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
20871 stmts referenced from SSA operands before updating SSA form.
20872
d8c69a92
IC
208732013-04-02 Ian Caulfield <ian.caulfield@arm.com>
20874 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20875
20876 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
20877 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
20878 * config/arm/cortex-a53.md: New file.
20879 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
20880 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
20881 * config/arm/arm.c (arm_issue_rate): Likewise.
20882 * config/arm/arm-tune.md: Regenerate
20883 * config/arm/arm-tables.opt: Regenerate.
20884 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 20885
239eb04c
ZC
208862013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
20887
20888 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
20889 non-static link.
20890
c902d3c8
SN
208912013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20892
d8c69a92
IC
20893 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
20894 scalar load/store operations using B/H registers.
c902d3c8
SN
20895 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
20896
051d0e2f
SN
208972013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20898
20899 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
20900 scalar move.
20901 * config/aarch64/aarch64.c
20902 (aarch64_simd_scalar_immediate_valid_for_move): New.
20903 * config/aarch64/aarch64-protos.h
20904 (aarch64_simd_scalar_immediate_valid_for_move): New.
20905 * config/aarch64/constraints.md (Dh, Dq): New.
20906 * config/aarch64/iterators.md (hq): New.
20907
0ee1e3d9
EB
209082013-04-02 Eric Botcazou <ebotcazou@adacore.com>
20909
20910 * reorg.c (get_branch_condition): Deal with conditional returns.
20911 (fill_simple_delay_slots): Remove dead code dealing with jumps.
20912
136fb3f7
WM
209132013-04-01 Wei Mi <wmi@google.com>
20914
20915 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
20916 Truncate operand 2 using %b asm operand modifier.
20917 (*<shift_insn><mode>3_mask): Ditto.
20918 (*<rotate_insn><mode>3_mask): Ditto.
20919
6388c738
SB
209202013-04-01 Steven Bosscher <steven@gcc.gnu.org>
20921
20922 PR middle-end/56798
20923 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
20924
f7a4d826
KK
209252013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
20926
20927 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
20928 of next_real_insn.
20929 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
20930
4b943a49
LC
209312013-03-30 Lawrence Crowl <crowl@google.com>
20932
20933 * dse.c (clear_alias_sets): Remove never set.
20934 (disqualified_clear_alias_sets): Remove never set.
20935 (clear_alias_mode_pool): Remove never set.
20936 (dse_step0): Remove condition that is never true.
20937 (canon_address): Remove condition that is never true.
20938 (dse_step7): Remove condition that is never true.
20939 (rest_of_handle_dse): Remove condition that is never true.
20940 (rest_of_handle_dse::did_global): Remove never read from above.
20941 (dse_step2_spill): Remove never called from above.
20942 (dse_step5_spill): Remove never called from above.
20943
39718607
SB
209442013-03-30 Steven Bosscher <steven@gcc.gnu.org>
20945
da5c6bde
SB
20946 * doc/md.texi (Standard Names) <casesi>: Update documentation for
20947 JUMP_TABLE_DATA changes.
20948 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
20949 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
20950 (Insns) <jump_table_data>: New entry.
20951 * doc/tm.texi: Regenerate.
20952
39718607
SB
20953 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
20954
20955 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
20956 for table jump at the end of a basic block using tablejump_p.
20957 * targhooks.c (default_invalid_within_doloop): Likewise.
20958 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
20959 target hook implementation that is identical to the default hook.
20960 (rs6000_invalid_within_doloop): Remove.
20961
20962 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
20963 unused variable from tablejump_p call.
20964
20965 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
20966 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
20967 (INSN_DELETED_P): Likewise.
20968 (emit_jump_table_data): New prototype.
20969 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
20970 after 4th as unused.
20971 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
20972 * sched-vis.c (print_insn): Likewise.
20973 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
20974 insn for compatibility with back ends that use next_active_insn to
20975 identify jump table data.
20976 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
20977 (remove_insn): Likewise.
20978 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
20979 to be emitted.
20980 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
20981 (emit_jump_table_data): New function.
20982
20983 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
20984 basic block, a JUMP_TABLE_DATA never is.
20985 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
20986 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
20987 off from code handling real insns.
20988 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
20989 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
20990 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
20991 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
20992 is not a NONDEBUG_INSN_P.
20993 * ira-costs.c (scan_one_insn): Likewise.
20994 * jump.c (mark_all_labels): Likewise.
20995 (mark_jump_label_1): Likewise.
20996 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20997 * lra.c (get_insn_freq): Expect all insns reaching here to be in
20998 a basic block.
20999 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
21000 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
21001 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
21002 JUMP_TABLE_DATA_P insns.
21003 (calculate_elim_costs_all_insns): Likewise.
21004 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
21005 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
21006 (delete_output_reload): Code style fixups.
21007 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
21008 insn flags on this non-insn.
21009 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
21010 as scheduling barriers, for pre-change compatibility.
21011 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
21012 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
21013
21014 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
21015 redundant JUMP_TABLE_DATA_P test.
21016 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
21017 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21018 (frv_for_each_packet): Likewise.
21019 * config/i386/i386.c (min_insn_size): Likewise.
21020 (ix86_avoid_jump_mispredicts): Likewise.
21021 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21022 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
21023 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21024 (mips16_insn_length): Robustify.
21025 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
21026 (mips16_split_long_branches): Likewise.
21027 * config/pa/pa.c (pa_combine_instructions): Likewise.
21028 * config/rs6000/rs6000.c (get_next_active_insn): Treat
21029 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
21030 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
21031 as contributing to pool range lengths.
21032 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
21033 Remove redundant JUMP_TABLE_DATA_P test.
21034 (sh_loop_align): Likewise.
21035 (split_branches): Likewise.
21036 (sh_insn_length_adjustment): Likewise.
21037 * config/spu/spu.c (get_branch_target): Likewise.
21038
0208f7da
JH
210392013-03-29 Jan Hubicka <jh@suse.cz>
21040
21041 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
21042 gcov streaming; stream hot bb threshold to ltrans.
21043 * predict.c (get_hot_bb_threshold): Break out from ....
21044 (maybe_hot_count_p): ... here.
21045 (set_hot_bb_threshold): New function.
21046 * lto-section-in.c (lto_section_name): Add profile.
21047 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
21048 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
21049 and data-streamer.h
21050 (histogram_entry): New structure.
21051 (histogram, histogram_pool): New global vars.
21052 (histogram_hash): New structure.
21053 (histogram_hash::hash): New method.
21054 (histogram_hash::equal): Likewise.
21055 (account_time_size): New function.
21056 (cmp_counts): New function.
21057 (dump_histogram): New function.
21058 (ipa_profile_generate_summary): New function.
21059 (ipa_profile_write_summary): New function.
21060 (ipa_profile_read_summary): New function.
21061 (ipa_profile): Decide on threshold.
e594716a
UB
21062 (pass_ipa_profile): Add ipa_profile_write_summary and
21063 ipa_profile_read_summary.
0208f7da
JH
21064 * Makefile.in (ipa.o): Update dependencies.
21065 * lto-streamer.h (LTO_section_ipa_profile): New section.
21066
5a6ccc94
GDR
210672013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
21068
21069 * tree.h (VAR_P): New.
21070
39385fa6
PC
210712013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
21072
21073 PR lto/56777
21074 * doc/invoke.texi ([-fwhole-program]): Fix typo.
21075
34f0d87a
SB
210762013-03-29 Steven Bosscher <steven@gcc.gnu.org>
21077
21078 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21079 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21080 (control_flow_insn_p): Likewise.
21081 * cfgrtl.c (duplicate_insn_chain): Likewise.
21082 * final.c (get_attr_length_1): Likewise.
21083 (shorten_branches): Likewise.
21084 (final_scan_insn): Likewise.
21085 * function.c (instantiate_virtual_regs): Likewise.
21086 * gcse.c (insert_insn_end_basic_block): Likewise.
21087 * ira-costs.c (scan_one_insn): Likewise.
21088 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21089 * lra.c (check_rtl): Likewise.
21090 * reload1.c (elimination_costs_in_insn): Likewise.
21091 * reorg.c (follow_jumps): Likewise.
21092
21093 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21094 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21095 (thumb_far_jump_used_p): Likewise.
21096 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21097 (workaround_speculation): Likewise.
21098 (add_sched_insns_for_speculation): Likewise.
21099 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21100 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21101 (frv_for_each_packet): Likewise.
21102 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21103 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21104 (final_emit_insn_group_barriers): Likewise.
21105 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21106 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21107 (mips16_insn_length): Likewise.
21108 * config/pa/pa.c (pa_reorg): Likewise.
21109 (pa_combine_instructions): Likewise.
21110 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21111 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21112 (sh_reorg): Likewise.
21113 (split_branches): Likewise.
21114 * config/spu/spu.c (get_branch_target): Likewise.
21115
21116 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21117 JUMP_TABLE_DATA_P.
21118
4ac761b0
KY
211192013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21120
39385fa6 21121 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21122 Fix declaration name.
21123
58a49189
LC
211242013-03-28 Lawrence Crowl <crowl@google.com>
21125
21126 * graphds.h (struct graph.indicies): Remove unused.
21127 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21128 (SCOP_ORIGINAL_PDDRS): Remove unused.
21129 * sese.h (extern insert_loop_close_phis): Removed unused.
21130 (extern insert_guard_phis): Removed unused.
21131 (extern ivtype_map_elt_info): Removed unused.
21132 (new_ivtype_map_elt): Removed unused.
21133 * sese.c (ivtype_map_elt_info): Removed unused.
21134
7b3b6ae4
LC
211352013-03-28 Lawrence Crowl <crowl@google.com>
21136
21137 * Makefile.in: Add several missing include dependences.
21138 (DUMPFILE_H): New.
21139 (test-dump.o): New. This object is not added to any executable,
21140 but is present for ad-hoc testing.
21141 * bitmap.c
21142 (debug (const bitmap_head_def &)): New.
21143 (debug (const bitmap_head_def *)): New.
21144 * bitmap.h
21145 (extern debug (const bitmap_head_def &)): New.
21146 (extern debug (const bitmap_head_def *)): New.
21147 * cfg.c
21148 (debug (edge_def &)): New.
21149 (debug (edge_def *)): New.
21150 * cfghooks.c
21151 (debug (basic_block_def &)): New.
21152 (debug (basic_block_def *)): New.
21153 * dumpfile.h
21154 (dump_node (const_tree, int, FILE *)): Correct source file.
21155 * dwarf2out.c
21156 (debug (die_struct &)): New.
21157 (debug (die_struct *)): New.
21158 * dwarf2out.h
21159 (extern debug (die_struct &)): New.
21160 (extern debug (die_struct *)): New.
21161 * gimple-pretty-print.c
21162 (debug (gimple_statement_d &)): New.
21163 (debug (gimple_statement_d *)): New.
21164 * gimple-pretty-print.h
21165 (extern debug (gimple_statement_d &)): New.
21166 (extern debug (gimple_statement_d *)): New.
21167 * ira-build.c
21168 (debug (ira_allocno_copy &)): New.
21169 (debug (ira_allocno_copy *)): New.
21170 (debug (ira_allocno &)): New.
21171 (debug (ira_allocno *)): New.
21172 * ira-int.h
21173 (extern debug (ira_allocno_copy &)): New.
21174 (extern debug (ira_allocno_copy *)): New.
21175 (extern debug (ira_allocno &)): New.
21176 (extern debug (ira_allocno *)): New.
21177 * ira-lives.c
21178 (debug (live_range &)): New.
21179 (debug (live_range *)): New.
21180 * lra-int.h
21181 (debug (lra_live_range &)): New.
21182 (debug (lra_live_range *)): New.
21183 * lra-lives.c
21184 (debug (lra_live_range &)): New.
21185 (debug (lra_live_range *)): New.
21186 * omega.c
21187 (debug (omega_pb_d &)): New.
21188 (debug (omega_pb_d *)): New.
21189 * omega.h
21190 (extern debug (omega_pb_d &)): New.
21191 (extern debug (omega_pb_d *)): New.
21192 * print-rtl.c
21193 (debug (const rtx_def &)): New.
21194 (debug (const rtx_def *)): New.
21195 * print-tree.c
21196 (debug_tree (tree): Move within file.
21197 (debug_raw (const tree_node &)): New.
21198 (debug_raw (const tree_node *)): New.
21199 (dump_tree_via_hooks (const tree_node *, int)): New.
21200 (debug (const tree_node &)): New.
21201 (debug (const tree_node *)): New.
21202 (debug_verbose (const tree_node &)): New.
21203 (debug_verbose (const tree_node *)): New.
21204 (debug_head (const tree_node &)): New.
21205 (debug_head (const tree_node *)): New.
21206 (debug_body (const tree_node &)): New.
21207 (debug_body (const tree_node *)): New.
21208 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21209 (debug (vec<tree, va_gc> &)): New.
21210 (debug (vec<tree, va_gc> *)): New.
21211 * rtl.h
21212 (extern debug (const rtx_def &)): New.
21213 (extern debug (const rtx_def *)): New.
21214 * sbitmap.c
21215 (debug_raw (simple_bitmap_def &)): New.
21216 (debug_raw (simple_bitmap_def *)): New.
21217 (debug (simple_bitmap_def &)): New.
21218 (debug (simple_bitmap_def *)): New.
21219 * sbitmap.h
21220 (extern debug (simple_bitmap_def &)): New.
21221 (extern debug (simple_bitmap_def *)): New.
21222 (extern debug_raw (simple_bitmap_def &)): New.
21223 (extern debug_raw (simple_bitmap_def *)): New.
21224 * sel-sched-dump.c
21225 (debug (vinsn_def &)): New.
21226 (debug (vinsn_def *)): New.
21227 (debug_verbose (vinsn_def &)): New.
21228 (debug_verbose (vinsn_def *)): New.
21229 (debug (expr_def &)): New.
21230 (debug (expr_def *)): New.
21231 (debug_verbose (expr_def &)): New.
21232 (debug_verbose (expr_def *)): New.
21233 (debug (vec<rtx> &)): New.
21234 (debug (vec<rtx> *)): New.
21235 * sel-sched-dump.h
21236 (extern debug (vinsn_def &)): New.
21237 (extern debug (vinsn_def *)): New.
21238 (extern debug_verbose (vinsn_def &)): New.
21239 (extern debug_verbose (vinsn_def *)): New.
21240 (extern debug (expr_def &)): New.
21241 (extern debug (expr_def *)): New.
21242 (extern debug_verbose (expr_def &)): New.
21243 (extern debug_verbose (expr_def *)): New.
21244 (extern debug (vec<rtx> &)): New.
21245 (extern debug (vec<rtx> *)): New.
21246 * sel-sched-ir.h
21247 (_list_iter_cond_expr): Make inline instead of static.
21248 * sreal.c
21249 (debug (sreal &)): New.
21250 (debug (sreal *)): New.
21251 * sreal.h
21252 (extern debug (sreal &)): New.
21253 (extern debug (sreal *)): New.
21254 * tree.h
21255 (extern debug_raw (const tree_node &)): New.
21256 (extern debug_raw (const tree_node *)): New.
21257 (extern debug (const tree_node &)): New.
21258 (extern debug (const tree_node *)): New.
21259 (extern debug_verbose (const tree_node &)): New.
21260 (extern debug_verbose (const tree_node *)): New.
21261 (extern debug_head (const tree_node &)): New.
21262 (extern debug_head (const tree_node *)): New.
21263 (extern debug_body (const tree_node &)): New.
21264 (extern debug_body (const tree_node *)): New.
21265 (extern debug (vec<tree, va_gc> &)): New.
21266 (extern debug (vec<tree, va_gc> *)): New.
21267 * tree-cfg.c
21268 (debug (struct loop &)): New.
21269 (debug (struct loop *)): New.
21270 (debug_verbose (struct loop &)): New.
21271 (debug_verbose (struct loop *)): New.
21272 * tree-dump.c: Add header dependence.
21273 * tree-flow.h
21274 (extern debug (struct loop &)): New.
21275 (extern debug (struct loop *)): New.
21276 (extern debug_verbose (struct loop &)): New.
21277 (extern debug_verbose (struct loop *)): New.
21278 * tree-data-ref.c
21279 (debug (data_reference &)): New.
21280 (debug (data_reference *)): New.
21281 (debug (vec<data_reference_p> &)): New.
21282 (debug (vec<data_reference_p> *)): New.
21283 (debug (vec<ddr_p> &)): New.
21284 (debug (vec<ddr_p> *)): New.
21285 * tree-data-ref.h
21286 (extern debug (data_reference &)): New.
21287 (extern debug (data_reference *)): New.
21288 (extern debug (vec<data_reference_p> &)): New.
21289 (extern debug (vec<data_reference_p> *)): New.
21290 (extern debug (vec<ddr_p> &)): New.
21291 (extern debug (vec<ddr_p> *)): New.
21292 * tree-ssa-alias.c
21293 (debug (pt_solution &)): New.
21294 (debug (pt_solution *)): New.
21295 * tree-ssa-alias.h
21296 (extern debug (pt_solution &)): New.
21297 (extern debug (pt_solution *)): New.
21298 * tree-ssa-alias.c
21299 (debug (_var_map &)): New.
21300 (debug (_var_map *)): New.
21301 (debug (tree_live_info_d &)): New.
21302 (debug (tree_live_info_d *)): New.
21303 * tree-ssa-alias.h
21304 (extern debug (_var_map &)): New.
21305 (extern debug (_var_map *)): New.
21306 (extern debug (tree_live_info_d &)): New.
21307 (extern debug (tree_live_info_d *)): New.
21308
be77e1e5
JH
213092013-03-28 Jan Hubicka <jh@suse.cz>
21310
21311 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21312
777e6976
IB
213132013-03-28 Ian Bolton <ian.bolton@arm.com>
21314
21315 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21316 record only when desired or required.
21317
9cd347ae
UB
213182013-03-28 Uros Bizjak <ubizjak@gmail.com>
21319
21320 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21321 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21322
33159866 213232013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21324
21325 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21326 (*andsi3_compare0_uxtw): New pattern.
21327 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21328 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21329
89ab31c1
JH
213302013-03-28 Jan Hubicka <jh@suse.cz>
21331
21332 * data-streamer-in.c (streamer_read_gcov_count): New function.
21333 * gimple-streamer-out.c: Include value-prof.h.
21334 (output_gimple_stmt): Output histogram.
21335 (output_bb): Use streamer_write_gcov_count.
21336 * value-prof.c: Include data-streamer.h
21337 (dump_histogram_value): Add HIST_TYPE_MAX.
21338 (stream_out_histogram_value): New function.
21339 (stream_in_histogram_value): New function.
21340 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21341 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21342 * data-streamer-out.c (streamer_write_gcov_count): New function.
21343 (streamer_write_gcov_count_stream): New function.
21344 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21345 (lto_output_node): Likewise.
21346 (input_node, input_edge): Likewise.
21347 * lto-streamer-out.c (output_cfg): Update streaming.
21348 * lto-streamer-in.c (input_cfg): Likewise.
21349 * data-streamer.h (streamer_write_gcov_count,
21350 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21351 * gimple-streamer-in.c: Include value-prof.h
21352 (input_gimple_stmt): Input histograms.
21353 (input_bb): Update profile streaming.
21354
e594716a 213552013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21356
33159866 21357 * genmodes.c (emit_max_int): New function.
8697be17 21358 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21359 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21360 Added doc.
8697be17 21361 * machmode.def: Fixed comment.
89ab31c1 21362
e594716a 213632013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21364
21365 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21366 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21367
74946978
MP
213682013-03-28 Marek Polacek <polacek@redhat.com>
21369 Richard Biener <rguenther@suse.de>
21370
21371 PR tree-optimization/56695
21372 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21373 build signed result of a vector comparison.
21374 * tree-cfg.c (verify_gimple_comparison): Check that a result
21375 of a vector comparison has signed type.
21376
a64b9c26
RB
213772013-03-28 Richard Biener <rguenther@suse.de>
21378
21379 PR tree-optimization/37021
21380 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21381 do not restrict gaps between groups.
21382 * tree-vect-stmts.c (vectorizable_load): Properly account for
21383 a gap between groups.
21384
a9dc2a2f
EB
213852013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21386
21387 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21388 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21389 is not enabled.
21390
53cb97f9
GP
213912013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21392
21393 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21394 * doc/extend.texi (Named Address Spaces): Ditto.
21395 (Variable Attributes): Ditto.
21396
b802ae5c
KT
213972013-03-27 Kai Tietz <ktietz@redhat.com>
21398
eddae10a
KT
21399 * config.build: Add support for cygwin x64 target.
21400 * config.gcc: Likewise.
21401 * config.host: Likewise.
21402 * configure.ac: Likewise
21403 * configure: Regenerated.
b802ae5c 21404
371e77e3 214052013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21406
21407 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21408 * config/i386/t-cygwin-w64: New file.
21409 * config/i386/cygwin-w64.h: New file.
21410 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21411 and add support for x64-cygwin target.
21412 (CPP_SPEC): Likewise.
21413 (CXX_WRAP_SPEC_LIST): Undefine before define.
21414 (LIBGCJ_SONAME): Use 15 as version.
21415
f49b33cb
RB
214162013-03-27 Richard Biener <rguenther@suse.de>
21417
21418 PR tree-optimization/56716
21419 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21420 dumping for ref nodes.
21421
b37a6ce5
MJ
214222013-03-27 Martin Jambor <mjambor@suse.cz>
21423
21424 PR tree-optimization/55334
21425 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21426 restricted pointers to arrays.
21427
9469b9b2
GDR
214282013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21429
21430 * Makefile.in (.SUFFIXES): Add .cc.
21431 (.c.o): Apply same recipe for implicit rule .cc.o.
21432
7d24f650
RB
214332013-03-27 Richard Biener <rguenther@suse.de>
21434
21435 PR tree-optimization/37021
21436 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21437 REALPART/IMAGPART_EXPRs around the supported refs.
21438 * tree-ssa-structalias.c (find_func_aliases): Assume that
21439 floating-point values are not used to transfer pointers.
21440
2f251a05
AI
214412013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21442
f43245d1
UB
21443 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21444 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21445 * doc/tm.texi: Regenerate.
21446 * targhooks.h (default_has_ifunc_p): New.
21447 * targhooks.c (default_has_ifunc_p): Ditto.
21448 * config/linux-protos.h: New file.
21449 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21450 hook for linux which disables support of indirect functions in android.
21451 * config/linux-android.c: New file.
21452 * config/t-linux-android.c: Ditto.
21453 * config.gcc: Added new object file linux-android.o.
21454 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21455 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21456 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21457 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21458 doesn't support indirect functions.
21459 * configure: Regenerate.
21460
78b4e425
BC
214612013-03-27 Bin Cheng <bin.cheng@arm.com>
21462
21463 PR target/56102
21464 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21465 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21466 mult-word mode.
21467
a5ba7b92
AK
214682013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21469
21470 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21471
be624986
TG
214722013-03-27 Terry Guo <terry.guo@arm.com>
21473
21474 * config/arm/arm-cores.def: Added core cortex-r7.
21475 * config/arm/arm-tune.md: Regenerated.
21476 * config/arm/arm-tables.opt: Regenerated.
21477 * doc/invoke.texi: Added entry for core cortex-r7.
21478
0a514f47
WL
214792013-03-27 Walter Lee <walt@tilera.com>
21480
21481 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21482 double-decrement of next_scratch_regno.
21483
9332b0d2
WL
214842013-03-27 Walter Lee <walt@tilera.com>
21485
801d9b2a 21486 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21487 input operands.
21488 (insn_v1mulus): Ditto.
21489 (insn_v2muls): Ditto.
21490
f54ea5dd
WL
214912013-03-27 Walter Lee <walt@tilera.com>
21492
e594716a 21493 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21494 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21495
bf60f4ca
WL
214962013-03-27 Walter Lee <walt@tilera.com>
21497
e594716a 21498 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21499 (*sibcall_value): Ditto.
21500
e3b51eeb
WL
215012013-03-27 Walter Lee <walt@tilera.com>
21502
21503 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21504 (insn_mnz_v8qi): ... this ...
21505 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21506 vector equivalent.
21507 (insn_v<n>mnz): Replaced by ...
21508 (insn_v1mnz): ... this ...
21509 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21510 equivalent.
21511 (insn_mz_<mode>): Replaced by ...
21512 (insn_mz_v8qi): ... this ...
21513 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21514 vector equivalent.
21515 (insn_v<n>mz): Replaced by ...
21516 (insn_v1mz): ... this ...
21517 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21518 equivalent.
21519
4fc7b145
EB
215202013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21521
21522 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21523
6f33817e
RM
215242013-03-26 Roland McGrath <mcgrathr@google.com>
21525
21526 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21527 than fprintf with a non-constant, non-format string.
21528
93a4145b
UB
215292013-03-26 Uros Bizjak <ubizjak@gmail.com>
21530
21531 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21532 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21533 operand 0 predicate.
21534 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21535 attribute. Use general_x64nomem_operand as operand 1 predicate.
21536 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21537 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21538 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21539 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21540 (mov<mode>_insv_1): Remove expander. Merge insn with
21541 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21542 Use general_x64nomem_operand as operand 1 predicate.
21543 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21544 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21545 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21546 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21547 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21548 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21549 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21550 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21551 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21552 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21553 (general_x64nomem_operand): Ditto.
21554
c6a9ed5a 215552013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21556
21557 * config/rtems.opt: Add -pthread option.
21558
31b0a960
RB
215592013-03-26 Richard Biener <rguenther@suse.de>
21560
93a4145b
UB
21561 * alias.c (find_base_term): Avoid redundant and not used recursion.
21562 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21563 (true_dependence_1): Compute and pass base terms to base_alias_check.
21564 (write_dependence_p): Likewise.
21565 (may_alias_p): Likewise.
21566
79517551
SN
215672013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21568
21569 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21570 PC-relative load in SI modes and above only.
21571
a76213b9
XQ
215722013-03-26 Xinyu Qi <xyqi@marvell.com>
21573
21574 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21575 * config/arm/iwmmxt.md (WCGR0): Update.
21576 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21577
37ff9355
UB
215782013-03-26 Uros Bizjak <ubizjak@gmail.com>
21579
21580 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21581 Use x64 and nox64 isa attributes.
21582
30b0317c
RB
215832013-03-26 Richard Biener <rguenther@suse.de>
21584
21585 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21586 alignment computations and rely on get_object_alignment_1
21587 for the !TYPE_P case.
21588 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21589
cbcdb140
WL
215902013-03-26 Walter Lee <walt@tilera.com>
21591
21592 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21593 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21594
dd884525 215952013-03-25 Jeff Law <law@redhat.com>
be672e08 21596
33159866
UB
21597 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21598 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21599 wrong version of prior patch.
21600
0051d3ec
WL
216012013-03-25 Walter Lee <walt@tilera.com>
21602
21603 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21604 TILEGX_INSN_SHUFFLEBYTES1.
21605 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21606 shufflebytes1.
21607 (tilegx_builtins): Ditto.
21608 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21609
065a3605
WL
216102013-03-25 Walter Lee <walt@tilera.com>
21611
21612 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21613 (floatunssisf2): New pattern.
21614 (floatsidf2): New pattern.
21615 (floatunssidf2): New pattern.
065a3605 21616
5b2a3c82
WL
216172013-03-25 Walter Lee <walt@tilera.com>
21618
21619 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21620 tests for constraint J, K, N, P.
21621
192ea533
WL
216222013-03-25 Walter Lee <walt@tilera.com>
21623
21624 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21625 Use indirect/pcrel encoding.
21626 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21627 Ditto.
21628
855e0d0b
SE
216292013-03-25 Steve Ellcey <sellcey@mips.com>
21630
21631 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21632 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21633 * config/mips/mips.c (mips_option_override): Set IMADD default.
21634 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21635 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21636 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21637 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21638 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21639
39e45653
JL
216402013-03-25 Jeff Law <law@redhat.com>
21641
21642 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21643 slightly to avoid creating and folding useless trees. Simplify
21644 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21645
7482c470
UB
216462013-03-25 Uros Bizjak <ubizjak@gmail.com>
21647
21648 * config/i386/i386.md (*zero_extendsidi2): Merge with
21649 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21650 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21651 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21652 targets. Clarify comment.
21653
4a53743e
MJ
216542013-03-25 Martin Jambor <mjambor@suse.cz>
21655
21656 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21657 pass-through jump functions differently.
21658 (ipa_read_jump_function): Likewise. Also use setter functions to set
21659 up jump functions.
21660
162712de
MJ
216612013-03-25 Martin Jambor <mjambor@suse.cz>
21662
21663 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21664 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21665 process it.
21666 (ipa_get_indirect_edge_target): New function.
21667 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21668 ipa_get_indirect_edge_target. Update all callers.
21669 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21670 ipa_get_indirect_edge_target_1 instead of calling
21671 ipa_get_indirect_edge_target.
21672 (create_specialized_node): Pass aggvlas to
21673 ipcp_discover_new_direct_edges.
21674
a5a4c20a
KT
216752013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21676
21677 * config/arm/arm.md (f_sels, f_seld): New types.
21678 (*cmov<mode>): New pattern.
21679 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21680 predicate.
21681
f992b9fc
KT
216822013-03-25 Kai Tietz <ktietz@redhat.com>
21683
21684 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21685 POSIX-printf for mingw-hosted builds.
21686
c16fd676
RB
216872013-03-25 Richard Biener <rguenther@suse.de>
21688
21689 PR middle-end/56694
21690 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21691 must-not-throw stmt location.
21692
5ad29f12
KT
216932013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21694
21695 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21696 Emit load-acquire versions when acq is true.
21697 (arm_emit_store_exclusive): Add rel parameter.
21698 Emit store-release versions when rel is true.
21699 (arm_split_compare_and_swap): Use acquire-release instructions
21700 instead.
21701 of barriers when appropriate.
21702 (arm_split_atomic_op): Likewise.
21703 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21704 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21705 (VUNSPEC_SLX): Likewise.
21706 (VUNSPEC_LDA): Likewise.
21707 (VUNSPEC_STL): Likewise.
21708 * config/arm/sync.md (atomic_load<mode>): New pattern.
21709 (atomic_store<mode>): Likewise.
21710 (arm_load_acquire_exclusive<mode>): Likewise.
21711 (arm_load_acquire_exclusivesi): Likewise.
21712 (arm_load_acquire_exclusivedi): Likewise.
21713 (arm_store_release_exclusive<mode>): Likewise.
21714
03a7dddb
CM
217152013-03-25 Catherine Moore <clm@codesourcery.com>
21716
21717 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21718 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21719 * config/mip/predicates.md (lwsp_swsp_operand,
21720 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21721 sb16_operand, db4_operand, db7_operand, ib3_operand,
21722 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21723 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21724 andi16_operand): New predicates.
21725 * config/mips/mips.md (compression): New attribute.
21726 (enabled): New attribute.
21727 (length): Consider compression in computing length.
21728 (shift_compression): New code attribute.
21729 (*add<mode>3): New operands. Record compression.
21730 (sub<mode>3): Likewise.
21731 (one_cmpl<mode>2): Likewise.
21732 (*and<mode>3): Likewise.
21733 (*ior<mode>3): Likewise.
21734 (unnamed pattern for xor): Likewise.
21735 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21736 (*<optab><mode>3): Likewise.
21737 (*mov<mode>_internal: Likewise.
21738 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21739 (mips_unsigned_immediate_p): New.
21740 (umips_lwsp_swsp_address_p): New.
21741 (m16_based_address_p): New.
21742 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21743 (mips_unsigned_immediate_p): New prototype.
21744 (lwsp_swsp_address_p): New prototype.
21745 (m16_based_address_p): New prototype.
21746 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21747 (mips_signed_immediate_p): New function.
21748 (m16_based_address_p): New function.
21749 (lwsp_swsp_address_p): New function.
21750 (mips_print_operand_punctuation): Recognize short delay slot insns
21751 for microMIPS.add<mode>3"
21752
f35c297f 217532013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21754
f35c297f
KT
21755 PR target/56720
21756 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21757 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21758
051b9446
RB
217592013-03-25 Richard Biener <rguenther@suse.de>
21760
21761 PR tree-optimization/56689
21762 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21763 any edge.
21764
374001cb
RB
217652013-03-25 Richard Biener <rguenther@suse.de>
21766
21767 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21768 of bitmap.
21769 (memory_references): Likewise.
21770 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21771 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21772 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21773 (gather_mem_refs_in_loops): Fold into ...
21774 (analyze_memory_references): ... this. Move initialization
21775 to tree_ssa_lim_initialize.
21776 (fill_always_executed_in): Rename to ...
21777 (fill_always_executed_in_1): ... this.
21778 (fill_always_executed_in): Move contains_call computation to
21779 this new function from ...
21780 (tree_ssa_lim_initialize): ... here.
21781 (tree_ssa_lim): Call fill_always_executed_in.
21782
57895947
EB
217832013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21784
21785 * postreload.c (reload_combine): Fix code detecting returns.
21786
1e1b18c1
EB
217872013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21788
21789 * function.c (emit_use_return_register_into_block): On cc0 targets,
21790 do not emit the sequence between cc0 setter and user.
21791
9216baf1
KT
217922013-03-25 Kai Tietz <ktietz@redhat.com>
21793
1e1b18c1
EB
21794 * config/i386/predicates.md (local_symbolic_operand): Interpret
21795 dll-imported symbols as none-local.
9216baf1 21796
76421b44
RB
217972013-03-25 Richard Biener <rguenther@suse.de>
21798
21799 * tree-ssa-loop-im.c (struct depend): Remove.
21800 (struct lim_aux_data): Make depends a vec of gimples.
21801 (free_lim_aux_data): Adjust.
21802 (add_dependency): Likewise.
21803 (set_level): Likewise.
21804
d154bfa2
RB
218052013-03-25 Richard Biener <rguenther@suse.de>
21806
21807 PR middle-end/56434
21808 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21809 the pointer returned by calls with ECF_MALLOC set.
21810
2cd9804e
UB
218112013-03-24 Uros Bizjak <ubizjak@gmail.com>
21812
acef5fe0
UB
21813 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21814
218152013-03-24 Uros Bizjak <ubizjak@gmail.com>
21816
21817 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
21818 using MMXMODE mode iterator.
21819 (*move<mode>_internal): Merge with *movv2sf_internal and
21820 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21821
225ccc68
SB
218222013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21823
85c0f02d
SB
21824 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21825 (record_last_mem_set_info): Likewise.
21826
225ccc68
SB
21827 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21828 of XNEWVEC followed by memset.
21829 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21830
b64925dc
SB
218312013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21832
21833 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21834 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21835 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21836 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21837 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21838 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
21839 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
21840 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
21841 BARRIER_P instead of GET_CODE.
21842
b9aaf52e
EB
218432013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21844
21845 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
21846 inaccuracy in the probing code.
21847
21848 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
21849 (ctrapdi4): Likewise.
21850
66de4d7c
EB
218512013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21852
21853 * calls.c (expand_call): Add missing guard to code handling return
21854 of non-BLKmode structures in MSB.
21855 * function.c (expand_function_end): Likewise.
21856
4f25c8fb
EB
218572013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21858
21859 * combine.c (try_combine): Adjust comment. Do not add the set of
21860 insn #0 if the destination indirectly is set or dies in insn #2.
21861 Tidy up code to distribute a new note.
21862
23b7850d
UB
218632013-03-22 Uros Bizjak <ubizjak@gmail.com>
21864
21865 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
21866 also for alternatives 16 and 17.
21867
bed852cf
UB
218682013-03-22 Uros Bizjak <ubizjak@gmail.com>
21869
21870 * config/i386/sse.md (*mov<mode>_internal): Merge with
21871 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
21872 Emit insn template depending on type attribute. Use
21873 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21874 movd instead of movq mnemonic for interunit moves. Rewrite mode
21875 attribute calculation. Remove unit attribute calculation.
21876 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
21877 Set prefix_data16 attribute for DImode ssemov types.
21878 Use Ym instead of y for SSE-MMX conversion alternatives.
21879 Reorder operand constraints.
21880
1e8a7937
SB
218812013-03-22 Steven Bosscher <steven@gcc.gnu.org>
21882
21883 * df.h (df_insn_delete): Adjust prototype.
21884 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
21885 and let it decide whether mark the basic block dirty.
21886 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
21887 * df-scan.c (df_insn_info_delete): New helper function, split
21888 off from df_insn_delete.
21889 (df_scan_free_bb_info): Use it.
21890 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
21891 Likewise.
21892 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
21893 that the insn is actually an insn and it has a non-NULL basic block.
21894 Do not mark basic block dirty if only deleting a DEBUG_INSN.
21895
e14d094c
RB
218962013-03-22 Richard Biener <rguenther@suse.de>
21897
21898 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
21899 dep_ref members.
21900 (mem_ref_alloc): Do not allocate them.
21901 (refs_independent_p): Do not query or maintain a cache.
21902
e9cf7316
RB
219032013-03-22 Richard Biener <rguenther@suse.de>
21904
21905 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
21906 (gather_mem_refs_in_loops): Do not compute it.
21907 (analyze_memory_references): Do not allocate it.
21908 (tree_ssa_lim_finalize): Do not free it.
21909 (for_all_locs_in_loop): Do not query all_refs_in_loop.
21910
f046e81b
RB
219112013-03-22 Richard Biener <rguenther@suse.de>
21912
21913 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 21914
a05c0ddf
IB
219152013-03-22 Ian Bolton <ian.bolton@arm.com>
21916
21917 * config/aarch64/aarch64.c (aarch64_print_operand): New
21918 format specifier for printing a constant in hex.
21919 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
21920 format specifier for printing second operand.
21921
c00217fc
RB
219222013-03-22 Richard Biener <rguenther@suse.de>
21923
21924 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
21925 bitmaps.
21926 (gather_mem_refs_in_loops): Perform store accumulation here.
21927 (create_vop_ref_mapping_loop): Remove.
21928 (create_vop_ref_mapping): Likewise.
21929 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 21930 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
21931 (record_indep_loop): Remove.
21932 (record_dep_loop): New function.
21933 (ref_indep_loop_p_1): Adjust to only walk over references
21934 in the loop, not its subloops.
21935 (ref_indep_loop_p): Rename to ...
21936 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
21937 maintaining a more fine-grained cache.
21938 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
21939 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
21940
15d19bf8
RB
219412013-03-22 Richard Biener <rguenther@suse.de>
21942
21943 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
21944 (struct mem_ref): Make accesses_in_loop a vec of a vec of
21945 aggregate mem_ref_loc.
21946 (free_mem_ref_locs): Inline into ...
21947 (memref_free): ... this and adjust.
21948 (mem_ref_alloc): Adjust.
21949 (mem_ref_locs_alloc): Remove.
21950 (record_mem_ref_loc): Adjust.
21951 (get_all_locs_in_loop): Rewrite into ...
21952 (for_all_locs_in_loop): ... this iterator.
21953 (rewrite_mem_ref_loc): New functor.
21954 (rewrite_mem_refs): Use for_all_locs_in_loop.
21955 (sm_set_flag_if_changed): New functor.
21956 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
21957 (ref_always_accessed): New functor.
21958 (ref_always_accessed_p): Use for_all_locs_in_loop.
21959
6f37411d
MG
219602013-03-21 Marc Glisse <marc.glisse@inria.fr>
21961
21962 * tree-pass.h (PROP_gimple_lvec): New.
21963 * passes.c (dump_properties): Handle PROP_gimple_lvec.
21964 (init_optimization_passes): Move pass_lower_vector.
21965 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
21966 PROP_gimple_lvec.
21967 (pass_lower_vector): Provide PROP_gimple_lvec.
21968 (pass_lower_vector_ssa): Likewise.
21969 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
21970
511ef689
MW
219712013-03-21 Mark Wielaard <mjw@redhat.com>
21972
21973 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
21974
cc1df30b
UB
219752013-03-21 Uros Bizjak <ubizjak@gmail.com>
21976
21977 * config/i386/i386.md (*movdi_internal): Disparage slightly
21978 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
21979 conversion alternatives.
21980
c845cfe1
JJ
219812013-03-21 Jakub Jelinek <jakub@redhat.com>
21982
37e99116
JJ
21983 PR middle-end/48087
21984 * diagnostic.def (DK_WERROR): New kind.
21985 * diagnostic.h (werrorcount): Define.
21986 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
21987 promoted to DK_ERROR, increment DK_WERROR counter instead of
21988 DK_ERROR counter.
21989 * toplev.c (toplev_main): Call print_ignored_options even if
21990 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
21991 even if just werrorcount is non-zero.
21992
c845cfe1
JJ
21993 PR debug/55608
21994 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
21995 on failure.
21996 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
21997 (string_cst_pool_decl): New function.
21998 (optimize_one_addr_into_implicit_ptr): New function.
21999 (resolve_addr_in_expr): Optimize DWARF location expression
22000 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
22001 which doesn't live in memory, but has DW_AT_location or
22002 DW_AT_const_value, or refers to a string literal, into
22003 DW_OP_GNU_implicit_pointer.
22004 (optimize_location_into_implicit_ptr): New function.
22005 (resolve_addr): If removing DW_AT_location of a variable because
22006 it was DW_OP_addr of address of the variable, but the variable doesn't
22007 live in memory, try to emit const value attribute for the initializer.
22008
08e0cda6
MG
220092013-03-21 Marc Glisse <marc.glisse@inria.fr>
22010
22011 * tree.h (VECTOR_TYPE_P): New macro.
22012 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
22013 TYPE_MODE): Use it.
22014 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
22015 VEC_COND_EXPR cannot be lvalues.
22016 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
22017
d08633b4
MG
220182013-03-21 Marc Glisse <marc.glisse@inria.fr>
22019
22020 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
22021 Restrict the transformation to equal modes.
22022
e6647190
RB
220232013-03-21 Richard Biener <rguenther@suse.de>
22024
22025 PR tree-optimization/39326
22026 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
22027 (MEM_ANALYZABLE): Adjust.
22028 (record_mem_ref_loc): Move bitmap ops ...
22029 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
22030 unanalyzable refs, do not record locations for it.
22031 (analyze_memory_references): Allocate ref zero as shared
22032 unanalyzable ref.
22033 (refs_independent_p): Do not test for unanalyzed mems here.
22034 (ref_indep_loop_p_1): Special-case disambiguation against
22035 the unanalyzed ref.
cc1df30b 22036 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 22037
65074f54
CL
220382013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
22039
22040 * config/arm/arm-protos.h (tune_params): Add
22041 prefer_neon_for_64bits field.
22042 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
22043 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
22044 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22045 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22046 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
22047 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22048 (arm_option_override): Handle -mneon-for-64bits new option.
22049 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
22050 (prefer_neon_for_64bits): Declare new variable.
22051 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 22052 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
22053 (arch_enabled): Handle new arch types. Remove support for onlya8
22054 and nota8.
22055 (one_cmpldi2): Use new arch names.
bc5faa5b 22056 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
22057 * config/arm/arm.opt (mneon-for-64bits): Add option.
22058 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
22059 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
22060 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
22061 of onlya8.
22062 * doc/invoke.texi (-mneon-for-64bits): Document.
22063
5a2d2a79
RB
220642013-03-21 Richard Biener <rguenther@suse.de>
22065
22066 PR tree-optimization/39326
22067 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
22068 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 22069 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 22070
5abe1e05
RB
220712013-03-21 Richard Biener <rguenther@suse.de>
22072
22073 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
22074 (vect_insert_into_interleaving_chain): Likewise.
22075 (vect_drs_dependent_in_basic_block): Inline ...
22076 (vect_slp_analyze_data_ref_dependence): ... here. New function,
22077 split out from ...
22078 (vect_analyze_data_ref_dependence): ... here. Simplify.
22079 (vect_check_interleaving): Simplify.
22080 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22081 (vect_slp_analyze_data_ref_dependences): ... this new function.
22082 (dr_group_sort_cmp): New function.
22083 (vect_analyze_data_ref_accesses): Compute data-reference groups
22084 here instead of in vect_analyze_data_ref_dependence. Use
22085 a more efficient algorithm.
22086 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22087 vect_slp_analyze_data_ref_dependences. Call
22088 vect_analyze_data_ref_accesses earlier.
22089 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22090 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22091 (vect_slp_analyze_data_ref_dependences): New prototype.
22092
cad1735b
RB
220932013-03-21 Richard Biener <rguenther@suse.de>
22094
22095 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22096 ref is stored in the loop.
22097 (find_refs_for_sm): Walk only over all stores.
22098 (store_motion_loop): Allocate from lim_bitmap_obstack.
22099 (store_motion): Likewise.
22100
141310ef
RB
221012013-03-21 Richard Biener <rguenther@suse.de>
22102
22103 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22104 Update virtual SSA form.
22105
5022315a
RO
221062013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22107
22108 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22109 * configure: Regenerate.
22110 * config.in: Regenerate.
22111 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22112 if !HAVE_LD_EH_FRAME_CIEV3.
22113
50d4421c
RB
221142013-03-21 Richard Biener <rguenther@suse.de>
22115
22116 * tree-cfg.c (verify_expr_no_block): New function.
22117 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22118 nor DECL_VALUE_EXPR have locations with associated blocks.
22119 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22120 (clear_unused_block_pointer): Remove code dealing with
22121 blocks in DECL_DEBUG_EXPR locations.
22122
839b422f
RB
221232013-03-21 Richard Biener <rguenther@suse.de>
22124
22125 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22126 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22127 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22128 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22129 instead of DECL_DEBUG_EXPR_IS_FROM.
22130 * gimplify.c (gimplify_modify_expr): Likewise.
22131 * tree-cfg.c (verify_expr_location_1): Likewise.
22132 * tree-complex.c (create_one_component_var): Likewise.
22133 * tree-sra.c (create_access_replacement): Likewise.
22134 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22135 (clear_unused_block_pointer): Likewise.
22136 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22137 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22138 * var-tracking.c (var_debug_decl): Likewise.
22139 (track_expr_p): Likewise.
22140 * tree-inline.c (add_local_variables): Likewise. Set
22141 DECL_HAS_DEBUG_EXPR_P after copying it.
22142 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22143 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22144
fe04878d
UB
221452013-03-21 Uros Bizjak <ubizjak@gmail.com>
22146
22147 PR bootstrap/56656
22148 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22149 * configure: Regenerate.
22150 * config.in: Regenerate.
22151 * config/i386/i386.md (*movdf_internal): Use
22152 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22153 movd instead of movq mnemonic for interunit moves.
22154 (*movdi_internal): Ditto.
22155
bd059b26 221562013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22157
22158 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22159 (abd<mode>_3): New pattern.
22160 (aba<mode>_3): New pattern.
22161 (fabd<mode>_3): New pattern.
22162
bd059b26 221632013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22164
22165 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22166 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22167 occurrence of REGISTER_PREFIX as its empty string.
22168
4f1f78b9
JL
221692013-03-20 Jeff Law <law@redhat.com>
22170
22171 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22172 addititional equivalences for equality comparisons between an SSA_NAME
22173 and a constant where the SSA_NAME was set from a widening conversion.
22174
327a1118
WL
221752013-03-20 Walter Lee <walt@tilera.com>
22176
22177 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22178
813e0036
UB
221792013-03-20 Uros Bizjak <ubizjak@gmail.com>
22180
22181 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22182 depending on type attribute.
22183 (*movti_internal): Ditto.
22184 (*movtf_internal): Ditto.
22185 (*movxf_internal): Ditto.
22186 (*movdf_internal): Ditto.
22187 (*movsf_internal): Ditto.
22188
7cf34aae
UB
221892013-03-20 Uros Bizjak <ubizjak@gmail.com>
22190
22191 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22192 maybe_vex for sselog1 and ssemov types.
22193 (*movdi_internal): Reorder operand constraints.
22194 (*movsi_internal): Ditto. Set prefix attribute to
22195 maybe_vex for sselog1 and ssemov types.
22196 (*movtf_internal): Set prefix attribute to maybe_vex
22197 for sselog1 and ssemov types.
22198 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22199 DImode ssemov types. Reorder operand constraints.
22200 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22201 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22202 attribute for SImode ssemov types. Reorder operand constraints.
22203
19321415
MJ
222042013-03-20 Martin Jambor <mjambor@suse.cz>
22205
22206 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22207 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22208
12211b99 222092013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22210
22211 * config/rs6000/predicates.md (indexed_address, update_address_mem
22212 update_indexed_address_mem): New predicates.
22213 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22214 attribute for load/store instructions.
22215 * config/rs6000/dfp.md (movsd_store): Likewise.
22216 (movsd_load): Likewise.
22217 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22218 (unnamed HI->DI extend define_insn): Likewise.
22219 (unnamed SI->DI extend define_insn): Likewise.
22220 (unnamed QI->SI extend define_insn): Likewise.
22221 (unnamed QI->HI extend define_insn): Likewise.
22222 (unnamed HI->SI extend define_insn): Likewise.
22223 (unnamed HI->SI extend define_insn): Likewise.
22224 (extendsfdf2_fpr): Likewise.
22225 (movsi_internal1): Likewise.
22226 (movsi_internal1_single): Likewise.
22227 (movhi_internal): Likewise.
22228 (movqi_internal): Likewise.
22229 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22230 attribute for load/store instructions.
22231 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22232 instructions.
22233 (mov<mode>_softfloat): Likewise.
22234 (mov<mode>_hardfloat32): Likewise.
22235 (mov<mode>_hardfloat64): Likewise.
22236 (mov<mode>_softfloat64): Likewise.
22237 (movdi_internal32): Likewise.
22238 (movdi_internal64): Likewise.
22239 (probe_stack_<mode>): Likewise.
22240
222412013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22242
22243 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22244 floating point, and decimal floating point to reload iterator.
22245
22246 * config/rs6000/constraints.md (wl constraint): New constraints to
22247 return FLOAT_REGS if certain options are used to reduce the number
22248 of separate patterns that exist in the file.
22249 (wx constraint): Likewise.
22250 (wz constraint): Likewise.
22251
22252 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22253 -mdebug=reg, print wg, wl, wx, and wz constraints.
22254 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22255 Initialize the reload functions for 64-bit binary/decimal floating
22256 point types.
22257 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22258 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22259 create the buffer on the stack to overcome not having a 32-bit
22260 load and store.
22261 (rs6000_emit_move): Likewise.
22262 (rs6000_secondary_memory_needed_rtx): Likewise.
22263 (rs6000_alloc_sdmode_stack_slot): Likewise.
22264 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22265 via xxlxor, just like DFmode 0.0.
22266
22267 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22268 define as 1 if we are running on a power7 or newer.
22269 (enum r6000_reg_class_enum): Add new constraints.
22270
22271 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22272 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22273 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22274 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22275 (movsd splitter): Likewise.
22276 (movsd_hardfloat): Likewise.
22277 (movsd_softfloat): Likewise.
22278
22279 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22280 binary and decimal floating point moves.
22281 (fmove_ok): New attributes to combine binary and decimal floating
22282 point moves, and to combine power6x (mfpgpr) moves along normal
22283 floating moves.
22284 (real_value_to_target): Likewise.
22285 (f32_lr): Likewise.
22286 (f32_lm): Likewise.
22287 (f32_li): Likewise.
22288 (f32_sr): Likewise.
22289 (f32_sm): Likewise.
22290 (f32_si): Likewise.
22291 (movsf): Combine binary and decimal floating point moves. Combine
22292 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22293 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22294 (mov<mode> for SFmode/SDmode); Likewise.
22295 (SFmode/SDmode splitters): Likewise.
22296 (movsf_hardfloat): Likewise.
22297 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22298 (movsf_softfloat): Likewise.
22299 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22300
22301 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22302 wx and wz constraints.
22303
22304 * config/rs6000/constraints.md (wg constraint): New constraint to
22305 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22306
22307 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22308 constraint.
22309
22310 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22311 -mdebug=reg, print wg, wl, wx, and wz constraints.
22312 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22313 Initialize the reload functions for 64-bit binary/decimal floating
22314 point types.
22315 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22316 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22317 create the buffer on the stack to overcome not having a 32-bit
22318 load and store.
22319 (rs6000_emit_move): Likewise.
22320 (rs6000_secondary_memory_needed_rtx): Likewise.
22321 (rs6000_alloc_sdmode_stack_slot): Likewise.
22322 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22323 via xxlxor, just like DFmode 0.0.
22324
c6d5ff83
MM
22325 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22326 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22327 with other moves by using conditional constraits (wg). Use LFIWZX
22328 and STFIWX for loading SDmode on power7.
22329 (movdd splitters): Likewise.
22330 (movdd_hardfloat32): Likewise.
22331 (movdd_softfloat32): Likewise.
22332 (movdd_hardfloat64_mfpgpr): Likewise.
22333 (movdd_hardfloat64): Likewise.
22334 (movdd_softfloat64): Likewise.
22335
22336 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22337 64-bit binary and decimal floating point moves.
22338 (FMOVE64X): Likewise.
22339 (movdf): Combine 64-bit binary and decimal floating point moves.
22340 Combine power6x (mfpgpr) moves with other moves by using
22341 conditional constraits (wg).
22342 (mov<mode> for DFmode/DDmode): Likewise.
22343 (DFmode/DDmode splitters): Likewise.
22344 (movdf_hardfloat32): Likewise.
22345 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22346 (movdf_softfloat32): Likewise.
22347 (movdf_hardfloat64_mfpgpr): Likewise.
22348 (movdf_hardfloat64): Likewise.
22349 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22350 (movdf_softfloat64): Likewise.
22351 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22352 (reload_<mode>_load): Move to later in the file so they aren't in
22353 the middle of the floating point move insns.
22354 (reload_<mode>_store): Likewise.
22355
22356 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22357 constraint.
22358
22359 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22360 constraint if -mdebug=reg.
bd059b26
UB
22361 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22362 Enable using dd reload support if needed.
c6d5ff83
MM
22363
22364 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22365 binary and decimal floating point moves in rs6000.md.
22366 (movtd_internal): Likewise.
22367
22368 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22369 decimal floating point moves.
22370 (movtf): Likewise.
22371 (movtf_internal): Likewise.
22372 (mov<mode>_internal, TDmode/TFmode): Likewise.
22373 (movtf_softfloat): Likewise.
22374 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22375
22376 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22377 movdi_internal64, using wg constraint for move direct operations.
22378 (movdi_internal64): Likewise.
22379
22380 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22381 MODES_TIEABLE_P for selected modes. Print the numerical value of
22382 the various virtual registers. Use GPR/FPR first/last values,
22383 instead of hard coding the register numbers. Print which modes
22384 have reload functions registered.
bd059b26
UB
22385 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22386 settings before/after setting cpu, target and subtarget settings.
22387 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22388 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22389 (rs6000_secondary_reload_fail): Likewise.
22390 (rs6000_secondary_reload_inner): Likewise.
22391
22392 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22393 macros for first/last GPR and FPR registers.
22394 (LAST_GPR_REGNO): Likewise.
22395 (FIRST_FPR_REGNO): Likewise.
22396 (LAST_FPR_REGNO): Likewise.
22397
22398 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22399 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22400 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22401 (vcond<mode><mode>): Likewise.
22402 (vcondu<mode><mode>): Likewise.
22403 (vector_gtu<mode>): Likewise.
22404 (vector_gte<mode>): Likewise.
22405 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22406 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22407 (ior<mode>3): Likewise.
22408 (and<mode>3): Likewise.
22409 (one_cmpl<mode>2): Likewise.
22410 (nor<mode>3): Likewise.
22411 (andc<mode>3): Likewise.
22412
22413 * config/rs6000/constraints.md (wt constraint): New constraint
22414 that returns VSX_REGS if TImode is allowed in VSX registers.
22415
22416 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22417 constant under VSX.
22418
22419 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22420 similar to TImode, but it is restricted to being in the GPRs.
22421
22422 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22423 TImode to occupy a single VSX register.
22424
22425 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22426 -mvsx-timode for power7/power8.
22427 (power7 cpu): Likewise.
22428 (power8 cpu): Likewise.
22429
22430 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22431 sure that TFmode/TDmode take up two registers if they are ever
22432 allowed in the upper VSX registers.
22433 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22434 registers.
22435 (rs6000_init_hard_regno_mode_ok): Likewise.
22436 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22437 constraint. Print if LRA is turned on.
22438 (rs6000_option_override_internal): Give an error if -mvsx-timode
22439 and VSX is not enabled.
22440 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22441 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22442 to reg+offset addressing. Use PTImode when checking offset
22443 addresses for validity.
22444 (reg_offset_addressing_ok_p): Likewise.
22445 (rs6000_legitimate_offset_address_p): Likewise.
22446 (rs6000_legitimize_address): Likewise.
22447 (rs6000_legitimize_reload_address): Likewise.
22448 (rs6000_legitimate_address_p): Likewise.
22449 (rs6000_eliminate_indexed_memrefs): Likewise.
22450 (rs6000_emit_move): Likewise.
22451 (rs6000_secondary_reload): Likewise.
22452 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22453 reloads to fpr registers to continue to use reg+offset addressing,
22454 but 64-bit reloads to altivec registers need reg+reg addressing.
22455 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22456 it. Treat LO_SUM like a PLUS operation.
22457 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22458 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22459 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22460 registers to share a register with a smaller sized type, since VSX
22461 puts scalars in the upper 64-bits.
22462 (print_operand): Add support for PTImode.
22463 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22464 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22465 registers, but don't have arithmetic support.
22466 (rs6000_memory_move_cost): Add test for VSX.
22467 (rs6000_opt_masks): Add -mvsx-timode.
22468
22469 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22470 for TImode.
22471 (VSs): Likewise.
22472 (VSr): Use wt constraint for TImode.
22473 (VSv): Drop TImode support.
22474 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22475 (vsx_movti_64bit): Likewise.
22476 (vsx_movti_32bit): Likewise.
22477 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22478 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22479 one '?' on the appropriate output constraint. Do not allow TImode
22480 logical operations on 32-bit systems.
22481 (vsx_ior<mode>3): Likewise.
22482 (vsx_xor<mode>3): Likewise.
22483 (vsx_one_cmpl<mode>2): Likewise.
22484 (vsx_nor<mode>3): Likewise.
22485 (vsx_andc<mode>3): Likewise.
22486 (vsx_concat_<mode>): Likewise.
22487 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22488
22489 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22490 OPTION_MASK_VSX_TIMODE.
22491 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22492 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22493
22494 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22495 (TI2 iterator): New iterator for TImode, PTImode.
22496 (wd mode attribute): Add values for vector types.
bd059b26
UB
22497 (movti_string): Replace TI move operations with operations for TImode
22498 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22499 (mov<mode>_string, TImode/PTImode): Likewise.
22500 (movti_ppc64): Likewise.
22501 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22502 (TI mode splitters): Likewise.
22503
22504 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22505 constraint.
22506
1fc5eced
MG
225072013-03-20 Marc Glisse <marc.glisse@inria.fr>
22508
22509 PR tree-optimization/56355
22510 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22511 Also handle integers with undefined overflow.
22512
22c4c869
CM
225132013-03-20 Catherine Moore <clm@codesourcery.com>
22514 Maciej W. Rozycki <macro@codesourcery.com>
22515 Tom de Vries <tom@codesourcery.com>
12211b99 22516 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22517 Iain Sandoe <iain@codesourcery.com>
22518 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22519 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22520
22521 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22522 Document new function attributes.
22c4c869
CM
22523 * doc/invoke.texi (minterlink-compressed, mmicromips,
22524 m14k, m14ke, m14kec): Document new options.
22525 (minterlink-mips16): Update documentation.
22526 * doc/md.texi (ZC, ZD): Document new constraints.
22527 * configure.ac (gcc_cv_as_micromips): Check if linker
22528 supports the .set micromips directive.
22529 * configure: Regenerate.
22530 * config.in: Regenerate.
22531 * config/mips/mips-tables.opt: Regenerate.
22532 * config/mips/micromips.md: New file.
22533 * constraints.md (ZC, ZD): New constraints.
22534 * config/mips/predicates.md (movep_src_register): New predicate.
22535 (movep_src_operand): New predicate.
22536 (non_volatile_mem_operand): New predicate.
22537 * config/mips/mips.md (multimem): New type.
22538 (length): Differentiate between 17-bit and 18-bit branch offsets.
22539 (MOVEP1, MOVEP2): New mode iterator.
33159866 22540 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22541 (mov_<load>r): Likewise.
22542 (mov_<store>l): Likewise.
22543 (mov_<store>r): Likewise.
22544 (*branch_equality<mode>_inverted): Add microMIPS support.
22545 (*branch_equality<mode>): Likewise.
22546 (*jump_absolute): Likewise.
22547 (indirect_jump_<mode>): Likewise.
22548 (tablejump_<mode>): Likewise.
22549 (<optab>_internal): Likewise.
22550 (sibcall_internal): Likewise.
22551 (sibcall_value_internal): Likewise.
22552 (prefetch): Use constraint ZD.
22553 * config/mips/mips.opt (minterlink-compressed): New option.
22554 (minterlink-mips16): Now an alias for minterlink-compressed.
22555 (mmicromips): New option.
22556 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22557 (compare_and_swap_12): Likewise.
22558 (sync_add<mode>): Likewise.
22559 (sync_<optab>_12): Likewise.
22560 (sync_old_<optab>_12): Likewise.
22561 (sync_new_<optab>_12): Likewise.
22562 (sync_nand_12): Likewise.
22563 (sync_old_nand_12): Likewise.
22564 (sync_new_nand_12): Likewise.
22565 (sync_sub<mode>): Likewise.
22566 (sync_old_add<mode>): Likewise.
22567 (sync_old_sub<mode>): Likewise.
22568 (sync_new_add<mode>): Likewise.
22569 (sync_new_sub<mode>): Likewise.
22570 (sync_<optab><mode>): Likewise.
22571 (sync_old_<optab><mode>): Likewise.
22572 (sync_new_<optab><mode>): Likewise.
22573 (sync_nand<mode>): Likewise.
22574 (sync_old_nand<mode>): Likewise.
22575 (sync_new_nand<mode>): Likewise.
22576 (sync_lock_test_and_set<mode>): Likewise.
22577 (test_and_set_12): Likewise.
22578 (atomic_compare_and_swap<mode>): Likewise.
22579 (atomic_exchange<mode>_llsc): Likewise.
22580 (atomic_fetch_add<mode>_llsc): Likewise.
22581 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22582 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22583 (umips_save_restore_pattern_p): Likewise.
22584 (umips_load_store_pair_p): Likewise.
22585 (umips_output_load_store_pair): Likewise.
22586 (umips_movep_target_p): Likewise.
22587 (umips_12bit_offset_address_p): Likewise.
22588 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22589 (mips_base_mips16): Rename this...
22590 (mips_base_compression_flags): ...to this. Update all uses.
22591 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22592 (mips_mips16_decl_p): Delete.
22593 (mips_nomips16_decl_p): Delete.
33159866 22594 (mips_get_compress_on_flags): New function.
22c4c869
CM
22595 (mips_get_compress_off_flags): New function.
22596 (mips_get_compress_mode): New function.
22597 (mips_get_compress_on_name): New function.
22598 (mips_get_compress_off_name): New function.
22599 (mips_insert_attributes): Support multiple compression types.
22600 (mips_merge_decl_attributes): Likewise.
22601 (umips_12bit_offset_address_p): New function.
22602 (mips_start_function_definition): Emit .set micromips directive.
22603 (mips_call_may_need_jalx_p): New function.
22604 (mips_function_ok_for_sibcall): Add microMIPS support.
22605 (mips_print_operand_punctuation): Support short delay slots and
22606 compact jumps.
22607 (umips_swm_mask, umips_swm_encoding): New.
22608 (umips_build_save_restore): New function.
22609 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22610 (was_mips16_p): Remove.
22611 (old_compression_mode): New.
22612 (mips_set_compression_mode): New function.
22613 (mips_set_current_function): Add microMIPS support.
22614 (mips_option_override): Likewise.
22615 (umips_save_restore_pattern_p): New function.
22616 (umips_output_save_restore): New function.
22617 (umips_load_store_pair_p_1): New function.
22618 (umips_load_store_pair_p): New function.
22619 (umips_output_load_store_pair_1): New function.
22620 (umips_output_load_store_pair): New function.
22621 (umips_movep_target_p) New function.
22622 (mips_prepare_pch_save): Add microMIPS support.
22623 * config/mips/mips.h (TARGET_COMPRESSION): New.
22624 (TARGET_CPU_CPP_BUILTINS): Update macro
22625 to use new compression flags and to support microMIPS.
22626 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22627 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22628 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22629 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22630 (ASM_SPEC): Support mmicromips and mno-micromips.
22631 (M16STORE_REG_P): New macro.
22632 (MIPS_CALL): Support TARGET_MICROMIPS.
22633 (MICROMIPS_J): New macro.
22634 (mips_base_mips16): Rename this...
22635 (mips_base_compression_flags): ...to this.
22636 (UMIPS_12BIT_OFFSET_P): New macro.
22637 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22638 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
226392013-03-20 Richard Biener <rguenther@suse.de>
22640
22641 PR tree-optimization/56661
22642 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22643 the result does not have to be distinct.
22644
54714c68
RB
226452013-03-20 Richard Biener <rguenther@suse.de>
22646
22647 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22648 remap_gimple_op_r.
22649
cca1130d 226502013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22651 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22652
22653 PR rtl-optimization/56605
22654 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22655
2a930377
UB
226562013-03-20 Uros Bizjak <ubizjak@gmail.com>
22657
22658 PR bootstrap/56656
22659 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22660 that require movd instead of movq.
22661
d6d305fe
RB
226622013-03-20 Richard Biener <rguenther@suse.de>
22663
22664 * tree-ssa-structalias.c (struct variable_info): Add pointer
22665 to the first field of an aggregate with sub-vars. Make
22666 this and the pointer to the next subfield its ID.
22667 (vi_next): New function.
22668 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22669 storedanything_id, integer_id): Increment by one.
22670 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22671 get_call_clobber_vi): Adjust.
22672 (solution_set_expand): Simplify and speedup.
22673 (solution_set_add): Inline into ...
22674 (set_union_with_increment): ... this. Adjust accordingly.
22675 (do_sd_constraint): Likewise.
22676 (do_ds_constraint): Likewise.
22677 (do_complex_constraint): Simplify.
22678 (build_pred_graph): Adjust.
22679 (solve_graph): Likewise. Simplify and speedup.
22680 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22681 get_constraint_for_component_ref, get_constraint_for_1,
22682 first_vi_for_offset, first_or_preceding_vi_for_offset,
22683 create_function_info_for, create_variable_info_for_1,
22684 create_variable_info_for, intra_create_variable_infos): Adjust.
22685 (init_base_vars): Push NULL for ID zero.
22686 (compute_points_to_sets): Adjust.
22687
a271b42d
RB
226882013-03-20 Richard Biener <rguenther@suse.de>
22689
22690 * cfgloop.c (verify_loop_structure): Streamline and avoid
22691 ICEing on corrupt loop tree.
22692 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22693 loop tree.
22694
ebd65954
RB
226952013-03-20 Richard Biener <rguenther@suse.de>
22696
22697 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22698 check whether an SSA update is needed.
22699
4547b7ee
RS
227002013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22701
22702 * config/mips/constraints.md (T): Rename to...
22703 (Yf): ...this.
22704 (U): Rename to...
22705 (Yd): ...this.
22706 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22707 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22708
0b8cdc58
IB
227092013-03-19 Ian Bolton <ian.bolton@arm.com>
22710
22711 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22712 (*subsi3_carryin_uxtw): Likewise.
22713
5977a10d
IB
227142013-03-19 Ian Bolton <ian.bolton@arm.com>
22715
22716 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22717 (*rorsi3_insn_uxtw): Likewise.
22718
bd83ff2c
IB
227192013-03-19 Ian Bolton <ian.bolton@arm.com>
22720
22721 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22722 (*extrsi5_insn_uxtw): Likewise.
22723
ba65123c
RB
227242013-03-19 Richard Biener <rguenther@suse.de>
22725
22726 PR tree-optimization/56273
22727 * passes.c (init_optimization_passes): Move second VRP after DOM.
22728
2eac0476
UB
227292013-03-19 Uros Bizjak <ubizjak@gmail.com>
22730
22731 * config/i386/i386.md (*movti_internal): Merge from
22732 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22733 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22734 nox64 isa attributes.
22735
6e55eda7
RB
227362013-03-18 Richard Biener <rguenther@suse.de>
22737
22738 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22739 (unite): Likewise.
22740 (merge_node_constraints): Likewise.
22741 (build_succ_graph): Likewise.
22742 (valid_graph_edge): Inline into single caller.
22743 (unify_nodes): Likewise. Use bitmap_set_bit return value
22744 and cache varinfo.
22745 (scc_visit): Fix formatting and variable use.
22746 (do_sd_constraint): Use gcc_checking_assert.
22747 (do_ds_constraint): Likewise.
22748 (do_complex_constraint): Likewise.
22749 (condense_visit): Likewise. Cleanup.
22750 (dump_pred_graph): New function.
22751 (perform_var_substitution): Dump the pred-graph before
22752 variable substitution.
22753 (find_equivalent_node): Use gcc_checking_assert.
22754 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22755
4bdd44c4
RB
227562013-03-18 Richard Biener <rguenther@suse.de>
22757
22758 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22759 Remove cond_expr_stmt_list argument and do not gimplify the
22760 built expression.
22761 (vect_loop_versioning): Adjust.
22762 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22763 Cleanup to use less temporaries.
22764 (vect_create_data_ref_ptr): Cleanup.
22765
38c56a5b
JJ
227662013-03-18 Jakub Jelinek <jakub@redhat.com>
22767
22768 PR tree-optimization/56635
22769 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22770 require types_compatible_p types.
22771
20b2e6a0
NC
227722013-03-18 Nick Clifton <nickc@redhat.com>
22773
a6178a25
NC
22774 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22775 spurious backslash.
22776
20b2e6a0
NC
22777 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22778 Add missing line to comment describing function.
22779
92608d0e
RB
227802013-03-18 Richard Biener <rguenther@suse.de>
22781
22782 PR tree-optimization/56210
22783 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22784 Handle string / character search functions.
22785 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22786
31348d52
RB
227872013-03-18 Richard Biener <rguenther@suse.de>
22788
22789 PR middle-end/56483
22790 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22791 and implement properly.
22792 * gimple.h (gimple_cond_single_var_p): Remove.
22793
fcac74a1
RB
227942013-03-18 Richard Biener <rguenther@suse.de>
22795
22796 * tree-data-ref.h (find_data_references_in_loop): Declare.
22797 * tree-data-ref.c (get_references_in_stmt): Use a stack
22798 vector pre-allocated in the callers.
22799 (find_data_references_in_stmt): Adjust.
22800 (graphite_find_data_references_in_stmt): Likewise.
22801 (create_rdg_vertices): Likewise.
22802 (find_data_references_in_loop): Export.
22803 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22804 Compute dependences here...
22805 (vect_analyze_data_refs): ...not here. When we encounter
22806 a non-vectorizable data reference in basic-block vectorization
22807 truncate the data reference vector. Do not bother to
22808 fixup data-dependence information for gather loads.
22809 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22810 of data references, as reported.
22811
0d5a1b56
RB
228122013-03-18 Richard Biener <rguenther@suse.de>
22813
22814 PR tree-optimization/3713
22815 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22816 has_constants and expr.
22817 (stmt_has_constants): Properly valueize SSA names when deciding
22818 whether the stmt has constants.
22819
789c34e3
RB
228202013-03-18 Richard Biener <rguenther@suse.de>
22821
22822 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22823 whole function when there is nothing to do.
22824 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22825 * tree-vectorizer.c (vectorize_loops): Update virtual and
22826 loop-closed SSA once.
22827 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22828
076b4605
RB
228292013-03-18 Richard Biener <rguenther@suse.de>
22830
22831 PR middle-end/56113
22832 * domwalk.c (bb_postorder): New global static.
22833 (cmp_bb_postorder): New function.
22834 (walk_dominator_tree): Replace scheme imposing an order for
22835 visiting dominator sons by one sorting them at the time they
22836 are pushed on the stack.
22837
bdb01696
RB
228382013-03-18 Richard Biener <rguenther@suse.de>
22839
22840 PR tree-optimization/39326
22841 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
22842 (struct mem_ref): Replace mem member with ao_ref typed member.
22843 (MEM_ANALYZABLE): Adjust.
22844 (memref_eq): Likewise.
22845 (mem_ref_alloc): Likewise.
22846 (gather_mem_refs_stmt): Likewise.
22847 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
22848 (execute_sm_if_changed_flag_set): Adjust.
22849 (execute_sm): Likewise.
22850 (ref_always_accessed_p): Likewise.
22851 (refs_independent_p): Likewise.
22852 (can_sm_ref_p): Likewise.
22853
12d2dc5e
JJ
228542013-03-18 Jakub Jelinek <jakub@redhat.com>
22855
22856 PR c/56566
22857 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
22858 return 1 even for !unsignedp.
22859
286fb677
UB
228602013-03-17 Uros Bizjak <ubizjak@gmail.com>
22861
22862 * config/i386/i386.md (isa): Add x64 and nox64.
22863 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
22864 (*pushtf): Enable *roF alternative for x64 isa only.
22865 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
22866 mode attribute of integer alternatives to DImode for TARGET_64BIT.
22867 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
22868 (*movtf_internal): Merge from *movtf_internal_rex64 and
22869 *movtf_internal_sse. Use x64 and nox64 isa attributes.
22870 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
22871 nox64 isa attributes.
22872 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
22873 nox64 isa attributes.
22874 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
22875
88b97037
UB
228762013-03-17 Uros Bizjak <ubizjak@gmail.com>
22877
22878 * config/alpha/alpha.c (TARGET_LRA_P): New define.
22879
9f4f1735
JJ
228802013-03-17 Jakub Jelinek <jakub@redhat.com>
22881
22882 PR target/56640
22883 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
22884 class names. Remove trailing comma after "ALL_REGS".
22885
48f4a6fa
JH
228862013-03-16 Jan Hubicka <jh@suse.cz>
22887
22888 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
22889 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
22890 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
22891 of cgraph_get_create_node.
22892 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
22893
98e81123
JM
228942013-03-16 Jason Merrill <jason@redhat.com>
22895
22896 PR debug/49090
22897 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
22898 with DW_AT_default_value.
22899
8a298c04
JJ
229002013-03-16 Jakub Jelinek <jakub@redhat.com>
22901
22902 * BASE-VER: Set to 4.9.0.
22903
4323afa0
AK
229042013-03-14 Andi Kleen <ak@linux.intel.com>
22905
22906 PR target/56619
22907 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
22908 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
22909 Document _x* TSX intrinsics.
22910
b3c0d469
JJ
229112013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22912 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
22913
22914 * configure.ac: Add MicroBlaze TLS support detection.
22915 * configure: Regenerate.
88b97037
UB
22916 * config/microblaze/microblaze-protos.h
22917 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
22918 symbol_mentioned_p, label_mentioned_p): Add prototypes.
22919 * config/microblaze/microblaze.c (microblaze_address_type): Add
22920 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
22921 (microblaze_address_info): Add tls_reloc.
22922 (TARGET_HAVE_TLS): Define.
22923 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
22924 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
22925 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
22926 load_tls_operand, microblaze_call_tls_get_addr,
22927 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
22928 (microblaze_classify_unspec): Handle UNSPEC_TLS.
22929 (get_base_reg): Use microblaze_tls_symbol_p.
22930 (microblaze_classify_address): Handle TLS.
88b97037
UB
22931 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
22932 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
22933 (microblaze_legitimize_address): Handle TLS.
22934 (microblaze_address_insns): Handle ADDRESS_TLS.
22935 (pic_address_needs_scratch): Handle TLS.
22936 (print_operand_address): Handle TLS.
22937 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
22938 (microblaze_expand_move): Handle TLS.
88b97037
UB
22939 (microblaze_legitimate_constant_p): Check
22940 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
22941 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
22942 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
22943 (PIC_OFFSET_TABLE_REGNUM): Set.
22944 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
22945 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
22946 (addsi3, movsi_internal2, movdf_internal): Update constraints
22947 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
22948 (move_operand): Redefine as move_src_operand,
22949 check microblaze_tls_referenced_p.
8cc9a5a5 22950
d803a491
IB
229512013-03-14 Ian Bolton <ian.bolton@arm.com>
22952
22953 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
22954 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22955
a8504f22
IB
229562013-03-14 Ian Bolton <ian.bolton@arm.com>
22957
22958 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
22959 CC mode for AND.
22960
df2dfaea
JJ
229612013-03-14 Jakub Jelinek <jakub@redhat.com>
22962
fbd28bc3
JJ
22963 PR tree-optimization/53265
22964 * common.opt (Waggressive-loop-optimizations): New option.
22965 * tree-ssa-loop-niter.c: Include tree-pass.h.
22966 (do_warn_aggressive_loop_optimizations): New function.
22967 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
22968 if number_of_latch_executions returned constant.
22969 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
22970 early. If number_of_latch_executions returned constant, set
22971 nb_iterations_upper_bound back to it.
22972 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
22973 field.
22974 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
22975 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
22976
df2dfaea
JJ
22977 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
22978 (MULTILIB_OSDIRNAMES): Set.
22979 * genmultilib: If defaultosdirname doesn't start with :: , set
22980 defaultosdirname2 instead, clear it and emit two . multilib_raw
22981 entries instead of just one.
22982
ee0d2b68
KK
229832013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
22984
22985 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22986 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
22987 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22988 (SUBTARGET_OVERRIDE_OPTIONS): New.
22989
decc676e
OE
229902013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
22991
22992 PR target/49880
22993 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
22994 (musermode): Convert to Var(TARGET_USERMODE).
22995 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
22996 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
22997 * config/sh/sh.c (sh_option_override): Use
22998 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
22999 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
23000 condition.
23001 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
23002 TARGET_SH4.
23003 (udivsi3_i4_single, divsi3_i4_single): Use
23004 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
23005
f4b719c7
DK
230062013-03-13 Dave Korn <dave.korn.cygwin@....>
23007
23008 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
23009 default setting.
23010
c40eced0
RB
230112013-03-13 Richard Biener <rguenther@suse.de>
23012
23013 PR tree-optimization/56608
23014 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
23015 calls when vectorizing basic-blocks.
23016
1bfa5973
JJ
230172013-03-13 Jakub Jelinek <jakub@redhat.com>
23018
23019 PR plugins/45078
23020 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
23021 tm_file.
23022
6fcf5434
JJ
230232013-03-12 Jakub Jelinek <jakub@redhat.com>
23024
23025 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
23026
4f38fa8c
JH
230272013-03-11 Jan Hubicka <jh@suse.cz>
23028
23029 PR lto/56557
23030 * lto-streamer-out.c (output_symbol_p): Skip references from
23031 constructors of external variables.
23032
c5c5ba89
JH
230332013-03-11 Jan Hubicka <jh@suse.cz>
23034
23035 PR middle-end/56571
23036 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
23037 from pseudos.
23038 * emit-rtl.c (verify_rtx_sharing): Likewise.
23039 (copy_insn_1): Likewise.
23040 * rtl.c (copy_rtx): Likewise.
23041
c2a939b1
GJL
230422013-03-11 Georg-Johann Lay <avr@gjlay.de>
23043
23044 PR target/56591
23045 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
23046 output_operand_lossage message.
88b97037 23047
3c3279fb
RE
230482013-03-11 Richard Earnshaw <rearnsha@arm.com>
23049
23050 PR target/56470
23051 * arm.c (shift_op): Validate RTL pattern on the fly.
23052 (arm_print_operand, case 'S'): Don't use shift_operator to validate
23053 the RTL.
23054
aef5ef9d
JDA
230552013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23056
23057 PR target/56347
23058 * config/pa/pa.md (call_value): Check for calls to powf and direct to
23059 new call patterns that clobber %fr12.
23060 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
23061 split and postreload patterns.
23062 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
23063 registers %fr12 and %fr12R as call used.
23064
456610d3
SB
230652013-03-09 Steven Bosscher <steven@gcc.gnu.org>
23066
23067 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
23068 (canon_address, record_store, replace_read, check_mem_read_rtx,
23069 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
23070 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
23071 rest_of_handle_dse): Likewise.
23072
4b1baac8
RS
230732013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
23074
23075 PR middle-end/56524
23076 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
23077 Add base_optabs.
23078 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23079 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23080 (save_optabs_if_changed): Replace with...
23081 (init_tree_optimization_optabs): ...this.
23082 * optabs.c (save_optabs_if_changed): Rename to...
23083 (init_tree_optimization_optabs): ...this. Take the optimization node
23084 as argument. Do nothing if the base optabs are already correct.
23085 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23086 to recompute optabs.
23087 * function.h (function): Remove optabs field.
23088 * function.c (invoke_set_current_function_hook): Call
23089 init_tree_optimization_optabs. Use the result to initialize
23090 this_fn_optabs.
23091
b7a78683
AH
230922013-02-27 Aldy Hernandez <aldyh@redhat.com>
23093
23094 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23095 if GTMA_HAS_NO_INSTRUMENTATION.
23096 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23097 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23098 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23099 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23100 GTMA_HAS_NO_INSTRUMENTATION.
23101
6384c29b
JJ
231022013-03-08 Jakub Jelinek <jakub@redhat.com>
23103
23104 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23105 libasan_preinit.o.
23106
ecd4f20a
MP
231072013-03-08 Marek Polacek <polacek@redhat.com>
23108 Jakub Jelinek <jakub@redhat.com>
23109
23110 PR tree-optimization/56478
23111 * predict.c (is_comparison_with_loop_invariant_p): Change the
23112 type of loop_step to tree.
23113 (predict_loops): Adjust.
23114 (predict_iv_comparison): Perform the computations on double_ints.
23115
64366d35
RB
231162013-03-08 Richard Biener <rguenther@suse.de>
23117
23118 PR tree-optimization/56570
23119 * tree-cfg.c (verify_expr_location_1): Verify locations for
23120 DECL_DEBUG_EXPR.
23121 * tree-sra.c (create_access_replacement): Strip locations
23122 from DECL_DEBUG_EXPRs.
23123
a9d5a059
RB
231242013-03-08 Richard Biener <rguenther@suse.de>
23125
23126 * tree-inline.c (expand_call_inline): Do not associate
23127 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23128 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23129
b7aa4e9a
RB
231302013-03-08 Richard Biener <rguenther@suse.de>
23131
23132 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23133 or block changes with -Og. Fix for location / block encoding
23134 changes and PHI arguments with locations.
23135
c4c2f9fa
SB
231362013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23137
23138 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23139 for all counters.
23140 (struct output_info): Likewise.
23141 (register_overhead): Remove bad gcc_assert.
23142 (bitmap_find_bit): If there is only a single bitmap element, do not
23143 count a miss as a search.
23144 (print_statistics): Update for counter type changes.
23145 (dump_bitmap_statistics): Likewise. Print headers such that they
23146 are properly lined up with the printed counters.
23147
5bf6606a
JJ
231482013-03-07 Jakub Jelinek <jakub@redhat.com>
23149
23150 PR tree-optimization/56559
23151 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23152 check that it has only a single use.
23153
2c653d46
RB
231542013-03-07 Richard Biener <rguenther@suse.de>
23155
23156 * doc/invoke.texi (fwhole-program): Discourage use in combination
23157 with -flto.
23158
a72d8780
JJ
231592013-03-06 Jakub Jelinek <jakub@redhat.com>
23160
01a454df
JJ
23161 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23162
c1781047
JJ
23163 PR tree-optimization/56539
23164 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23165 instead of GSI_CONTINUE_LINKING as last argument to
23166 force_gimple_operand_gsi. Adjust function comment.
23167
9772c47a
JJ
23168 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23169 aarch64-cores.def.
23170
a72d8780
JJ
23171 PR middle-end/56548
23172 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23173 promoted mode, convert the result back to the original mode.
23174
fa5556de
RB
231752013-03-06 Richard Biener <rguenther@suse.de>
23176
23177 PR middle-end/56294
23178 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23179 (insert_updated_phi_nodes_compare_uids): New function.
23180 (update_ssa): Sort symbols_to_rename after UID before
23181 traversing it to insert PHI nodes.
23182
010403d1
RB
231832013-03-06 Richard Biener <rguenther@suse.de>
23184
23185 PR middle-end/50494
23186 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23187 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23188
23189 Revert
23190 2013-02-13 Richard Biener <rguenther@suse.de>
23191
23192 PR lto/50494
23193 * varasm.c (output_constant_def_1): Get the decl representing
23194 the constant as argument.
23195 (output_constant_def): Wrap output_constant_def_1.
23196 (make_decl_rtl): Use output_constant_def_1 with the decl
23197 representing the constant.
23198 (build_constant_desc): Optionally re-use a decl already
23199 representing the constant.
23200 (tree_output_constant_def): Adjust.
23201
3c27ce4c
JY
232022013-03-06 Joey Ye <joey.ye@arm.com>
23203
23204 PR lto/50293
23205 * gcc.c (convert_white_space): New function.
23206 (main): Handles white space in function name.
23207
8f6d1c86
OE
232082013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23209
23210 PR target/56529
23211 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23212 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23213 to SH_DIV_CALL_TABLE for TARGET_SH2.
23214 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23215 list.
23216 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23217 call-table options.
23218
798a209f
SA
232192013-03-05 Sterling Augustine <saugustine@google.com>
23220 Cary Coutant <ccoutant@google.com>
23221
23222 PR debug/55364
23223 * dwarf2out.c (resolve_addr): Don't call
23224 remove_loc_list_addr_table_entries a second time for the same
23225 expression.
23226
6cfa417f 232272013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23228
6cfa417f
JJ
23229 PR debug/56510
23230 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23231 (avoid_complex_debug_insns): New function.
23232 (expand_debug_locations): Call it.
23233
23234 PR rtl-optimization/56484
23235 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23236 lifetimes of hard registers on small register class machines.
23237
232382013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23239
23240 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23241 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23242 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23243 fast_interrupt.
23244 (microblaze_fast_interrupt_function_p): New function.
23245 (microblaze_is_interrupt_handler): Rename to
23246 microblaze_is_interrupt_variant and add fast_interrupt check.
23247 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23248 (save_restore_insns): Likewise.
23249 (compute_frame_size): Likewise.
23250 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23251 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23252 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23253 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23254 microblaze_is_interrupt_variant.
23255
731aefac
KT
232562013-03-05 Kai Tietz <ktietz@redhat.com>
23257
23258 * sdbout.c (sdbout_one_type): Switch to current function's section
23259 supporting cold/hot.
23260
a72d8780 232612013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23262
23263 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23264 -mxl-reorder.
23265
334e71e8
JJ
232662013-03-05 Jakub Jelinek <jakub@redhat.com>
23267
0b50e654
JJ
23268 PR middle-end/56461
23269 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23270 if VALGRIND_GET_VBITS is defined, temporarily make object
23271 memory all defined, and restore previous valgrind addressability
23272 and definability afterwards. Free this_object at the end.
23273
4ccf8f43
JJ
23274 PR middle-end/56461
23275 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23276 right before calling lra_create_live_ranges, also call it
23277 when clearing live_p. Only call lra_clear_live_ranges
23278 at the end if live_p.
23279
334e71e8
JJ
23280 PR middle-end/56461
23281 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23282
9ca966ca
RB
232832013-03-05 Richard Biener <rguenther@suse.de>
23284
23285 PR tree-optimization/56521
23286 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23287 value-id.
23288
d273b176
SB
232892013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23290
23291 PR c++/55135
23292 * except.h (remove_unreachable_eh_regions): New prototype.
23293 * except.c (remove_eh_handler_splicer): New function, split out
23294 of remove_eh_handler.
23295 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23296 warning about running it on many EH regions one at a time.
23297 (remove_unreachable_eh_regions_worker): New function, walk the
23298 EH tree in depth-first order and remove non-marked regions.
23299 (remove_unreachable_eh_regions): New function.
23300 * tree-eh.c (mark_reachable_handlers): New function, split out
23301 from remove_unreachable_handlers.
23302 (remove_unreachable_handlers): Use mark_reachable_handlers and
23303 remove_unreachable_eh_regions.
23304 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23305 and remove_unreachable_eh_regions.
23306
5e7f1aef
RB
233072013-03-05 Richard Biener <rguenther@suse.de>
23308
23309 PR middle-end/56525
23310 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23311 not freeing them until the end.
23312
f276b762
AK
233132013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23314
23315 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23316
12a43ab8
RB
233172013-03-05 Richard Biener <rguenther@suse.de>
23318
23319 PR tree-optimization/56270
23320 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23321 of loads after scheduling an SLP instance.
23322
93675444
JJ
233232013-03-05 Jakub Jelinek <jakub@redhat.com>
23324
db4138e3
JJ
23325 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23326 tic6x.exp.
23327 (check_gcc_parallelize): Run guality.exp as a separate job from
23328 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23329 struct-layout-1.exp with stackalign.exp.
23330
dd3d1ec0
JJ
23331 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23332
b8d381a3
JJ
23333 PR middle-end/56461
23334 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23335 load_index sbitmap even if some bit in it isn't set.
23336
b4f9786b
JJ
23337 PR middle-end/56461
23338 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23339 (discover_iteration_bound_by_body_walk): Change queues to
23340 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23341 spelling in comment. Call safe_push on queues[bound_index] directly.
23342 Release queues[queue_index] in every iteration unconditionally.
23343 Release bounds vector.
23344
93675444
JJ
23345 PR middle-end/56461
23346 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23347 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23348 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23349 inner_phis vector.
23350
3e492e9c
RB
233512013-03-05 Richard Biener <rguenther@suse.de>
23352
23353 PR lto/56515
23354 * tree-inline.c (remap_blocks_to_null): New function.
23355 (expand_call_inline): When expanding a call stmt without
23356 an associated block inline remap all callee blocks to NULL.
23357
a5d1569a
JJ
233582013-03-05 Jakub Jelinek <jakub@redhat.com>
23359
86efb5cd
JJ
23360 PR rtl-optimization/56494
23361 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23362 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23363 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23364
85f5dbea
JJ
23365 PR middle-end/56461
23366 * sel-sched-ir.c (free_sched_pools): Release
23367 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23368 if succs_info_pool.max_top isn't -1.
23369
a5d1569a
JJ
23370 PR bootstrap/56509
23371 * opts.c (opts_obstack, opts_concat): Moved to...
23372 * opts-common.c (opts_obstack, opts_concat): ... here.
23373
4432aa6c
JJ
233742013-03-04 Jakub Jelinek <jakub@redhat.com>
23375
23376 PR middle-end/56461
23377 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23378
f3a1fb91
MJ
233792013-03-04 Martin Jambor <mjambor@suse.cz>
23380
23381 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23382 all appropriate places.
23383
22110e6c
EB
233842013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23385
23386 PR tree-optimization/56424
23387 * ipa-split.c (split_function): Do not set the RSO flag if result is
23388 not by reference and its type is a register type.
23389
a72d8780 233902013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23391
88b97037 23392 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23393 (microblaze_legitimate_pic_operand): Likewise
88b97037 23394 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23395 new function microblaze_legitimate_pic_operand
23396 * config/microblaze/microblaze-protos.h
23397 (microblaze_legitimate_pic_operand): Declare.
23398
a72d8780 233992013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23400
a72d8780 23401 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23402 New predicate for supported rtx code types.
a72d8780 23403 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23404 call_insn_simple_operand predicate.
23405
541d9ac8
JJ
234062013-03-04 Jakub Jelinek <jakub@redhat.com>
23407
5eb010bc
JJ
23408 PR middle-end/56461
23409 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23410 partitions.ordered_remove.
23411
30862efc
JJ
23412 PR middle-end/56461
23413 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23414 vec_oprnds0.create (1) for modifier == NONE.
23415
8930f723
JJ
23416 PR middle-end/56461
23417 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23418 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23419 vec_oprnds1 right before pushing anything to it for
23420 scalar_shift_arg.
23421
541d9ac8
JJ
23422 PR middle-end/56461
23423 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23424 set nbbs to 0 instead of having separate code path.
23425 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23426 instead of false as last argument if returning NULL.
23427
7aa7f2e3
SL
234282013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23429
23430 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23431 the attribute is now called "target" instead of "option".
23432 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23433 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23434 attribute/pragma name for TARGET_OPTION_VALID_P and
23435 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23436 * doc/tm.texi: Regenerated.
23437
8930f723 234382013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23439
8930f723 23440 * config/microblaze/microblaze.c:
cb8a1637 23441 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23442 * config/microblaze/microblaze.h: Add -mxl-reorder to
23443 DRIVER_SELF_SPECS.
23444 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23445 instructions emitted if TARGET_REORDER.
88b97037
UB
23446 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23447 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23448 separately.
cb8a1637 23449
4dc1d68c
XDL
234502013-03-01 Xinliang David Li <davidxl@google.com>
23451
23452 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23453 walk length.
23454
689eaba3
JJ
234552013-03-01 Jakub Jelinek <jakub@redhat.com>
23456
9d676bf6
JJ
23457 PR middle-end/56461
23458 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23459 vector even when returning true. Fix up function comment formatting.
23460
caff7edf
JJ
23461 PR middle-end/56461
23462 * ira-build.c (ira_loop_nodes_count): New variable.
23463 (create_loop_tree_nodes): Initialize it.
23464 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23465
b6b9227d
JJ
23466 PR middle-end/56461
23467 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23468 method on dr_chain and result_chain.
23469 * tree-vect-stmts.c (vectorizable_store): Only call
23470 result_chain.create if j == 0.
23471
689eaba3
JJ
23472 PR middle-end/56461
23473 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23474 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23475 before overwriting it.
23476
40bf31ed
TB
234772013-03-01 Tobias Burnus <burnus@net-b.de>
23478
23479 * doc/extended.texi (C Extensions): Change order in @menu
23480 to match @node.
23481 (Other MIPS Built-in Functions): Move last MIPS entry before
23482 "picoChip Built-in Functions".
23483 (SH Built-in Functions): Move after RX Built-in Functions.
23484 * doc/gcc.texi (Introduction): Change order in @menu
23485 to match @node.
23486 * doc/md.texi (Constraints): Ditto.
23487 * gty.texi (Type Information): Ditto.
23488 (User-provided marking routines for template types): Make
23489 subsection.
23490 * doc/invoke.texi (AArch64 Options): Move before
23491 "Adapteva Epiphany Options".
23492
e664c61c
KS
234932013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23494 Jakub Jelinek <jakub@redhat.com>
23495
23496 PR sanitizer/56454
23497 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23498 no_address_safety_analysis attribute.
23499 * doc/extend.texi (no_address_safety_attribute): Rename to
23500 no_sanitize_address attribute, mention no_address_safety_analysis
23501 attribute as deprecated alias.
23502
37b5ec8f
JJ
235032013-02-28 Jakub Jelinek <jakub@redhat.com>
23504
23505 PR middle-end/56461
23506 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23507 type to vec<vec<tree> > *.
23508 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23509 to be vec<tree> instead of vec<tree> *, set vec_defs
23510 to vNULL and call vec_defs.create (number_of_vects), adjust other
23511 uses of vec_defs.
23512 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23513 vectorizable_condition): Adjust vect_get_slp_defs callers.
23514
ba96cdfb
JG
235152013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23516
23517 * config/aarch64/aarch64.c
23518 (aarch64_float_const_representable): Remove unused variable.
23519
6f549691
JG
235202013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23521
23522 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23523
af55e82d
JG
235242013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23525
23526 * config/aarch64/aarch64-builtins.c
23527 (aarch64_init_simd_builtins): Make static.
23528
1df3f464
JG
235292013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23530
23531 * config/aarch64/aarch64.c
23532 (aarch64_simd_make_constant): Make static.
23533
f8f42513
MJ
235342013-02-28 Martin Jambor <mjambor@suse.cz>
23535
23536 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23537 with no initialization to the RHS of debug statements.
23538
b48b3fc4
MJ
235392013-02-28 Martin Jambor <mjambor@suse.cz>
23540
23541 PR tree-optimization/56294
23542 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23543 Adjust dumping.
23544 (get_access_replacement): Do not call create_access_replacement.
23545 Assert a replacement exists.
23546 (get_repl_default_def_ssa_name): Create the replacement declaration
23547 itself.
23548
c3ae224c
RR
235492013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23550
23551 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23552 final_end_function.
23553
45fa0eef
MP
235542013-02-28 Marek Polacek <polacek@redhat.com>
23555
23556 PR rtl-optimization/56466
23557 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23558 if we're changing a loop.
23559 (peel_loops_completely): Likewise.
23560
502c067d
PC
235612013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23562
23563 PR c++/55813
23564 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23565
ff24afc8
GJL
235662013-02-28 Georg-Johann Lay <avr@gjlay.de>
23567
23568 PR target/56445
23569 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23570 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23571 INTX_FTYPE_FX, FX_FTYPE_INTX.
23572 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23573
c7b1fc1b
GJL
235742013-02-28 Georg-Johann Lay <avr@gjlay.de>
23575
23576 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23577 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23578 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23579 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23580 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23581 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23582 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23583 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23584 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23585 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23586 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23587 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23588 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23589 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23590 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23591 (avrxmega6): Increase max flash segments from 5 to 6.
23592 * config/avr/t-multilib: Regenerate.
23593 * config/avr/avr-tables.opt: Regenerate.
23594 * doc/avr-mmcu.texi: Regenerate.
23595
4a0e3cfe
GJL
235962013-02-28 Georg-Johann Lay <avr@gjlay.de>
23597
23598 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23599 (avr_device_to_arch): Rename to avr_device_to_ld.
23600 (avr_device_to_as): New prototype.
23601 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23602 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23603 * config/avr/driver-avr.c (avr_device_to_as): New.
23604 (avr_device_to_arch): Rename to avr_device_to_ld.
23605
97785e52
JJ
236062013-02-27 Jakub Jelinek <jakub@redhat.com>
23607
3f292312
JJ
23608 PR middle-end/56461
23609 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23610 method on dr_chain and result_chain.
23611
a344216b
JJ
23612 PR middle-end/56461
23613 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23614 pointer_set_destroy on not_executed_last_iteration.
23615
f121ad02 23616 PR middle-end/56461
88b97037 23617 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23618
307f83a3
JJ
23619 PR middle-end/56461
23620 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23621 FOR_EACH_DEFINED_FUNCTION when freeing state.
23622
e19624ee
JJ
23623 PR middle-end/56461
23624 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23625 pool_free.
23626 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23627 overwriting it.
23628
90e709fd
JJ
23629 PR middle-end/56461
23630 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23631 known_aggs[i].items and release known_aggs vector.
23632
97785e52
JJ
23633 PR middle-end/56461
23634 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23635
236362013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23637
97785e52
JJ
23638 * config/microblaze/microblaze.c (microblaze_emit_compare):
23639 Use xor for EQ/NE comparisions.
23640 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23641 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23642
6fa5e0ed
JJ
236432013-02-27 Jakub Jelinek <jakub@redhat.com>
23644
23645 PR middle-end/56461
23646 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23647 vector.
23648 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23649 vec_safe_push, always update *slot.
23650 (redirect_edge_var_map_clear): Use vec_free.
23651 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23652 (free_var_map_entry): Use vec_free.
23653 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23654 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23655
436a956a
AB
236562013-02-27 Andrey Belevantsev <abel@ispras.ru>
23657
23658 PR middle-end/45472
436a956a
AB
23659 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23660 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23661 Reorder tests for speculativeness in the logical and operator.
23662
f5c2caca
JJ
236632013-02-27 Jakub Jelinek <jakub@redhat.com>
23664
0fcb564b
JJ
23665 * incpath.c (add_standard_paths): Use reconcat instead of concat
23666 where appropriate and avoid leaking memory.
23667
dc357798
JJ
23668 * opts.h: Include obstack.h.
23669 (opts_concat): New prototype.
23670 (opts_obstack): New declaration.
23671 * opts.c (opts_concat): New function.
23672 (opts_obstack): New variable.
23673 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23674 (finish_options): Use opts_concat instead of concat
23675 and XOBNEWVEC instead of XNEWVEC.
23676 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23677 generate_option): Likewise.
23678 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23679 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23680
f5c2caca
JJ
23681 PR target/56455
23682 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23683 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23684
d0163673
JJ
236852013-02-26 Jakub Jelinek <jakub@redhat.com>
23686
23687 PR middle-end/56461
23688 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23689
b5ad2b8e
JR
236902013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23691
23692 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23693 (arm_block_move_unaligned_straight): Likewise.
23694 (arm_adjust_block_mem): Likewise.
23695
9b639e2c
JR
236962013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23697
23698 PR target/48901
23699 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23700 temp, cond and label.
23701 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23702
e13a0ccb
JR
23703 PR target/52500
23704 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23705 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23706
fbe4f171
JR
23707 PR target/52501
23708 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23709 of prologue/epilogue functions.
23710
ae006543
JR
23711 PR target/52550
23712 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23713 Remove unused variable cfa_offset.
23714 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23715
c81369fa
JR
23716 PR target/54639
23717 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23718 type promotion to unsigned.
23719
f8a8fea7
JR
23720 PR target/54640
23721 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23722 for HOST_WIDE_INT of 32 bit / same size as int.
23723 (arm_block_move_unaligned_straight): Likewise.
23724 (arm_adjust_block_mem): Likewise.
23725
f8be5169
JR
23726 PR target/54662
23727 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23728 ALL_CFLAGS.
23729
f1ad3354
MP
237302013-02-26 Marek Polacek <polacek@redhat.com>
23731
23732 PR tree-optimization/56426
88b97037 23733 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23734
a6af0f42
RB
237352013-02-26 Richard Biener <rguenther@suse.de>
23736
23737 PR target/56444
23738 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23739 unused variable loops.
23740
aca43c6c
JJ
237412013-02-26 Jakub Jelinek <jakub@redhat.com>
23742
cecbe5d9
JJ
23743 PR tree-optimization/56448
23744 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23745 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23746 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23747 later operands of the references, or even first operand for
23748 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23749
aca43c6c
JJ
23750 PR tree-optimization/56443
23751 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23752 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23753 to type_for_mode langhook.
23754
53e2e141
MT
237552013-02-25 Matt Turner <mattst88@gmail.com>
23756
23757 * doc/invoke.texi: Document r4700.
23758
259ee451
RB
237592013-02-25 Richard Biener <rguenther@suse.de>
23760
23761 PR tree-optimization/56175
23762 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23763 split out from ...
23764 (simplify_bitwise_binary): ... here. Also guard the conversion
23765 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23766
6d65e8f1
CM
237672013-02-25 Catherine Moore <clm@codesourcery.com>
23768
23769 Revert:
23770 2013-02-24 Catherine Moore <clm@codesourcery.com>
23771 Maciej W. Rozycki <macro@codesourcery.com>
23772 Tom de Vries <tom@codesourcery.com>
a72d8780 23773 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
23774 Iain Sandoe <iain@codesourcery.com>
23775 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23776 Chao-ying Fu <fu@mips.com>
88b97037 23777
6d65e8f1 23778 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23779 Document new function attributes.
6d65e8f1
CM
23780 * doc/invoke.texi (minterlink-compressed, mmicromips,
23781 m14k, m14ke, m14kec): Document new options.
23782 (minterlink-mips16): Update documentation.
23783 * doc/md.texi (ZC, ZD): Document new constraints.
23784 * configure.ac (gcc_cv_as_micromips): Check if linker
23785 supports the .set micromips directive.
23786 * configure: Regenerate.
23787 * config.in: Regenerate.
23788 * config/mips/mips-tables.opt: Regenerate.
23789 * config/mips/micromips.md: New file.
23790 * constraints.md (ZC, AD): New constraints.
23791 * config/mips/predicates.md (movep_src_register): New predicate.
23792 (movep_src_operand): New predicate.
23793 (non_volatile_mem_operand): New predicate.
23794 * config/mips/mips.md (multimem): New type.
23795 (length): Differentiate between 17-bit and 18-bit branch offsets.
23796 (MOVEP1, MOVEP2): New mode iterator.
23797 (mov_<load>l): Use ZC constraint.
23798 (mov_<load>r): Likewise.
23799 (mov_<store>l): Likewise.
23800 (mov_<store>r): Likewise.
23801 (*branch_equality<mode>_inverted): Add microMIPS support.
23802 (*branch_equality<mode>): Likewise.
23803 (*jump_absolute): Likewise.
23804 (indirect_jump_<mode>): Likewise.
23805 (tablejump_<mode>): Likewise.
23806 (<optab>_internal): Likewise.
23807 (sibcall_internal): Likewise.
23808 (sibcall_value_internal): Likewise.
23809 (prefetch): Use constraint ZD.
23810 * config/mips/mips.opt (minterlink-compressed): New option.
23811 (minterlink-mips16): Now an alias for minterlink-compressed.
23812 (mmicromips): New option.
23813 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23814 (compare_and_swap_12): Likewise.
23815 (sync_add<mode>): Likewise.
23816 (sync_<optab>_12): Likewise.
23817 (sync_old_<optab>_12): Likewise.
23818 (sync_new_<optab>_12): Likewise.
23819 (sync_nand_12): Likewise.
23820 (sync_old_nand_12): Likewise.
23821 (sync_new_nand_12): Likewise.
23822 (sync_sub<mode>): Likewise.
23823 (sync_old_add<mode>): Likewise.
23824 (sync_old_sub<mode>): Likewise.
23825 (sync_new_add<mode>): Likewise.
23826 (sync_new_sub<mode>): Likewise.
23827 (sync_<optab><mode>): Likewise.
23828 (sync_old_<optab><mode>): Likewise.
23829 (sync_new_<optab><mode>): Likewise.
23830 (sync_nand<mode>): Likewise.
23831 (sync_old_nand<mode>): Likewise.
23832 (sync_new_nand<mode>): Likewise.
23833 (sync_lock_test_and_set<mode>): Likewise.
23834 (test_and_set_12): Likewise.
23835 (atomic_compare_and_swap<mode>): Likewise.
23836 (atomic_exchange<mode>_llsc): Likewise.
23837 (atomic_fetch_add<mode>_llsc): Likewise.
23838 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23839 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23840 (umips_save_restore_pattern_p): Likewise.
23841 (umips_load_store_pair_p): Likewise.
23842 (umips_output_load_store_pair): Likewise.
23843 (umips_movep_target_p): Likewise.
23844 (umips_12bit_offset_address_p): Likewise.
23845 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23846 (mips_base_mips16): Rename this...
23847 (mips_base_compression_flags): ...to this. Update all uses.
23848 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23849 (mips_mips16_decl_p): Delete.
23850 (mips_nomips16_decl_p): Delete.
23851 (mips_get_compress_on_flags): New function.
23852 (mips_get_compress_off_flags): New function.
23853 (mips_get_compress_mode): New function.
23854 (mips_get_compress_on_name): New function.
23855 (mips_get_compress_off_name): New function.
23856 (mips_insert_attributes): Support multiple compression types.
23857 (mips_merge_decl_attributes): Likewise.
23858 (umips_12bit_offset_address_p): New function.
23859 (mips_start_function_definition): Emit .set micromips directive.
23860 (mips_call_may_need_jalx_p): New function.
23861 (mips_function_ok_for_sibcall): Add microMIPS support.
23862 (mips_print_operand_punctuation): Support short delay slots and
23863 compact jumps.
23864 (umips_swm_mask, umips_swm_encoding): New.
23865 (umips_build_save_restore): New function.
23866 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23867 (was_mips16_p): Remove.
23868 (old_compression_mode): New.
23869 (mips_set_compression_mode): New function.
23870 (mips_set_current_function): Add microMIPS support.
23871 (mips_option_override): Likewise.
23872 (umips_save_restore_pattern_p): New function.
23873 (umips_output_save_restore): New function.
23874 (umips_load_store_pair_p_1): New function.
23875 (umips_load_store_pair_p): New function.
23876 (umips_output_load_store_pair_1): New function.
23877 (umips_output_load_store_pair): New function.
23878 (umips_movep_target_p) New function.
23879 (mips_prepare_pch_save): Add microMIPS support.
23880 * config/mips/mips.h (TARGET_COMPRESSION): New.
23881 (TARGET_CPU_CPP_BUILTINS): Update macro
23882 to use new compression flags and to support microMIPS.
23883 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23884 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23885 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23886 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23887 (ASM_SPEC): Support mmicromips and mno-micromips.
23888 (M16STORE_REG_P): New macro.
23889 (MIPS_CALL): Support TARGET_MICROMIPS.
23890 (MICROMIPS_J): New macro.
23891 (mips_base_mips16): Rename this...
23892 (mips_base_compression_flags): ...to this.
23893 (UMIPS_12BIT_OFFSET_P): New macro.
23894 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23895 (MULTILIB_DIRNAMES): Likewise.
23896
5e5df392
TV
238972013-02-25 Tom de Vries <tom@codesourcery.com>
23898
23899 PR rtl-optimization/56131
23900 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
23901 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
23902 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
23903
3fdb53c1
TB
239042013-02-25 Tobias Burnus <burnus@net-b.de>
23905
23906 * doc/invoke.texi (-fsanitize=): Move from optimization
23907 to debugging options.
23908
ed358aea
AB
239092013-02-25 Andrey Belevantsev <abel@ispras.ru>
23910
23911 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
23912
f45e9053
AB
239132013-02-25 Andrey Belevantsev <abel@ispras.ru>
23914 Alexander Monakov <amonakov@ispras.ru>
23915
23916 PR middle-end/56077
23917 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
23918 flush pending lists also on non-jumps. Adjust comment.
23919
6941b508
CM
239202013-02-24 Catherine Moore <clm@codesourcery.com>
23921 Maciej W. Rozycki <macro@codesourcery.com>
23922 Tom de Vries <tom@codesourcery.com>
a72d8780 23923 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
23924 Iain Sandoe <iain@codesourcery.com>
23925 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23926 Chao-ying Fu <fu@mips.com>
6941b508
CM
23927
23928 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23929 Document new function attributes.
6941b508
CM
23930 * doc/invoke.texi (minterlink-compressed, mmicromips,
23931 m14k, m14ke, m14kec): Document new options.
23932 (minterlink-mips16): Update documentation.
23933 * doc/md.texi (ZC, ZD): Document new constraints.
23934 * configure.ac (gcc_cv_as_micromips): Check if linker
23935 supports the .set micromips directive.
23936 * configure: Regenerate.
23937 * config.in: Regenerate.
23938 * config/mips/mips-tables.opt: Regenerate.
23939 * config/mips/micromips.md: New file.
23940 * constraints.md (ZC, AD): New constraints.
23941 * config/mips/predicates.md (movep_src_register): New predicate.
23942 (movep_src_operand): New predicate.
23943 (non_volatile_mem_operand): New predicate.
23944 * config/mips/mips.md (multimem): New type.
23945 (length): Differentiate between 17-bit and 18-bit branch offsets.
23946 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 23947 (mov_<load>l): Use ZC constraint.
6941b508
CM
23948 (mov_<load>r): Likewise.
23949 (mov_<store>l): Likewise.
23950 (mov_<store>r): Likewise.
23951 (*branch_equality<mode>_inverted): Add microMIPS support.
23952 (*branch_equality<mode>): Likewise.
23953 (*jump_absolute): Likewise.
23954 (indirect_jump_<mode>): Likewise.
23955 (tablejump_<mode>): Likewise.
23956 (<optab>_internal): Likewise.
23957 (sibcall_internal): Likewise.
23958 (sibcall_value_internal): Likewise.
23959 (prefetch): Use constraint ZD.
23960 * config/mips/mips.opt (minterlink-compressed): New option.
23961 (minterlink-mips16): Now an alias for minterlink-compressed.
23962 (mmicromips): New option.
23963 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23964 (compare_and_swap_12): Likewise.
23965 (sync_add<mode>): Likewise.
23966 (sync_<optab>_12): Likewise.
23967 (sync_old_<optab>_12): Likewise.
23968 (sync_new_<optab>_12): Likewise.
23969 (sync_nand_12): Likewise.
23970 (sync_old_nand_12): Likewise.
23971 (sync_new_nand_12): Likewise.
23972 (sync_sub<mode>): Likewise.
23973 (sync_old_add<mode>): Likewise.
23974 (sync_old_sub<mode>): Likewise.
23975 (sync_new_add<mode>): Likewise.
23976 (sync_new_sub<mode>): Likewise.
23977 (sync_<optab><mode>): Likewise.
23978 (sync_old_<optab><mode>): Likewise.
23979 (sync_new_<optab><mode>): Likewise.
23980 (sync_nand<mode>): Likewise.
23981 (sync_old_nand<mode>): Likewise.
23982 (sync_new_nand<mode>): Likewise.
23983 (sync_lock_test_and_set<mode>): Likewise.
23984 (test_and_set_12): Likewise.
23985 (atomic_compare_and_swap<mode>): Likewise.
23986 (atomic_exchange<mode>_llsc): Likewise.
23987 (atomic_fetch_add<mode>_llsc): Likewise.
23988 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23989 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23990 (umips_save_restore_pattern_p): Likewise.
23991 (umips_load_store_pair_p): Likewise.
23992 (umips_output_load_store_pair): Likewise.
23993 (umips_movep_target_p): Likewise.
23994 (umips_12bit_offset_address_p): Likewise.
23995 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23996 (mips_base_mips16): Rename this...
23997 (mips_base_compression_flags): ...to this. Update all uses.
23998 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23999 (mips_mips16_decl_p): Delete.
24000 (mips_nomips16_decl_p): Delete.
3fdb53c1 24001 (mips_get_compress_on_flags): New function.
6941b508
CM
24002 (mips_get_compress_off_flags): New function.
24003 (mips_get_compress_mode): New function.
24004 (mips_get_compress_on_name): New function.
24005 (mips_get_compress_off_name): New function.
24006 (mips_insert_attributes): Support multiple compression types.
24007 (mips_merge_decl_attributes): Likewise.
24008 (umips_12bit_offset_address_p): New function.
24009 (mips_start_function_definition): Emit .set micromips directive.
24010 (mips_call_may_need_jalx_p): New function.
24011 (mips_function_ok_for_sibcall): Add microMIPS support.
24012 (mips_print_operand_punctuation): Support short delay slots and
24013 compact jumps.
24014 (umips_swm_mask, umips_swm_encoding): New.
24015 (umips_build_save_restore): New function.
24016 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24017 (was_mips16_p): Remove.
24018 (old_compression_mode): New.
24019 (mips_set_compression_mode): New function.
24020 (mips_set_current_function): Add microMIPS support.
24021 (mips_option_override): Likewise.
24022 (umips_save_restore_pattern_p): New function.
24023 (umips_output_save_restore): New function.
24024 (umips_load_store_pair_p_1): New function.
24025 (umips_load_store_pair_p): New function.
24026 (umips_output_load_store_pair_1): New function.
24027 (umips_output_load_store_pair): New function.
24028 (umips_movep_target_p) New function.
24029 (mips_prepare_pch_save): Add microMIPS support.
24030 * config/mips/mips.h (TARGET_COMPRESSION): New.
24031 (TARGET_CPU_CPP_BUILTINS): Update macro
24032 to use new compression flags and to support microMIPS.
24033 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24034 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24035 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24036 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24037 (ASM_SPEC): Support mmicromips and mno-micromips.
24038 (M16STORE_REG_P): New macro.
24039 (MIPS_CALL): Support TARGET_MICROMIPS.
24040 (MICROMIPS_J): New macro.
24041 (mips_base_mips16): Rename this...
24042 (mips_base_compression_flags): ...to this.
24043 (UMIPS_12BIT_OFFSET_P): New macro.
24044 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24045 (MULTILIB_DIRNAMES): Likewise.
24046
cdebbc6d
JJ
240472013-02-24 Jakub Jelinek <jakub@redhat.com>
24048
24049 PR target/52555
24050 * target-globals.c (save_target_globals): For init_reg_sets and
24051 target_reinit remporarily set this_fn_optabs to this_target_optabs.
24052
18c63565
JG
240532013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
24054
24055 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
24056 * config/aarch64/t-aarch64
24057 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
24058
2194f7a2
VM
240592013-02-22 Vladimir Makarov <vmakarov@redhat.com>
24060
24061 PR inline-asm/56148
24062 * lra-constraints.c (process_alt_operands): Reload operand
24063 conflicting with earlier clobber only if no more other conflicting
24064 operands.
24065
7d613735
JJ
240662013-02-22 Jakub Jelinek <jakub@redhat.com>
24067
24068 PR sanitizer/56393
24069 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
24070 if not linking a shared library.
24071
ac8d93a7
SL
240722013-02-22 Seth LaForge <sethml@google.com>
24073
24074 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
24075
e0237780
GY
240762013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
24077
3fdb53c1
TB
24078 * config/arm/arm.md (split for extendsidi): Update condition.
24079 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24080 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24081 (qhs_zextenddi_cstr): Likewise.
e0237780 24082
d7fde18c
JJ
240832013-02-21 Jakub Jelinek <jakub@redhat.com>
24084
be63b77d
JJ
24085 PR middle-end/56420
24086 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24087 avoid signed wrapping.
24088 (expand_mult): Handle properly multiplication by
24089 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24090 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24091 in the compiler if coeff is HOST_WIDE_INT_MIN.
24092 (expand_divmod): Don't make ext_op1 static, change it's type to
24093 uhwi. Avoid undefined behavior in -INTVAL (op1).
24094
d7fde18c
JJ
24095 PR rtl-optimization/50339
24096 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24097 field.
24098 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24099 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24100 into splitting_ashiftrt field.
24101 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24102 ASHIFTRT.
24103 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24104 choices.
24105
6aad4455
AH
241062013-02-20 Aldy Hernandez <aldyh@redhat.com>
24107
24108 PR middle-end/56108
24109 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24110 are sure to go irrevocable.
24111
38fe784d
HPN
241122013-02-21 Hans-Peter Nilsson <hp@axis.com>
24113
24114 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24115 scalars are valid operands.
24116
0fd44da3
MJ
241172013-02-21 Martin Jambor <mjambor@suse.cz>
24118
24119 PR tree-optimization/56310
24120 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24121 only matching indices and non-negative final offsets.
24122 (intersect_aggregates_with_edge): Pass src_idx to
24123 agg_replacements_to_vector. Pass src_idx insstead of index to
24124 intersect_with_agg_replacements.
24125
7a92038b
MJ
241262013-02-21 Martin Jambor <mjambor@suse.cz>
24127
24128 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24129 instead of hard-wired defaults.
24130
c0da9c37
MR
241312013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24132
24133 * doc/invoke.texi (MIPS Options): Update documentation of the
24134 floating-point multiply-accumulate instruction restrictions.
24135
d247ea0c 241362013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24137
24138 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24139 asan_shadow_offset on x86_64 linux.
24140
22deefcb
RB
241412013-02-21 Richard Biener <rguenther@suse.de>
24142
24143 PR tree-optimization/56415
24144 Revert
24145 2013-02-11 Richard Biener <rguenther@suse.de>
24146
24147 PR tree-optimization/56273
24148 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24149 first VRP run.
24150
7bcc6e75
JJ
241512013-02-21 Jakub Jelinek <jakub@redhat.com>
24152
a0ad148f
JJ
24153 PR bootstrap/56258
24154 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24155 instead of @itemx.
24156
7bcc6e75
JJ
24157 PR inline-asm/56405
24158 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24159 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24160
a0a7b611
JH
241612013-02-20 Jan Hubicka <jh@suse.cz>
24162
24163 PR tree-optimization/56265
88b97037
UB
24164 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24165 when target is referenced for first time.
a0a7b611 24166
c0e50f72
RB
241672013-02-20 Richard Biener <rguenther@suse.de>
24168
24169 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24170 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24171 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24172 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24173 not return anything.
24174 (rename_ssa_copies): Do not remove unused locals.
24175 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24176 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24177 * passes.c (execute_function_todo): Do not schedule unused locals
24178 removal if cleanup_tree_cfg did something.
24179 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24180 about the number of removed locals.
24181
a52ca739
RB
241822013-02-20 Richard Biener <rguenther@suse.de>
24183
24184 PR tree-optimization/56398
88b97037 24185 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24186
ec9c9d1b
MJ
241872013-02-20 Martin Jambor <mjambor@suse.cz>
24188
24189 PR tree-optimization/55334
24190 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24191 restricted pointers to arrays.
24192
e91c8ed6 241932013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24194 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24195
24196 PR tree-optimization/56396
24197 * tree-ssa-ccp.c (n_const_val): New static variable.
24198 (get_value): Return NULL for SSA names we don't have a lattice
24199 entry for.
24200 (ccp_initialize): Initialize n_const_val.
24201 * tree-ssa-copy.c (n_copy_of): New static variable.
24202 (init_copy_prop): Initialize n_copy_of.
24203 (get_value): Return NULL_TREE for SSA names we don't have a
24204 lattice entry for.
24205
3d916479
MJ
242062013-02-20 Martin Jambor <mjambor@suse.cz>
24207
24208 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24209
71a86758
RB
242102013-02-20 Richard Biener <rguenther@suse.de>
24211
24212 * genpreds.c (write_lookup_constraint): Do not compare first
24213 letter of the constraint again.
24214
79836a12
RB
242152013-02-20 Richard Biener <rguenther@suse.de>
24216
24217 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24218 and ceil_log2.
24219 (get_use_iv_cost): Terminate hashtable walk when coming across
24220 an empty entry.
24221
bbe4fb2c
IZ
242222013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24223
24224 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24225 reassociation for avx2 targets.
24226
a72d8780 242272012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24228
c77f83d5
EI
24229 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24230 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24231 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24232 version and TARGET_PATTERN_COMPARE check
24233 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24234
a72d8780 242352012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24236
a72d8780 24237 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24238 function before branching.
24239
242387fa
AB
242402012-02-19 Andrey Belevantsev <abel@ispras.ru>
24241
24242 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24243 DUMP_INSN_RTX_UID.
24244 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24245
b4979ab9
AB
242462012-02-19 Andrey Belevantsev <abel@ispras.ru>
24247
24248 PR middle-end/55889
b4979ab9
AB
24249 * sel-sched.c: Include ira.h.
24250 (implicit_clobber_conflict_p): New function.
24251 (moveup_expr): Use it.
88b97037 24252 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24253
24d63016
RB
242542013-02-19 Richard Biener <rguenther@suse.de>
24255
24256 PR tree-optimization/56384
24257 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24258 (vn_hash_type): Split out from ...
24259 (vn_hash_constant_with_type): ... here.
24260 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24261 (vn_phi_eq): Compare types from vn_phi_s structure.
24262 (vn_phi_lookup): Populate vn_phi_s type.
24263 (vn_phi_insert): Likewise.
24264
a475fd3d
JJ
242652013-02-19 Jakub Jelinek <jakub@redhat.com>
24266
47cc28f5
JJ
24267 PR tree-optimization/56350
24268 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24269 if haven't found reduction or nested cycle operand, rather than
24270 asserting we must find it.
24271
a475fd3d
JJ
24272 PR tree-optimization/56381
24273 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24274 to fold_build3.
24275
242762013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24277 Jakub Jelinek <jakub@redhat.com>
24278
24279 PR target/52555
24280 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24281 (swap_optab_enable): Same.
24282 (init_all_optabs): Use argument instead of global.
88b97037 24283 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24284 * expr.h (init_all_optabs): Add argument to prototype.
24285 (TREE_OPTIMIZATION_OPTABS): New.
24286 (save_optabs_if_changed): Protoize.
24287 * optabs.h: Declare this_fn_optabs.
24288 * optabs.c (save_optabs_if_changed): New.
24289 Declare this_fn_optabs.
24290 (init_optabs): Add argument to init_all_optabs() call.
24291 * function.c (invoke_set_current_function_hook): Handle per
24292 function optabs.
24293 * function.h (struct function): New field optabs.
24294 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24295 optimization_current_node has changed.
24296 * target-globals.h (save_target_globals_default_opts): Protoize.
24297 * target-globals.c (save_target_globals_default_opts): New.
24298
3f587ca3
JDA
242992013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24300
24301 PR target/56347
24302 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24303 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24304
24305 PR target/56214
24306 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24307 and HImode, require all displacements to be an integer multiple of
24308 their mode size.
ceaca33e
JDA
24309 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24310 only allow QImode and HImode when reload is in progress and strict is
24311 true. Likewise for symbolic addresses. Use base14_operand to check
24312 displacements in REG+BASE addresses.
24313
fe0b4796
RB
243142013-02-18 Richard Biener <rguenther@suse.de>
24315
24316 PR tree-optimization/56366
24317 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24318 handle sign-conversion of outer-loop initial induction value.
24319
6aaf596b
RB
243202013-02-18 Richard Biener <rguenther@suse.de>
24321
73db8ff1 24322 PR middle-end/56349
6aaf596b
RB
24323 * cfghooks.c (merge_blocks): If we merge a latch into another
24324 block adjust references to it.
24325 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24326 (verify_loop_structure): Verify that a recorded latch is in fact
24327 a latch.
24328
5e97dfb6
RB
243292013-02-18 Richard Biener <rguenther@suse.de>
24330
24331 PR tree-optimization/56321
24332 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24333 order SSA name release and virtual operand unlinking.
24334
825527e8
EI
243352013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24336
24337 * config/microblaze/microblaze.md (save_stack_block): Define.
24338 (restore_stack_block): Likewise.
24339
debd11d9
EI
243402013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24341
24342 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24343 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24344 * config/microblaze/microblaze.c (microblaze_option_override):
24345 Bail out early for PIC modes when target does not support PIC.
24346
8ec77be0
EI
243472013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24348
88b97037 24349 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24350 Replace with a microblaze version.
24351 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24352 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24353 microblaze.
24354
b41288b3
JJ
243552013-02-16 Jakub Jelinek <jakub@redhat.com>
24356 Dodji Seketeli <dodji@redhat.com>
24357
24358 PR asan/56330
88b97037 24359 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24360 (instrument_mem_region_access): Do not forget to always put
24361 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24362 0) statement, even for cases where either 'base' or 'base + len'
24363 are not instrumented -- because they have been previously
24364 instrumented. Simplify the logic by putting all the statements
24365 instrument 'base + len' inside a sequence, and then insert that
24366 sequence right before the current insertion point. Then, to
24367 instrument 'base + len', just get an iterator on that statement.
24368 And do not forget to update the pointer to iterator the function
24369 received as argument.
24370
47918951
VM
243712013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24372
24373 PR rtl-optimization/56348
24374 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24375
3fb7c699
SB
243762013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24377
24378 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24379 (clean_graph_dump_file): Pass base to start_graph_dump.
24380
576fe41a
RH
243812013-02-14 Richard Henderson <rth@redhat.com>
24382
24383 PR target/55941
24384 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24385
bb3accfa
SB
243862013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24387
24388 * collect2-aix.h: Define F_LOADONLY.
24389
03143140
RB
243902013-02-14 Richard Biener <rguenther@suse.de>
24391
24392 PR lto/50494
24393 * varasm.c (output_constant_def_1): Get the decl representing
24394 the constant as argument.
24395 (output_constant_def): Wrap output_constant_def_1.
24396 (make_decl_rtl): Use output_constant_def_1 with the decl
24397 representing the constant.
24398 (build_constant_desc): Optionally re-use a decl already
24399 representing the constant.
24400 (tree_output_constant_def): Adjust.
24401
8fb06726
DS
244022013-02-14 Dodji Seketeli <dodji@redhat.com>
24403
24404 Fix an asan crash
24405 * asan.c (instrument_builtin_call): Really put the length of the
24406 second source argument into src1_len.
24407
c4bfe8bf
JJ
244082013-02-13 Jakub Jelinek <jakub@redhat.com>
24409
24410 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24411 argument. If it is false, don't create edge from then_bb to
24412 fallthru_bb.
24413 (insert_if_then_before_iter): Pass true to it.
24414 (build_check_stmt): Pass false to it.
24415 (transform_statements): Flush hash table only on extended basic
24416 block boundaries, rather than at the beginning of every bb.
24417 Don't flush hash table on nonfreeing_call_p calls.
24418 * tree-flow.h (nonfreeing_call_p): New prototype.
24419 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24420
7afe2801
DM
244212013-02-13 David S. Miller <davem@davemloft.net>
24422
24423 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24424
70cc3288
VM
244252013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24426
24427 PR target/56184
24428 * ira.c (max_regno_before_ira): Move from ...
24429 (ira): ... here.
24430 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24431 vec_safe_length.
24432
6422242b
JJ
244332013-02-13 Jakub Jelinek <jakub@redhat.com>
24434
24435 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24436
976a81ee
RB
244372013-02-13 Richard Biener <rguenther@suse.de>
24438
24439 PR lto/56295
24440 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24441 globals in MEM_REFs.
24442
c1874a87
RB
244432013-02-13 Richard Biener <rguenther@suse.de>
24444
24445 * loop-init.c (loop_optimizer_init): Clear loop state when
24446 re-initializing preserved loops.
24447 * loop-unswitch.c (unswitch_single_loop): Return whether
24448 we unswitched the loop. Do not verify loop state here.
88b97037 24449 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24450
b4ab7d34
KS
244512013-02-13 Kostya Serebryany <kcc@google.com>
24452
88b97037
UB
24453 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24454 on x86_64 linux.
b4ab7d34
KS
24455 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24456
bdcbe80c
DS
244572013-02-12 Dodji Seketeli <dodji@redhat.com>
24458
24459 Avoid instrumenting duplicated memory access in the same basic block
24460 * Makefile.in (asan.o): Add new dependency on hash-table.h
24461 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24462 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24463 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24464 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24465 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24466 (get_mem_ref_of_assignment): New functions.
24467 (get_mem_refs_of_builtin_call): Extract from
24468 instrument_builtin_call and tweak a little bit to make it fit with
24469 the new signature.
24470 (instrument_builtin_call): Use the new
24471 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24472 of is_gimple_builtin_call.
24473 (instrument_derefs, instrument_mem_region_access): Insert the
24474 instrumented memory reference into the hash table.
24475 (maybe_instrument_assignment): Renamed instrument_assignment into
24476 this, and change it to advance the iterator when instrumentation
24477 actually happened and return true in that case. This makes it
24478 homogeneous with maybe_instrument_assignment, and thus give a
24479 chance to callers to be more 'regular'.
24480 (transform_statements): Clear the memory reference hash table
24481 whenever we enter a new BB, when we cross a function call, or when
24482 we are done transforming statements. Use
24483 maybe_instrument_assignment instead of instrumentation. No more
24484 need to special case maybe_instrument_assignment and advance the
24485 iterator after calling it; it's now handled just like
24486 maybe_instrument_call. Update comment.
24487
4861a1f7
RB
244882013-02-13 Richard Biener <rguenther@suse.de>
24489
24490 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24491 Fix loop discovery code.
24492
1c86bd80
VM
244932013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24494
24495 PR inline-asm/56148
24496 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24497 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24498 the operand is not reloaded. Prefer to reload conflicting operand
24499 if earlyclobber and matching operands are the same.
24500
7cbda518
RB
245012013-02-12 Richard Biener <rguenther@suse.de>
24502
24503 PR lto/56297
24504 * lto-streamer-out.c (write_symbol): Do not output symbols
24505 for hard register variables.
24506
e68a4ef6
GJL
245072013-02-12 Georg-Johann Lay <avr@gjlay.de>
24508
24509 PR target/54222
24510 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24511 (umulsidi3_insn, mulsidi3_insn): New insns.
24512
a72d8780 245132013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24514
24515 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24516 (struct tune_params): Add vec_costs field.
24517 * config/arm/arm.c (arm_builtin_vectorization_cost)
24518 (arm_add_stmt_cost): New functions.
24519 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24520 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24521 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24522 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24523 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24524 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24525 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24526
43320568
RB
245272013-02-12 Richard Biener <rguenther@suse.de>
24528
24529 PR lto/56295
24530 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24531 decls again if possible.
24532
a011aa39
RB
245332013-02-12 Richard Biener <rguenther@suse.de>
24534
24535 PR middle-end/56288
24536 * tree-ssa.c (verify_ssa_name): Fix check, move
24537 SSA_NAME_IN_FREE_LIST check up.
24538
6da26889
JJ
245392013-02-12 Jakub Jelinek <jakub@redhat.com>
24540 Steven Bosscher <steven@gcc.gnu.org>
24541
24542 PR rtl-optimization/56151
24543 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24544 equal to op0 or op1, and last_insn pattern is CODE operation
24545 with MEM dest and one of the operands matches that MEM.
24546
f80e0faf
ST
245472013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24548
24549 * doc/extend.texi: Document Function Multiversioning and "default"
24550 parameter string to target attribute.
24551 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24552 target attribute parameter is "default".
24553 (ix86_compare_version_priority): Remove checks for target attribute.
24554 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24555 Remove check for target attribute equal to NULL. Add assert.
24556 (ix86_generate_version_dispatcher_body): Change error to sorry.
24557
6c59ffd1
IS
245582013-02-11 Iain Sandoe <iain@codesourcery.com>
24559 Jack Howarth <howarth@bromo.med.uc.edu>
24560 Patrick Marlier <patrick.marlier@gmail.com>
24561
24562 PR libitm/55693
24563 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24564 define ENDFILE_SPEC as TM_DESTRUCTOR.
24565 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24566
a72d8780 245672013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24568 Jack Howarth <howarth@bromo.med.uc.edu>
24569 Jakub Jelinek <jakub@redhat.com>
24570
24571 PR sanitizer/55617
24572 * config/darwin.c (cdtor_record): Rename ctor_record.
24573 (sort_cdtor_records): Rename sort_ctor_records.
24574 (finalize_dtors): New routine to sort destructors by
24575 priority before use in assemble_integer.
24576 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24577
b63fe007
UB
245782013-02-11 Uros Bizjak <ubizjak@gmail.com>
24579
24580 PR rtl-optimization/56275
24581 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24582 offset is non-negative and less than cmode size before
24583 calling simplify_subreg.
24584
8e89b5b5
RB
245852013-02-11 Richard Biener <rguenther@suse.de>
24586
24587 PR tree-optimization/56264
24588 * cfgloop.h (fix_loop_structure): Adjust prototype.
24589 * loop-init.c (fix_loop_structure): Return the number of
24590 newly discovered loops.
24591 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24592 are discovered, do a full loop-closed SSA rewrite.
24593
b4a4b56d
RB
245942013-02-11 Richard Biener <rguenther@suse.de>
24595
24596 PR tree-optimization/56273
24597 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24598 first VRP run.
24599 (check_array_ref): Fix missing newline in dumps.
24600 (search_for_addr_array): Likewise.
24601
0c885229
DE
246022013-02-09 David Edelsohn <dje.gcc@gmail.com>
24603
24604 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24605
59ac9a55
JJ
246062013-02-09 Jakub Jelinek <jakub@redhat.com>
24607
24608 PR target/56256
24609 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24610
25bb0bb5
VM
246112013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24612
24613 PR rtl-optimization/56246
0c885229 24614 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24615 reload pseudo.
24616 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24617 constraints are satisfied.
24618
a698cc03
JL
246192013-02-08 Jeff Law <law@redhat.com>
24620
24621 PR debug/53948
24622 * emit-rtl.c (reg_is_parm_p): New function.
24623 * regs.h (reg_is_parm_p): New prototype.
24624 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24625 callee-clobbered registers.
24626
e1122ddd
MM
246272013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24628
24629 PR target/56043
24630 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24631 If there is no implicit builtin declaration, just return NULL.
24632
19c5f6e6
UB
246332013-02-08 Uros Bizjak <ubizjak@gmail.com>
24634
24635 * config/i386/sse.md (FMAMODEM): New mode iterator.
24636 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24637 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24638
2480f2ca 246392013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24640
2480f2ca
UB
24641 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24642 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24643 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24644
246452013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24646
24647 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24648 (microblaze*-*-elf): Likewise.
24649 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24650 LINK_SPEC.
24651 * config/microblaze/microblaze-c.c: Add builtin defines for
24652 _LITTLE_ENDIAN and _BIG_ENDIAN.
24653 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24654 add to TARGET_DEFAULT flags.
76ef61fb 24655 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24656 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24657 * config/microblaze/microblaze.md: Update extendsidi2 and
24658 movdi_internal instructions to use low-order / high-order reg
24659 print_operands.
24660 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24661 options and inversemask / mask of LITTLE_ENDIAN.
24662 * config/microblaze/t-microblaze: Expand multilib options to
24663 include mlittle-endian (le) and update exceptions patterns.
24664
600a5961
JJ
246652013-02-08 Jakub Jelinek <jakub@redhat.com>
24666
5df81313
JJ
24667 PR rtl-optimization/56195
24668 * lra-constraints.c (get_reload_reg): Don't reuse regs
24669 if they have smaller mode than requested, if they have
24670 wider mode than requested, try to return a SUBREG.
24671
600a5961
JJ
24672 PR tree-optimization/56250
24673 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24674 if type is unsigned and code isn't MULT_EXPR.
24675
ff544649
GJL
246762013-02-08 Georg-Johann Lay <avr@gjlay.de>
24677
24678 PR tree-optimization/56064
24679 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24680 bits according to mode.
24681 * fixed-value.h (fixed_from_double_int)
24682 (const_fixed_from_double_int): Adjust comments.
24683
e45cde98
RB
246842013-02-08 Richard Biener <rguenther@suse.de>
24685
24686 PR lto/56231
24687 * lto-streamer.h (struct data_in): Remove current_file, current_line
24688 and current_col members.
24689 * lto-streamer-out.c (lto_output_location): Stream changed bits
24690 en-block for efficiency.
24691 * lto-streamer-in.c (clear_line_info): Remove.
24692 (lto_input_location): Cache current file, line and column
24693 globally via local statics. Read changed bits en-block.
24694 (input_function): Do not call clear_line_info.
24695 (lto_read_body): Likewise.
24696 (lto_input_toplevel_asms): Likewise.
24697
c1ca73d8
MM
246982013-02-08 Michael Matz <matz@suse.de>
24699
24700 PR tree-optimization/52448
24701 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24702 (nt_call_phase): New static.
24703 (add_or_mark_expr): Only mark accesses with newer phase than any
24704 call seen.
24705 (nonfreeing_call_p): New.
24706 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24707 (nt_fini_block): Keep blocks marked as visited.
24708 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24709
57548aa2
RB
247102013-02-08 Richard Biener <rguenther@suse.de>
24711
24712 * ira.c (ira): Free broken dominator information.
24713
8e10366f
UB
247142013-02-08 Uros Bizjak <ubizjak@gmail.com>
24715
24716 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24717
f64fb0fa
MP
247182013-02-08 Marek Polacek <polacek@redhat.com>
24719
8e10366f 24720 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24721
0375167b
RB
247222013-02-08 Richard Biener <rguenther@suse.de>
24723
24724 PR middle-end/56181
24725 * cfgloop.h (flow_loops_find): Adjust.
24726 (bb_loop_header_p): Declare.
24727 * cfgloop.c (bb_loop_header_p): New function split out from ...
24728 (flow_loops_find): ... here. Adjust function signature,
24729 support incremental loop structure update.
24730 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24731 * cfgloopmanip.c (fix_loop_structure): Move ...
24732 * loop-init.c (fix_loop_structure): ... here.
24733 (apply_loop_flags): Split out from ...
24734 (loop_optimizer_init): ... here.
24735 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24736 in incremental mode, only remove dead loops here.
24737
85d768f3
GJL
247382013-02-08 Georg-Johann Lay <avr@gjlay.de>
24739
24740 PR target/54222
24741 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24742 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24743 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24744 (*round<mode>3.libgcc): New insns for fixed-modes.
24745 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24746 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24747 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24748 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24749 implementations. Define to __builtin_avr_absFX,
24750 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24751 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24752 __builtin_avr_countlsFX, respectively.
24753 * config/avr/avr-c.c (target.h): Include it.
24754 (enum avr_builtin_id): New enum.
24755 (avr_resolve_overloaded_builtin): New static function.
24756 (avr_register_target_pragmas): Use it to set
24757 targetm.resolve_overloaded_builtin.
24758 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24759 tree nodes used by DEF_BUILTIN.
24760 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24761 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24762 <AVR_BUILTIN_xxBITS>: Same.
24763
661bc682
RB
247642013-02-08 Richard Biener <rguenther@suse.de>
24765
24766 * cfgloop.c (verify_loop_structure): Properly handle
24767 a loop exiting to another loop header.
24768 * ira-int.h (ira_loops): Remove.
24769 * ira.c (ira_loops): Remove.
24770 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24771 (do_reload): Use loop_optimizer_finalize.
24772 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24773 number_of_loops to access the loop tree.
24774 (more_one_region_p): Likewise.
24775 (finish_loop_tree_nodes): Likewise.
24776 (rebuild_regno_allocno_maps): Likewise.
24777 (mark_loops_for_removal): Likewise.
24778 (mark_all_loops_for_removal): Likewise.
24779 (remove_unnecessary_regions): Likewise.
24780 (ira_build): Likewise.
24781 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24782
0d5049b2
RB
247832013-02-08 Richard Biener <rguenther@suse.de>
24784
24785 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24786 * ipa-pure-const.c (analyze_function): Avoid calling
24787 mark_irreducible_loops twice.
8e10366f 24788 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 24789
499f32e8
DM
247902013-02-07 David S. Miller <davem@davemloft.net>
24791
24792 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24793 on 'reg'.
24794 * var-tracking.c (vt_add_function_parameter): Test the presence of
24795 HAVE_window_save properly and do not remap argument registers when
24796 we have a leaf function.
24797
6edc3e32
UB
247982013-02-07 Uros Bizjak <ubizjak@gmail.com>
24799
24800 PR bootstrap/56227
24801 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24802 instead of "ll".
24803 * config/i386/i386.c (ix86_print_operand): Ditto.
24804
5306401f
VM
248052013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24806
6edc3e32 24807 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 24808
027ece11
VM
248092013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24810
24811 PR rtl-optimization/56225
24812 * lra-constraints.c (process_alt_operands): Check that reload hard
24813 reg can hold value for strict_low_part.
24814
f980dfdb
JJ
248152013-02-07 Jakub Jelinek <jakub@redhat.com>
24816
24817 PR debug/56154
24818 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24819 dwarf2out_end_function.
24820 (in_first_function_p, maybe_at_text_label_p,
24821 first_loclabel_num_not_at_text_label): New variables.
24822 (dwarf2out_var_location): In the first function find out
6edc3e32 24823 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
24824 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24825 functions.
24826
73dd3123
EB
248272013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24828
24829 PR rtl-optimization/56178
24830 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24831 SUBREG of a register. Tidy up related block of code.
24832 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24833 note if the source is a register or a SUBREG of a register.
24834
e3936f47
JJ
248352013-02-07 Jakub Jelinek <jakub@redhat.com>
24836
24837 PR target/56228
24838 * config/rs6000/rs6000.md (ptrm): New mode attr.
24839 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
24840 call_value_indirect_aix<pttrsize>,
24841 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
24842 m in constraints.
24843
d96d674b
MH
248442013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24845
24846 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
24847 if -bnortl. Convert to strcmp and strncmp.
24848
921f2dee
AM
248492013-02-07 Alan Modra <amodra@gmail.com>
24850
24851 PR target/54009
24852 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
24853 addresses won't wrap when offsetting.
24854 (rs6000_secondary_reload): Provide secondary reloads needed for
24855 wrapping LO_SUM addresses.
24856
d09c7dba
TS
248572013-02-06 Thomas Schwinge <thomas@codesourcery.com>
24858
24859 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
24860 MACH, just __MACH__.
24861
a44bbd48
RB
248622013-02-06 Richard Biener <rguenther@suse.de>
24863
24864 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
24865 instead of calling fix_loop_structure.
24866
6d840d99
JJ
248672013-02-06 Jakub Jelinek <jakub@redhat.com>
24868
24869 PR middle-end/56217
24870 * omp-low.c (use_pointer_for_field): Return false if
24871 lower_send_shared_vars doesn't generate any copy-out code.
24872
0f33baa9
TV
248732013-02-06 Tom de Vries <tom@codesourcery.com>
24874
24875 PR rtl-optimization/56131
24876 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
24877 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
24878 of the label is NULL. Add comment.
24879
11f1e3ab
JJ
248802013-02-05 Jakub Jelinek <jakub@redhat.com>
24881
31502f9f
JJ
24882 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
24883
a74db9bd
JJ
24884 PR sanitizer/55374
24885 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
24886 (STATIC_LIBTSAN_LIBS): Likewise.
24887 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
24888 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
24889 is defined, don't add anything else beyond that.
24890 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
24891 (LINK_COMMAND_SPEC): Use them.
24892
11f1e3ab
JJ
24893 PR tree-optimization/56205
24894 * tree-stdarg.c (check_all_va_list_escapes): Return true if
24895 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
24896 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
24897
14ac6aa2
RB
248982013-02-05 Richard Biener <rguenther@suse.de>
24899
24900 PR tree-optimization/53342
24901 PR tree-optimization/53185
24902 * tree-vectorizer.h (vect_check_strided_load): Remove.
24903 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
24904 not disallow peeling for vectorized strided loads.
24905 (vect_check_strided_load): Make static and simplify.
24906 (vect_analyze_data_refs): Adjust.
24907 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
24908 correctly when vectorizing strided loads.
24909
6f22445a
RB
249102013-02-05 Richard Biener <rguenther@suse.de>
24911
24912 * doc/install.texi: Refer to ISL, not PPL.
24913
39f9719e
JH
249142013-02-05 Jan Hubicka <jh@suse.cz>
24915
ec4224ac
JH
24916 PR tree-optimization/55789
24917 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
24918
249192013-02-05 Jan Hubicka <jh@suse.cz>
24920
24921 PR tree-optimization/55789
39f9719e
JH
24922 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
24923 the dead call anyway.
24924
956d3b33
EB
249252013-02-05 Eric Botcazou <ebotcazou@adacore.com>
24926
24927 PR sanitizer/55374
24928 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
24929
249302013-02-04 Alexander Potapenko <glider@google.com>
24931 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
24932 Jakub Jelinek <jakub@redhat.com>
24933
24934 PR sanitizer/55617
24935 * config/darwin.c (sort_ctor_records): Stabilized qsort
24936 on constructor priority by using original position.
24937 (finalize_ctors): New routine to sort constructors by
24938 priority before use in assemble_integer.
24939 (machopic_asm_out_constructor): Use finalize_ctors if needed.
24940
7ac3af38
JJ
249412013-02-04 Jakub Jelinek <jakub@redhat.com>
24942
24943 PR libstdc++/54314
24944 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
24945 about visibility on artificial decls.
24946 * config/sol2.c (solaris_assemble_visibility): Likewise.
24947
152689dc
KT
249482013-02-04 Kai Tietz <ktietz@redhat.com>
24949
24950 PR target/56186
24951 * config/i386/i386.c (function_value_ms_64): Add additional valtype
24952 argument and improve checking of return-argument types for 16-byte
24953 modes.
24954 (ix86_function_value_1): Add additional valtype argument on call
24955 of function_value_64.
24956 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
24957 handling infunction_value_64 function.
24958
2b5987b5
MGD
249592013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
24960
7ac3af38 24961 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 24962
14597080
RB
249632013-02-04 Richard Biener <rguenther@suse.de>
24964
24965 PR tree-optimization/56188
24966 * tree-ssa-structalias.c (label_visit): Consider case with
24967 initially non-empty points-to set.
24968 (perform_var_substitution): Dump node mapping and clean up.
24969
ed73881e
RG
249702013-02-04 Richard Guenther <rguenther@suse.de>
24971
24972 PR lto/56168
24973 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
24974 node prevail as last resort.
24975 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 24976 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 24977
139a0707
RB
249782013-02-04 Richard Biener <rguenther@suse.de>
24979
24980 PR tree-optimization/56113
24981 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
24982 Merge into ...
24983 (equiv_class_lookup_or_add): ... this.
24984 (label_visit): Adjust and fix error in previous patch.
24985 (perform_var_substitution): Adjust.
24986
50fe8924
OE
249872013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
24988
24989 * config/sh/divtab.c: Fix formatting and comments throughout the file.
24990 * config/sh/sh4-300.md: Likewise.
24991 * config/sh/sh4a.md: Likewise.
24992 * config/sh/constraints.md: Likewise.
24993 * config/sh/sh.md: Likewise.
24994 * config/sh/netbsd-elf.h: Likewise.
24995 * config/sh/predicates.md: Likewise.
24996 * config/sh/sh-protos.h: Likewise.
24997 * config/sh/ushmedia.h: Likewise.
24998 * config/sh/linux.h: Likewise.
24999 * config/sh/sh.c: Likewise.
25000 * config/sh/superh.h: Likewise.
25001 * config/sh/elf.h: Likewise.
25002 * config/sh/sh4.md: Likewise.
25003 * config/sh/sh.h: Likewise.
25004
1a04ac2b
JDA
250052013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25006
25007 * config/pa/constraints.md: Adjust unused letters. Change "T"
25008 constraint to match_test floating_point_store_memory_operand().
25009 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
25010 (base14_operand): New.
25011 (floating_point_store_memory_operand): New.
25012 (integer_store_memory_operand): Revise to use base14_operand and
25013 reg_plus_base_memory_operand.
25014 (move_dest_operand): Allow symbolic_memory_operands.
25015 (symbolic_memory_operand): Check for LO_SOM.
25016 (symbolic_operand): Change default case to break.
25017 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
25018 CONST_DOUBLE values to be reloaded by putting them into memory when
25019 the destination is a floating point register.
25020 (movdf): Remove code to handle CONST_DOUBLE.
25021 (movsf): Likewise.
25022 (reload_indf_r1): New.
25023 (reload_insf_r1): New.
25024 Consistently use "Q" and "T" constraints with integer and floating
25025 point move instructions, respectively.
25026 (movdi): Remove FAIL.
25027 Change predicate for source operand unamed DImode move from
25028 general_operand to move_src_operand.
25029 (umulsidi3): Change predicate for destination operand to
25030 register_operand.
25031 Likewise for similar unamed patterns.
25032 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
25033 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
25034 (hppa_legitimize_address): Simplify mask calculation.
25035 (pa_emit_move_sequence): Revised handling of secondary reloads from
25036 REG+D addresses for floating point loads and stores. Directly handle
25037 loading CONST0_RTX (mode) to a floating point register.
25038 (pa_secondary_reload): Handle reloading DF and SFmode constant values
25039 to floating point registers. Don't restrict secondary reloads to
25040 floating point registers to integer modes. Revise some comments and
25041 cleanup some code.
25042 (TARGET_LEGITIMATE_ADDRESS_P): Define.
25043 (pa_legitimate_address_p): New.
25044 (pa_legitimize_reload_address): New.
25045 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
25046 (STRICT_REG_OK_FOR_BASE_P): New.
25047 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
25048 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
25049
3bf65591
DE
250502013-02-03 David Edelsohn <dje.gcc@gmail.com>
25051 Andrew Dixie <andrewd@gentrack.com>
25052
25053 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
25054 flag set.
25055
c0a8a3e6
RS
250562013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
25057
25058 * expmed.c (extract_bit_field_1): Pass the full width of the
25059 structure to get_best_reg_extraction_insn.
25060
99113dff
DE
250612013-02-01 David Edelsohn <dje.gcc@gmail.com>
25062
25063 PR target/54601
25064 * configure.ac (use_cxa_atexit): Add AIX.
25065 * configure: Regenerate.
25066
25067 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
25068
ddd84654
JJ
250692013-02-01 Jakub Jelinek <jakub@redhat.com>
25070
25071 PR debug/54793
25072 * final.c (need_profile_function): New variable.
25073 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
25074 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
25075 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
25076 notes, targetm.asm_out.function_prologue doesn't emit anything,
25077 HAVE_prologue and profiler should be emitted before prologue,
25078 set need_profile_function instead of emitting it.
25079 (final_scan_insn): If need_profile_function, emit
25080 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25081 NOTE_INSN_FUNCTION_BEG note.
25082
250832013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25084
25085 * config/rs6000/rs6000.md (smulditi3): New.
25086 (umulditi3): New.
25087
ff2a9d88
RH
25088 * config/alpha/alpha.md (umulditi3): New.
25089
14d52b90
DE
250902013-02-01 David Edelsohn <dje.gcc@gmail.com>
25091
25092 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25093 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25094
8c7ca45c
RB
250952013-02-01 Richard Biener <rguenther@suse.de>
25096
25097 PR tree-optimization/56113
25098 * tree-ssa-structalias.c (label_visit): Reduce work for
25099 single-predecessor nodes.
25100
9f419393
EB
251012013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25102
25103 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25104 range isn't testing for zero.
25105
c5f4be84
SB
251062013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25107
25108 PR middle-end/56113
25109 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25110
dbdbd982
NC
251112013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25112 Nick Clifton <nickc@redhat.com>
25113
25114 * config/v850/constraints.md (Q): Define as a memory constraint.
25115 * config/v850/predicates.md (label_ref_operand): New predicate.
25116 (e3v5_shift_operand): New predicate.
25117 (ior_operator): New predicate.
25118 * config/v850/t-v850: Add e3v5 multilib.
25119 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25120 (v850_gen_movdi): Prototype.
25121 * config/v850/v850.c: Add support for e3v5 architecture.
25122 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25123 TARGET_V850E_UP.
25124 (construct_save_jarl): Add e3v5 long JARL support.
25125 (v850_adjust_insn_length): New function. Adjust length of call
25126 insns when using e3v5 instructions.
25127 (v850_gen_movdi): New function: Generate instructions to move a
25128 DImode value.
25129 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25130 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25131 (TARGET_USE_FPU): Enable for e3v5.
25132 (CONST_OK_FOR_W): New macro.
25133 (ADJUST_INSN_LENGTH): Define.
25134 * config/v850/v850.md (UNSPEC_LOOP): Define.
25135 (attr cpu): Add v850e3v5.
25136 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25137 (movdi): New pattern.
25138 (movdi_internal): New pattern.
25139 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25140 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25141 (cstoresf4): Likewise.
25142 (cstoredf4): Likewise.
25143 (insv): New pattern.
25144 (rotlso3_a): New pattern.
25145 (rotlsi3_b): New pattern
25146 (rotlsi3_v850e3v5): New pattern.
25147 (doloop_begin): New pattern.
25148 (fix_loop_counter): New pattern.
25149 (doloop_end): New pattern.
25150 (branch_normal): Add e3v5 long branch support.
25151 (branch_invert): Likewise.
25152 (branch_z_normal): Likewise.
25153 (branch_z_invert): Likewise.
25154 (branch_nz_normal): Likewise.
25155 (branch_nz_invert): Likewise.
25156 (call_internal_short): Add e3v5 register-indirect JARL support.
25157 (call_internal_long): Likewise.
25158 (call_value_internal_short): Likewise.
25159 (call_value_internal_long): Likewise.
25160 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25161 (mloop): New option.
25162 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25163 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25164
73861a41
PK
251652013-01-31 Paul Koning <ni1d@arrl.net>
25166
25167 PR debug/55059
25168 PR debug/54508
25169 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25170 children if parent is a class.
25171 (prune_unused_types_prune): Don't add DW_AT_declaration.
25172
e44978dc
RB
251732013-01-31 Richard Biener <rguenther@suse.de>
25174
25175 PR tree-optimization/56157
25176 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25177 match up operand with SLP child.
25178
90b10dec
JM
251792013-01-31 Jason Merrill <jason@redhat.com>
25180
04d2dadd 25181 PR debug/54410
90b10dec
JM
25182 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25183 parameters the first time.
25184 (gen_scheduled_generic_parms_dies): Check completeness here.
25185
6e616110
RB
251862013-01-31 Richard Biener <rguenther@suse.de>
25187
25188 PR middle-end/53073
25189 * common.opt (faggressive-loop-optimizations): New flag,
25190 enabled by default.
25191 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25192 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25193 infer_loop_bounds_from_undefined by it.
25194
636f59cf
RB
251952013-01-31 Richard Biener <rguenther@suse.de>
25196
25197 PR tree-optimization/56150
25198 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25199 visit virtual operands.
25200 (find_uses_to_rename_bb): Likewise.
25201
252022013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25203
25204 PR tree-optimization/56150
25205 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25206 mixed store non-store stmts.
25207
32887460
JJ
252082013-01-30 Jakub Jelinek <jakub@redhat.com>
25209
e60e09a0
JJ
25210 PR sanitizer/55374
25211 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25212 LIBASAN_EARLY_SPEC is defined.
25213 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25214 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25215 before %o.
25216 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25217
32887460
JJ
25218 PR c++/55742
25219 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25220 invalid args instead of ICEing on it.
25221 (ix86_valid_target_attribute_tree): Return error_mark_node if
25222 ix86_valid_target_attribute_inner_p failed.
25223 (ix86_valid_target_attribute_p): Return false only if
25224 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25225 target("default") attribute.
25226 (sorted_attr_string): Change argument from const char * to tree,
25227 merge in all target attribute arguments rather than just one.
25228 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25229 instead of free. Avoid using strcat.
25230 (ix86_mangle_function_version_assembler_name): Mangle
25231 target("default") as if no target attribute is present. Adjust
25232 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25233 instead of xmalloc and XDELETEVEC instead of free.
25234 (ix86_function_versions): Don't return true if one of the decls
25235 doesn't have target attribute. If they don't and one of the decls
25236 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25237 sorted_attr_string caller. Use XDELETEVEC instead of free.
25238 (ix86_supports_function_versions): Remove.
25239 (make_name): Fix up formatting.
25240 (make_dispatcher_decl): Remove resolver_name and its initialization.
25241 Avoid leaking memory.
25242 (is_function_default_version): Return true if there is
25243 target("default") attribute rather than no target attribute at all.
25244 (make_resolver_func): Avoid leaking memory.
25245 (ix86_generate_version_dispatcher_body): Likewise.
25246 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25247 * target.def (supports_function_versions): Remove.
25248 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25249 * doc/tm.texi: Regenerated.
25250
73cca0cc
VM
252512013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25252
25253 PR rtl-optimization/56144
25254 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25255 for values with side effects.
25256
11452e7b
RB
252572013-01-30 Richard Biener <rguenther@suse.de>
25258
25259 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25260 (sparseset_pop): Likewise.
25261 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25262 to be able to use quick_push in the worker loop.
25263
01cb1ef5
MP
252642013-01-30 Marek Polacek <polacek@redhat.com>
25265
25266 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25267
e892936e
RB
252682013-01-30 Richard Biener <rguenther@suse.de>
25269
25270 PR lto/56147
6edc3e32 25271 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25272
cc06c01d
GJL
252732013-01-30 Georg-Johann Lay <avr@gjlay.de>
25274
25275 PR tree-optimization/56064
25276 * fixed-value.c (fixed_from_double_int): New function.
25277 * fixed-value.h (fixed_from_double_int): New prototype.
25278 (const_fixed_from_double_int): New static inline function.
25279 * fold-const.c (native_interpret_fixed): New static function.
25280 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25281 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25282 (native_encode_fixed): New static function.
25283 (native_encode_expr) <FIXED_CST>: Use it.
25284 (native_interpret_int): Move double_int worker code to...
25285 * double-int.c (double_int::from_buffer): ...this new static method.
25286 * double-int.h (double_int::from_buffer): Prototype it.
25287
d394a308
RB
252882013-01-30 Richard Biener <rguenther@suse.de>
25289
25290 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25291 New pointer-map and obstack.
25292 (init_alias_vars): Allocate pointer-map and obstack.
25293 (delete_points_to_sets): Free them.
25294 (find_what_var_points_to): Cache result.
25295 (find_what_p_points_to): Adjust for changed interface of
25296 find_what_var_points_to.
25297 (compute_points_to_sets): Likewise.
25298 (ipa_pta_execute): Likewise.
25299
20804d96
RO
253002013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25301
25302 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25303 * configure: Regenerate.
25304 * config.in: Regenerate.
25305 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25306 #nobits/#progbits if supported.
25307
a7ad88a2
OE
253082013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25309
25310 PR target/56121
25311 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25312 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25313 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25314
7af79f92
GY
253152013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25316
91bfca59
OE
25317 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25318 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25319
753bcf7b
GY
253202013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25321
91bfca59
OE
25322 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25323 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25324
8cbc2ea8
GY
253252013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25326
91bfca59
OE
25327 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25328 declaration.
25329 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25330 * config/arm/cortex-a7.md: New bypasses using
25331 arm_mac_accumulator_is_result.
8cbc2ea8 25332
697a3325
GY
253332013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25334
91bfca59 25335 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25336 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25337 (cortex_a7_fpfmad): New reservation.
25338 (cortex_a7_fpmacs): Use ffmas and update required units.
25339 (cortex_a7_fpmuld): Update required units and latency.
25340 (cortex_a7_fpmacd): Likewise.
25341 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25342 (cortex_a7_neon). Likewise.
25343 (bypass) Update participating units.
697a3325 25344
29637783
GY
253452013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25346
91bfca59
OE
25347 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25348 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25349 from fmac to ffma.
25350 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25351 (vfp_fmul): Use ffmad.
25352 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25353 (cortex_r4_fmacd): Use ffmad.
25354 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25355 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25356 (cortex_a9_fmacd): Use ffmad.
25357 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25358 (cortex_a8_vfp_macd): Use ffmad.
25359 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25360 (cortex_a5_fpmacd): Use ffmad.
25361 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25362 (cortex_a15_vfp_macd): Use ffmad.
25363 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25364
2ee8a2d5
JM
253652013-01-29 Jason Merrill <jason@redhat.com>
25366
25367 PR libstdc++/54314
25368 * varasm.c (default_assemble_visibility): Don't warn about
25369 visibility on artificial decls.
25370
78d087bc
RB
253712013-01-29 Richard Biener <rguenther@suse.de>
25372
25373 PR tree-optimization/56113
25374 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25375 the bitmap leader.
25376 (label_visit): Free duplicate bitmaps and record the leader instead.
25377 (perform_var_substitution): Adjust.
25378
83ba4d6f
RB
253792013-01-29 Richard Biener <rguenther@suse.de>
25380
25381 PR tree-optimization/55270
25382 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25383 the CFG, schedule loops for fixup.
25384
66dfe13f
NC
253852013-01-29 Nick Clifton <nickc@redhat.com>
25386
25387 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25388 SP_REG.
25389
5a579c3b
LE
253902013-01-28 Leif Ekblad <leif@rdos.net>
25391
25392 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25393 * config/i386/i386.h (TARGET_RDOS): New macro.
25394 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25395 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25396 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25397 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25398 DEFAULT_LARGE_SECTION_THRESHOLD.
25399 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25400 * config/i386/rdos.h: New file.
25401 * config/i386/rdos64.h: New file.
25402
51e44392
BS
254032013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25404
25405 PR other/54814
25406 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25407 TEST_HARD_REG_BIT.
25408
db1fb332
JJ
254092013-01-28 Jakub Jelinek <jakub@redhat.com>
25410
25411 PR rtl-optimization/56117
25412 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25413 call cselib_lookup_from_insn on the MEM before calling
25414 add_insn_mem_dependence.
25415
16917761
RB
254162013-01-28 Richard Biener <rguenther@suse.de>
25417
25418 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25419 to a stmt that didn't have one.
25420 (copy_phis_for_bb): Likewise for PHI arguments.
25421 (copy_debug_stmt): Likewise for debug stmts.
25422
b9fc0497
RB
254232013-01-28 Richard Biener <rguenther@suse.de>
25424
25425 PR tree-optimization/56034
6edc3e32 25426 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25427 (partition_builtin_p): Adjust.
25428 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25429 it is the last partition.
25430 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25431 up the vertex for the definition.
25432 (classify_partition): Classify whether a partition is a
25433 PKIND_REDUCTION, thus has uses outside of the loop.
25434 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25435 Merge all PKIND_REDUCTION partitions into the last partition.
25436 (tree_loop_distribution): Seed partitions from reductions as well.
25437
aa710d25
JJ
254382013-01-28 Jakub Jelinek <jakub@redhat.com>
25439
0bfbca58
JJ
25440 PR tree-optimization/56125
25441 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25442 pow(x,c) into sqrt(x) * powi(x, n/2) or
25443 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25444 optimizing for size.
25445 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25446 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25447 integer.
25448
aa710d25
JJ
25449 PR tree-optimization/56094
25450 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25451 to UNKNOWN_LOCATION while gimplifying expr.
25452
77dc5297
UB
254532013-01-27 Uros Bizjak <ubizjak@gmail.com>
25454
25455 PR target/56114
25456 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25457 operand 0 in movabs insn template for -masm=intel asm alternative.
25458 (*movabs<mode>_2): Ditto for operand 1.
25459
0bfbca58 254602013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25461
25462 PR target/54663
25463 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25464 of microblaze-c.o
25465
0bfbca58 254662013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25467
25468 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25469 tm_file.
25470
0bfbca58 254712013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25472
25473 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25474 Undef to avoid warning.
25475
478f60f9
MH
254762013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25477
25478 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25479 * configure: Regenerate.
25480
d7fa6ee2
JJ
254812013-01-25 Jakub Jelinek <jakub@redhat.com>
25482
25483 PR tree-optimization/56098
25484 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25485 for stmts with volatile ops.
25486 (cond_store_replacement): Don't optimize if assign has volatile ops.
25487 (cond_if_else_store_replacement_1): Don't optimize if either
25488 then_assign or else_assign have volatile ops.
25489 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25490 volatile ops.
25491
f8fe87bd
GJL
254922013-01-25 Georg-Johann Lay <avr@gjlay.de>
25493
25494 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25495
28398d0d
GJL
254962013-01-25 Georg-Johann Lay <avr@gjlay.de>
25497
25498 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25499 missing ':' in asm example.
25500
b7d7d917
TB
255012013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25502
25503 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25504 entries into lane and laneq entries.
77dc5297
UB
25505 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25506 Remove AdvSIMD scalar modes.
b7d7d917
TB
25507 (aarch64_sq<r>dmulh_laneq<mode>): New.
25508 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25509 modes.
25510 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25511 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25512 * config/aarch64/iterators.md (VCOND): New.
25513 (VCONQ): New.
25514
556f9906
GJL
255152013-01-25 Georg-Johann Lay <avr@gjlay.de>
25516
25517 PR target/54222
25518 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25519 Add NULL LIBNAME argument to existing definitions.
25520 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25521 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25522 * config/avr/avr.c (DEF_BUILTIN): Same.
25523 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25524 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25525 implementation is available (DECL_ASSEMBLER_NAME is set).
25526 (avr_fold_absfx): New static function.
25527 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25528 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25529 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25530 AVR_BUILTIN_ABSLLK.
25531 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25532 (abshk, absk, abslk, absllk): Provide as static inline functions.
25533
1f546bbb
MP
255342013-01-25 Marek Polacek <polacek@redhat.com>
25535
25536 PR tree-optimization/56035
25537 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25538
7e184bd7
UB
255392012-01-24 Uros Bizjak <ubizjak@gmail.com>
25540
25541 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25542 (*movtf_internal_rex64): Add (!o,C) alternative
25543 (*movxf_internal_rex64): Ditto.
25544 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25545
f5ba49ac
SM
255462013-01-24 Shenghou Ma <minux.ma@gmail.com>
25547
25548 * doc/invoke.texi: fix typo.
25549 * doc/objc.texi: fix typo.
25550
a6343728
RS
255512013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25552
25553 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25554 for the first two alternatives.
25555
cd030c07
DN
255562013-01-24 Diego Novillo <dnovillo@google.com>
25557
77dc5297 25558 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25559 (ggc-zone.o): Remove.
25560 * configure.ac: Remove option --with-gc.
25561 * configure: Re-generate.
25562 * doc/install.texi: Remove documentation for --with-gc.
25563 * gengtype.c (write_enum_defn): Remove. Update all users.
25564 (write_Types_process_field): Remove generation of gt_e_* argument.
25565 (output_type_enum): Remove. Update all users.
25566 (write_enum_defn): Remove. Update all users.
25567 (enum alloc_zone): Remove. Update all users.
77dc5297 25568 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25569 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25570 Update all callers.
25571 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25572 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25573 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25574 Update all users.
aaf1e810 25575 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25576 (struct alloc_zone): Remove.
25577 (ggc_internal_alloc_zone_stat): Remove.
25578 (ggc_internal_cleared_alloc_zone_stat): Remove.
25579 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25580 (ggc_pch_count_object): Remove last argument. Update all users.
25581 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25582 (struct alloc_zone): Remove.
25583 * ggc-zone.c: Remove.
77dc5297 25584 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25585 (struct alloc_zone): Remove.
25586 (ggc_alloc_typed_stat): Remove.
25587 (ggc_alloc_typed): Remove.
25588 (ggc_splay_alloc): Remove first argument.
25589 (rtl_zone): Remove. Update all users.
25590 (tree_zone): Remove. Update all users.
25591 (tree_id_zone): Remove. Update all users.
25592 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25593 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25594 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25595 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25596
a861ffa4
GJL
255972013-01-24 Georg-Johann Lay <avr@gjlay.de>
25598
25599 * config/avr/avr.c (avr_out_fract): Make register numbers that
25600 might be outside of source operand signed.
25601
593c0ddd
UB
256022013-01-24 Uros Bizjak <ubizjak@gmail.com>
25603
25604 * config/i386/constraints.md (Yf): New constraint.
25605 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25606 of f constraint to conditionaly disable x87 register preferences.
25607 (*movdf_internal): Ditto.
25608 (*movsf_internal): Ditto.
25609
e86c0101
SB
256102013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25611
25612 PR inline-asm/55934
25613 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25614 that have operands with impossible constraints.
25615 Add a FIXME for a speed-up opportunity.
25616 * lra-constraints.c (process_alt_operands): Verify that a class
25617 selected from constraints on asms is valid for the operand mode.
25618 (curr_insn_transform): Remove incorrect comment.
25619
f6fee35f
DE
256202013-01-23 David Edelsohn <dje.gcc@gmail.com>
25621
25622 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25623 TOC operand is a valid symbol ref in the constant pool.
25624
256252013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25626
aaf1e810 25627 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25628
dc62d7d1
GJL
256292013-01-23 Georg-Johann Lay <avr@gjlay.de>
25630
25631 PR target/54222
25632 * config/avr/stdfix.h: New file.
25633 * t-avr (stdfix-gcc.h): New rule to build it.
25634 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25635
2660d12d
KS
256362013-01-23 Kostya Serebryany <kcc@google.com>
25637
77dc5297
UB
25638 * config/darwin.h: remove dependency on
25639 CoreFoundation (asan on Mac OS).
2660d12d 25640
a70418fc
JJ
256412013-01-23 Jakub Jelinek <jakub@redhat.com>
25642
25643 PR target/49069
25644 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25645 instead of cmpdi_operand for first comparison operand.
25646 Don't assert that comparison operands aren't both constants.
25647
47876a2a
JW
256482013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25649
25650 * doc/install.texi (Downloading the Source): Update references to
25651 downloading separate components.
25652
256532013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25654
25655 * doc/extend.texi (__int128): Improve grammar.
25656
47876a2a 256572013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25658
25659 PR target/56028
25660 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25661 alternative to (o,r).
25662 (*movdi_internal_rex64): Remove (!o,n) alternative.
25663 (DImode immediate->memory splitter): Remove.
25664 (DImode immediate->memory peephole2): Remove.
25665 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25666 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25667 alternative to (!o,*r).
25668 (*movtf_internal_sse): New pattern.
25669 (*movxf_internal_rex64): New pattern.
25670 (*movxf_internal): Disable for TARGET_64BIT.
25671 (*movdf_internal_rex64): Remove (!o,F) alternative.
25672
3a984f10
JJ
256732013-01-22 Jakub Jelinek <jakub@redhat.com>
25674
502498d5
JJ
25675 PR middle-end/56074
25676 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25677 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25678 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25679 stmt locations where LOCATION_LOCUS of the stmt location is
25680 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25681
3a984f10
JJ
25682 PR target/55686
25683 * config/i386/i386.md (UNSPEC_STOS): New.
25684 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25685 *strsetqi_1): Add UNSPEC_STOS.
25686
fa817f7f
PC
256872013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25688
25689 PR c++/56067
25690 * doc/invoke.texi: Remove left over -Wsynth example.
25691
8f498c1b
JJ
256922013-01-21 Jakub Jelinek <jakub@redhat.com>
25693
25694 PR tree-optimization/56051
25695 * fold-const.c (fold_binary_loc): Don't fold
25696 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25697 a narrowing conversion, or widening conversion from signed
25698 to unsigned.
25699
47876a2a 257002013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25701
25702 PR rtl-optimization/56023
25703 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25704 dependent on debug instruction.
25705
5b9db1bc
MJ
257062013-01-21 Martin Jambor <mjambor@suse.cz>
25707
25708 PR middle-end/56022
25709 * function.c (allocate_struct_function): Call
25710 invoke_set_current_function_hook earlier.
25711
e8bb7d68
JJ
257122013-01-21 Jakub Jelinek <jakub@redhat.com>
25713
25714 * reload1.c (init_reload): Only initialize reload_obstack
25715 during the first call.
25716
616a4e32
MP
257172013-01-21 Marek Polacek <polacek@redhat.com>
25718
25719 * cfgloop.c (verify_loop_structure): Fix up grammar.
25720
4401981b
YHH
257212013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25722
25723 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25724 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25725
8e87740b
RR
257262013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25727
25728 PR target/56058
25729 * config/arm/marvell-pj4.md: Update copyright year.
25730 Fix up use of alu to alu_reg and simple_alu_imm.
25731
47876a2a 257322013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25733
25734 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25735
89d56d79
VM
257362013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25737
25738 PR target/55433
25739 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25740 insn for secondary memory move when memory mode should be different.
89d56d79 25741
fe603553
JDA
257422013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25743
25744 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25745 atomic_storedi_1): New patterns.
25746
01284895
VK
257472013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25748
25749 btver2 pipeline descriptions.
25750 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25751 descriptions.
25752 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25753 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25754 type attributes.
25755 * config/i386/btver2.md: New file describing btver2 pipelines.
25756
5630e3e1
JL
257572013-01-19 Andrew Pinski <apinski@cavium.com>
25758
25759 PR tree-optimization/52631
25760 * tree-ssa-sccvn (visit_use): Before looking up the original
25761 statement, try looking up the simplified expression.
25762
650ae806
AG
257632013-01-19 Anthony Green <green@moxielogic.com>
25764
25765 * config/moxie/moxie.c (moxie_expand_prologue): Set
25766 current_function_static_stack_size.
25767
e300ec2d
JJ
257682013-01-18 Jakub Jelinek <jakub@redhat.com>
25769
25770 PR tree-optimization/56029
25771 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25772 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25773
a3d7af04
SS
257742013-01-18 Sharad Singhai <singhai@google.com>
25775
25776 PR tree-optimization/55995
25777 * dumpfile.c (dump_loc): Print location only if available.
25778 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25779
66aa7879
VM
257802013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25781
25782 PR target/55433
25783 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25784 secondary memory move.
25785 (inherit_reload_reg): Use rclass instead of cl for
25786 check_secondary_memory_needed_p.
25787
3f0fee7b
JJ
257882013-01-18 Jakub Jelinek <jakub@redhat.com>
25789
25790 PR middle-end/56015
25791 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 25792 the case where writing real complex part of target modifies op1.
3f0fee7b 25793
70c67693
JG
257942013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25795
25796 * config/aarch64/aarch64-simd.md
25797 (aarch64_vcond_internal<mode>): Handle unordered cases.
25798 * config/aarch64/iterators.md (v_cmp_result): New.
25799
df8de9b3
YHH
258002013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25801 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25802
25803 * config/arm/marvell-pj4.md: New file.
25804 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25805 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25806 (generic_vfp): Likewise.
25807 * config/arm/arm-cores.def: Add marvell-pj4.
25808 * config/arm/arm-tune.md: Regenerate.
25809 * config/arm/arm-tables.opt: Regenerate.
25810 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25811 * doc/invoke.texi: Document marvell-pj4.
25812
be30c356
TB
258132013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25814
25815 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25816
0bfbca58 258172013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
25818
25819 PR debug/54114
25820 PR debug/54402
25821 PR debug/49888
25822 * var-tracking.c (negative_power_of_two_p): New.
25823 (global_get_addr_cache, local_get_addr_cache): New.
25824 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25825 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25826 heading comment.
25827 (vt_stack_offset_p): Remove.
25828 (vt_canon_true_dep): Always canonicalize loc's address.
25829 (clobber_overlapping_mems): Make sure we have a MEM.
25830 (local_get_addr_clear_given_value): New.
25831 (val_reset): Clear local cached entries.
25832 (compute_bb_dataflow): Create and release the local cache.
25833 Disable duplicate MEMs clobbering.
25834 (emit_notes_in_bb): Clobber MEMs likewise.
25835 (vt_emit_notes): Create and release the local cache.
25836 (vt_initialize, vt_finalize): Create and release the global
25837 cache, respectively.
1f6bc337 25838 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 25839
0bfbca58 258402013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
25841
25842 PR libmudflap/53359
25843 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
25844 not found in the symtab.
25845
0bfbca58 258462013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 25847
c350ba53 25848 PR debug/56006
3aa03517
AO
25849 PR rtl-optimization/55547
25850 PR rtl-optimization/53827
25851 PR debug/53671
25852 PR debug/49888
25853 * alias.c (offset_overlap_p): New, factored out of...
25854 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
25855 the conservative special case for symbolic constants. Don't
25856 adjust zero sizes on alignment.
25857
c664546f
JL
258582013-01-18 Bernd Schmidt <bernds@codesourcery.com>
25859
25860 PR rtl-optimization/52573
25861 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
25862 REG_UNUSED for the same register.
25863
1bd3f750
MP
258642013-01-17 Richard Biener <rguenther@suse.de>
25865 Marek Polacek <polacek@redhat.com>
25866
25867 PR rtl-optimization/55833
25868 * loop-unswitch.c (unswitch_loops): Move loop verification...
25869 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
25870 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
25871 Set it to true when we're removing a loop from hierarchy tree in
25872 an irreducible region.
25873 (fix_bb_placements): Adjust caller.
25874 (fix_loop_placements): Likewise.
25875
e52a8b71
GJL
258762013-01-17 Georg-Johann Lay <avr@gjlay.de>
25877
25878 * config/avr/builtins.def (DEF_BUILTIN): Factor out
25879 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
25880 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
25881 Remove ID. Adjust comments.
25882 * config/avr/avr-c.c (avr_builtin_name): Remove.
25883 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
25884 * config/avr/avr.c (avr_tolower): New static function.
25885 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
25886 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
25887 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
25888 default expansion.
25889
8386a7ea
JH
258902013-01-17 Jan Hubicka <jh@suse.cz>
25891
610fb637 25892 PR tree-optimization/55273
8386a7ea
JH
25893 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
25894
47876a2a 258952013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
25896
25897 PR target/55981
25898 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
25899 store through atomic_store<mode>_1.
25900 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
25901
8222c37e
MJ
259022013-01-17 Martin Jambor <mjambor@suse.cz>
25903
25904 PR tree-optimizations/55264
25905 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
25906 for virtual methods.
25907 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
25908 virtual methods before inlining is over.
25909 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
25910 virtual functions.
25911 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
25912 non-virtual.
25913
79f01c76
VM
259142013-01-16 Vladimir Makarov <vmakarov@redhat.com>
25915
25916 PR rtl-optimization/56005
25917 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
25918 pending reads for prefetch.
25919
d0b6bb1b
IB
259202013-01-16 Ian Bolton <ian.bolton@arm.com>
25921
aaf1e810 25922 * config/aarch64/aarch64.md
d0b6bb1b
IB
25923 (*cstoresi_neg_uxtw): New pattern.
25924 (*cmovsi_insn_uxtw): New pattern.
25925 (*<optab>si3_uxtw): New pattern.
25926 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
25927 (*<optab>si3_insn_uxtw): New pattern.
25928 (*bswapsi2_uxtw): New pattern.
25929
cb9cf03b
RB
259302013-01-16 Richard Biener <rguenther@suse.de>
25931
25932 * tree-inline.c (tree_function_versioning): Remove set but
25933 never used variable.
25934
2cfc56b9
RB
259352013-01-16 Richard Biener <rguenther@suse.de>
25936
25937 PR tree-optimization/55964
25938 * tree-flow.h (rename_variables_in_loop): Remove.
25939 (rename_variables_in_bb): Likewise.
25940 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
25941 (copy_loop_before): Adjust and delete update-ssa status.
25942 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 25943 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
25944 (rename_variables_in_loop): Remove.
25945 (slpeel_update_phis_for_duplicate_loop): Likewise.
25946 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
25947 use available cfg machinery instead of duplicating it.
25948 Update PHI nodes and perform poor-mans SSA update here.
25949 (slpeel_tree_peel_loop_to_edge): Adjust.
25950
c25a0c60
RB
259512013-01-16 Richard Biener <rguenther@suse.de>
25952
25953 PR tree-optimization/54767
25954 PR tree-optimization/53465
25955 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
25956 (vrp_visit_phi_node): For PHI arguments coming via backedges
25957 drop all symbolical range information.
25958 (execute_vrp): Compute backedges.
25959
04b535af
RB
259602013-01-16 Richard Biener <rguenther@suse.de>
25961
25962 * doc/install.texi: Update CLooG and ISL requirements to
25963 0.18.0 and 0.11.1.
25964
8b0a1e0b
CB
259652013-01-16 Christian Bruel <christian.bruel@st.com>
25966
25967 PR target/55301
25968 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
25969 (broken_move): Handle UNSPECV_SP_SWITCH_B.
25970 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
25971
259722013-01-16 DJ Delorie <dj@redhat.com>
25973
25974 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
25975 (UNSPECV_SP_SWITCH_E): New.
25976 (sp_switch_1): Change to an unspec.
25977 (sp_switch_2): Change to an unspec. Don't use post-inc when we
25978 replace $r15.
25979
259802013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
25981
25982 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
25983 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
25984 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
25985 (expand_mem_thread_fence): Ditto.
25986 (expand_mem_signal_fence): Ditto.
25987 (expand_atomic_load): Ditto.
25988 (expand_atomic_store): Ditto.
25989
0bfbca58 259902013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
25991
25992 PR rtl-optimization/55547
25993 PR rtl-optimization/53827
25994 PR debug/53671
25995 PR debug/49888
25996 * alias.c (memrefs_conflict_p): Set sizes to negative after
25997 AND adjustments.
25998
305e3ac1
JJ
259992013-01-15 Jakub Jelinek <jakub@redhat.com>
26000
26001 PR target/55940
26002 * function.c (thread_prologue_and_epilogue_insns): Always
26003 add crtl->drap_reg to set_up_by_prologue.set, even if
26004 stack_realign_drap is false.
26005
f78ac4f2
JBG
260062013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26007
26008 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
26009 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
26010 *call): Fix indention.
26011
a78a8cc4
TV
260122013-01-15 Tom de Vries <tom@codesourcery.com>
26013
26014 PR target/55876
26015 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
26016 Update comment.
26017
0e80383f
VM
260182013-01-15 Vladimir Makarov <vmakarov@redhat.com>
26019
305e3ac1 26020 PR rtl-optimization/55153
0e80383f
VM
26021 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
26022
207b5956
MJ
260232013-01-15 Martin Jambor <mjambor@suse.cz>
26024
26025 PR tree-optimization/55920
26026 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
26027 accesses as grp_to_be_debug_replaced.
26028
a7818b54
JJ
260292013-01-15 Jakub Jelinek <jakub@redhat.com>
26030
26031 PR tree-optimization/55920
26032 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
26033 there is non-useless type conversion needed from debug rhs to lhs,
26034 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
26035
b0fe107e
JM
260362013-01-15 Joseph Myers <joseph@codesourcery.com>
26037 Mikael Pettersson <mikpe@it.uu.se>
26038
26039 PR target/43961
26040 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
26041 Thumb.
26042 (ASM_OUTPUT_CASE_LABEL): Remove.
26043 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
26044 * final.c (shorten_branches): Update alignment of labels before
26045 jump tables if CASE_VECTOR_SHORTEN_MODE.
26046
34ab62ee
RB
260472013-01-15 Richard Biener <rguenther@suse.de>
26048
26049 PR bootstrap/55961
26050 * system.h: Do not include gmp.h for building host tools.
26051
783a3a05
RB
260522013-01-15 Richard Biener <rguenther@suse.de>
26053
26054 PR middle-end/55882
26055 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
26056 account for bitpos when computing alignment.
26057
3a579e09
VY
260582013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
26059
26060 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
26061 (ix86_target_macros_internal): Likewise.
26062
26063 * config/i386/i386.c (m_CORE2I7): Removed.
26064 (m_CORE_HASWELL): New macro.
26065 (m_CORE_ALL): Likewise.
26066 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
26067 (initial_ix86_arch_features): Likewise.
26068 (processor_target_table): Initializations for Core avx2.
26069 (cpu_names): New names "core-avx2".
26070 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
26071 PROCESSOR_CORE_HASWELL.
26072 (ix86_issue_rate): New case.
26073 (ia32_multipass_dfa_lookahead): Likewise.
26074 (ix86_sched_init_global): Likewise.
26075
26076 * config/i386/i386.h (TARGET_HASWELL): New macro.
26077 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26078 (processor_type): New PROCESSOR_HASWELL.
26079
955f5a07
JJ
260802013-01-15 Jakub Jelinek <jakub@redhat.com>
26081
ff784829
JJ
26082 PR tree-optimization/55955
26083 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26084 *SHIFT_EXPR and *ROTATE_EXPR codes.
26085
955f5a07
JJ
26086 PR tree-optimization/48766
26087 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26088 -ftrapv disable -fwrapv.
26089
aeb8b4e9
GJL
260902013-01-14 Georg-Johann Lay <avr@gjlay.de>
26091
26092 PR target/55974
26093 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26094 etc. to 1 and not to __flash.
26095 Use LL suffix for __INT24_MAX__ with -mint8.
26096 Use ULL suffix for __UINT24_MAX__ with -mint8.
26097
1c494c6a
GJL
260982013-01-14 Georg-Johann Lay <avr@gjlay.de>
26099
26100 * config/avr/avr-arch.h
26101 (struct base_arch_s): Use typedef avr_arch_t instead.
26102 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26103 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26104 * config/avr/avr.c: Same.
26105 * config/avr/avr-devices.c: Same.
26106 * config/avr/driver-avr.c: Same.
26107 * config/avr/gen-avr-mmcu-texi.c: Same.
26108 * config/avr/avr-mcus.def: Adjust comment.
26109
a50344cb
TB
261102013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26111
88e784e6
UB
26112 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26113 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26114
47876a2a 261152013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26116 Andi Kleen <ak@linux.intel.com>
26117
26118 PR target/55948
26119 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26120 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26121 memmodel flag.
26122
00892272
GJL
261232013-01-14 Georg-Johann Lay <avr@gjlay.de>
26124
26125 * config/avr/avr-stdint.h: Remove trailing blanks.
26126 * config/avr/avr-log.h: Same.
26127 * config/avr/avr-arch.h: Same.
26128 * config/avr/avr-devices.c: Same.
26129 * config/avr/avr-dimode.md: Same.
26130 * config/avr/predicates.md: Same.
26131 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26132
00892272
GJL
26133 * config/avr/avr-protos.h: Same. And:
26134 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26135 (init_cumulative_args): Rename to avr_init_cumulative_args.
26136 (expand_prologue): Rename to avr_expand_prologue.
26137 (expand_epilogue): Rename to avr_expand_epilogue.
26138 (adjust_insn_length): Rename to avr_adjust_insn_length.
26139 (notice_update_cc): Rename to avr_notice_update_cc.
26140 (final_prescan_insn): Rename to avr_final_prescan_insn.
26141 * config/avr/avr.c: Same.
26142 * config/avr/avr.h: Same.
26143 * config/avr/avr.md: Remove trailing blanks.
26144 (prologue): Use avr_expand_prologue.
26145 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26146
7bb01996
RB
261472013-01-14 Richard Biener <rguenther@suse.de>
26148
26149 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26150 verify_location, collect_subblocks): New functions.
26151 (verify_gimple_in_cfg): Verify that locations only reference
26152 BLOCKs in the functions BLOCK tree.
26153
2724573f
RB
261542013-01-14 Richard Biener <rguenther@suse.de>
26155
26156 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26157 PHI argument.
26158 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26159 unshare reference.
26160 (insert_out_of_ssa_copy_on_edge): Likewise.
26161 (rewrite_close_phi_out_of_ssa): Likewise.
26162 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26163 debug expressions.
26164 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26165 propagated constants.
26166 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26167 can not be shared.
26168
9a0bbab6
GJL
261692013-01-14 Georg-Johann Lay <avr@gjlay.de>
26170
26171 * config/avr/avr-modes.def: Add GPL copyright notice.
26172
45805f17
UB
261732013-01-13 Uros Bizjak <ubizjak@gmail.com>
26174
26175 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26176 MEMMODEL_MASK to determine memory model.
26177 (atomic_store<mode>): Ditto from operands[2].
26178 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26179
9d60be38
JJ
261802013-01-13 Jakub Jelinek <jakub@redhat.com>
26181
26182 PR fortran/55935
45805f17 26183 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26184 (fold_gimple_assign): Don't call unshare_expr here.
26185 (fold_ctor_reference): Call unshare_expr.
26186
e7f49d92
TG
261872013-01-13 Terry Guo <terry.guo@arm.com>
26188
aaf1e810
EB
26189 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26190 * doc/fragments.texi: Document MULTILIB_REUSE.
26191 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26192 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26193 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26194 (tmpmultilib4): Ditto.
26195 (multilib_reuse): New multilib argument.
26196
fbd03a27
RS
261972013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26198
26199 * Makefile.in: Update copyright.
26200
b3681f13
TV
262012013-01-12 Tom de Vries <tom@codesourcery.com>
26202
26203 PR middle-end/55890
26204 * calls.c (expand_call): Check if arg_nr is valid.
26205
3f287e4b
MM
262062013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26207
26208 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26209 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26210 documentation. Add missing '__' in front of
26211 __builtin_ia32_packssdw256.
3f287e4b 26212
1abcd5eb
AK
262132013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26214
26215 PR target/55719
26216 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26217 NO_REGS for larl operands.
26218 (s390_reload_larl_operand): Use s390_load_address instead of
26219 emit_move_insn.
26220
980d0812
RB
262212013-01-11 Richard Biener <rguenther@suse.de>
26222
26223 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26224 (verify_node_sharing): ... here.
26225 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26226
7cb9fd07
EB
262272013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26228
26229 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26230 Substitute TREECHECKING.
26231 * configure: Regenerate.
26232 * Makefile.in (TREECHECKING): New.
26233
47876a2a 262342013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26235
26236 PR tree-optimization/44061
26237 * tree-vrp.c (extract_range_basic): Compute zero as
26238 value-range for __builtin_constant_p of function parameters.
26239
d1e082c2
RS
262402013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26241
45805f17 26242 Update copyright years.
d1e082c2 26243
f85021b0
VM
262442013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26245
9d60be38 26246 PR rtl-optimization/55672
0160442c
VM
26247 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26248 const to be eliminable.
f85021b0 26249
7a8b1ec4
DE
262502013-01-10 David Edelsohn <dje.gcc@gmail.com>
26251
26252 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26253 * configure: Regenerate.
26254
ad2e5b71
RB
262552013-01-10 Richard Biener <rguenther@suse.de>
26256
ddf9322d 26257 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26258
ffc5b2bb
RB
262592013-01-10 Richard Biener <rguenther@suse.de>
26260
26261 PR bootstrap/55792
26262 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26263 locations for virtual PHI arguments.
26264 (rewrite_update_phi_arguments): Likewise.
26265
e1f674e4
JS
262662013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26267
26268 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26269 on to assembler.
26270
a57fc743
JJ
262712013-01-10 Jakub Jelinek <jakub@redhat.com>
26272
26273 PR tree-optimization/55921
26274 * tree-complex.c (expand_complex_asm): New function.
26275 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26276
0ff4390d
AK
262772013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26278
26279 PR target/55718
26280 * config/s390/s390.c (s390_symref_operand_p)
26281 (s390_loadrelative_operand_p): Merge the two functions.
26282 (s390_check_qrst_address, print_operand_address): Add parameters
26283 to s390_loadrelative_operand_p invokation.
26284 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26285 (s390_reload_larl_operand, s390_secondary_reload): Use
26286 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26287 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26288
6f557e0e
MS
262892013-01-09 Mike Stump <mikestump@comcast.net>
26290
26291 * dse.c (record_store): Remove unnecessary assert.
26292
7770c9e9
JH
262932013-01-09 Jan Hubicka <jh@suse.cz>
26294
26295 PR tree-optimization/55569
26296 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26297 * cfgloop.h (scale_loop_profile): Likewise.
26298
a19b1432
JH
262992013-01-09 Jan Hubicka <jh@suse.cz>
26300
26301 PR lto/45375
ddf9322d
UB
26302 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26303 functions.
a19b1432
JH
26304 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26305
9a002da8
RS
263062013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26307
26308 PR middle-end/55114
26309 * expr.h (maybe_emit_group_store): Declare.
26310 * expr.c (maybe_emit_group_store): New function.
26311 * builtins.c (expand_builtin_int_roundingfn): Call it.
26312 (expand_builtin_int_roundingfn_2): Likewise.
26313
511dcace
VM
263142013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26315
e1f2b729 26316 PR rtl-optimization/55829
511dcace
VM
26317 * lra-constraints.c (match_reload): Add code for absent output.
26318 (curr_insn_transform): Add code for reloads of matched inputs
26319 without output.
26320
7b0fe4f4
UB
263212013-01-09 Uros Bizjak <ubizjak@gmail.com>
26322
26323 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26324 attribute of movddup insn to DF.
26325 (*vec_interleave_lowv2df): Ditto.
26326 (vec_dupv2df): Ditto.
26327
870ca331
JH
263282013-01-09 Jan Hubicka <jh@suse.cz>
26329
26330 PR tree-optimiation/55875
26331 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26332 EVERY_ITERATION parameter.
7b0fe4f4 26333 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26334 (idx_infer_loop_bounds): Similarly here.
26335 (n_of_executions_at_most): Simplify
26336 to only test for cases where statement is dominated by the
7b0fe4f4 26337 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26338 (scev_probably_wraps_p): Use max loop iterations info
26339 as a global bound first.
26340
6f575fe4 263412013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26342 Nick Clifton <nickc@redhat.com>
26343
26344 * config/v850/v850.md (cbranchsf4): New pattern.
26345 (cstoresf4): New pattern.
26346 (cbranchdf4): New pattern.
26347 (cstoredf4): New pattern.
26348 (movsicc): Disallow floating point comparisons.
26349 (cmpsf_le_insn): Fix order of operators.
26350 (cmpsf_lt_insn): Likewise.
26351 (cmpsf_eq_insn): Likewise.
26352 (cmpdf_le_insn): Likewise.
26353 (cmpdf_lt_insn): Likewise.
26354 (cmpdf_eq_insn): Likewise.
26355 (cmpsf_ge_insn): Use LE comparison.
26356 (cmpdf_ge_insn): Likewise.
26357 (cmpsf_gt_insn): Use LT comparison.
26358 (cmpdf_gt_insn): Likewise.
26359 (cmpsf_ne_insn): Delete pattern.
26360 (cmpdf_ne_insn): Delete pattern.
26361 * config/v850/v850.c (v850_gen_float_compare): Use
26362 gen_cmpdf_eq_insn for NE comparison.
26363 (v850_float_z_comparison_operator)
26364 (v850_float_nz_comparison_operator): Move from here ...
26365 * config/v850/predicates.md: ... to here. Move GT and GE
26366 comparisons into v850_float_z_comparison_operator.
26367 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26368 Delete prototype.
26369 (v850_float_nz_comparison_operator): Likewise.
26370
f0d54148
JDA
263712013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26372
26373 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26374 with calls to gen_insvsi/gen_insvdi.
26375
8f01beca
VK
263762013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26377
26378 * config/i386/i386.c (initial_ix86_tune_features): Set up
26379 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26380
2aa579ad
JJ
263812013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26382 Jakub Jelinek <jakub@redhat.com>
26383
26384 PR tree-optimization/48189
26385 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26386 If nitercst is 0, don't predict the exit edge.
26387
6edc3e32 263882013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26389
26390 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26391 in asm_fprintf with reg_names.
26392 (aarch64_print_operand_address): Likewise.
26393 (aarch64_return_addr): Likewise.
26394 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26395
f6f94d94
JDA
263962013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26397
26398 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26399 (INT_U6_BITS): Likewise.
26400 * config/pa/predicates.md (uint6_operand): New predicate.
26401 (shift5_operand, shift6_operand): Likewise.
26402 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26403 arith32_operand.
26404 (lshrdi3): Use shift6_operand.
26405 (shrpsi4, shrpdi4): New insn patterns.
26406 (extzv): Delete expander.
26407 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26408 predicates in unamed zero extract patterns. Tighten common constraint.
26409 (extv): Delete expander.
26410 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26411 predicates in unamed sign extract patterns. Tighten common constraint.
26412 (insv): Delete expander.
26413 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26414 predicates in unamed insert patterns. Tighten common constraint.
26415 Change uint32_operand predicate to uint6_operand predicate in unamed
26416 DImode pattern to insert constant values of type 1...1xxxx.
26417
36b72910
JH
264182013-01-04 Jan Hubicka <jh@suse.cz>
26419
26420 PR tree-optimization/55823
7b0fe4f4
UB
26421 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26422 issue.
36b72910 26423
47876a2a 264242013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26425 Uros Bizjak <ubizjak@gmail.com>
26426
26427 PR rtl-optimization/55845
26428 * df-problems.c (can_move_insns_across): Stop scanning at
26429 volatile_insn_p source instruction or give up if
26430 across_from .. across_to range contains any volatile_insn_p
26431 instructions.
26432
4369c11e
TB
264332013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26434
7b0fe4f4
UB
26435 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26436 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26437 Declare.
4369c11e 26438 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26439 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26440
aeb7e7c1
JJ
264412013-01-08 Jakub Jelinek <jakub@redhat.com>
26442
26443 PR fortran/55341
26444 * asan.c (asan_clear_shadow): New function.
26445 (asan_emit_stack_protection): Use it.
26446
a02ad1aa
TB
264472013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26448
26449 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26450 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26451 with tab instead of space.
26452
f90d87f5
NC
264532013-01-08 Nick Clifton <nickc@redhat.com>
26454
26455 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26456 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26457 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26458 MDBH registers.
f90d87f5 26459
385eb93d
JG
264602013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26461
26462 * config/aarch64/aarch64-simd.md
26463 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26464 (aarch64_simd_bsl): Likewise.
26465 (aarch64_vcond_internal<mode>): Likewise.
26466 (vcond<mode><mode>): Likewise.
26467 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26468 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26469
4dcd1054
JG
264702013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26471
26472 * config/aarch64/aarch64-builtins.c
26473 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26474
4267a4a6
MJ
264752013-01-08 Martin Jambor <mjambor@suse.cz>
26476
26477 PR debug/55579
26478 * tree-sra.c (analyze_access_subtree): Return true also after
26479 potentially creating a debug-only replacement.
26480
5f4e6de3
JJ
264812013-01-08 Jakub Jelinek <jakub@redhat.com>
26482
3138f224
JJ
26483 PR middle-end/55890
26484 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26485
5f4e6de3
JJ
26486 PR tree-optimization/54120
26487 * tree-vrp.c (range_fits_type_p): Don't allow
26488 src_precision < precision from signed vr to unsigned_p
26489 if vr->min or vr->max is negative.
26490 (simplify_float_conversion_using_ranges): Test can_float_p
26491 against CODE_FOR_nothing.
26492
f3ef18ff
JJ
264932013-01-08 Jakub Jelinek <jakub@redhat.com>
26494 Richard Biener <rguenther@suse.de>
26495
26496 PR middle-end/55851
26497 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26498 types instead of just INTEGER_TYPE types.
26499
25c210f9
MK
265002013-01-07 Mark Kettenis <kettenis@openbsd.org>
26501
26502 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26503 TF_SIZE): Define.
f90d87f5 26504
81826a7b
SE
265052013-01-07 Steve Ellcey <sellcey@mips.com>
26506
26507 PR target/42661
26508 * config/mips/mips.opt: Change mad to mmad to match documentation.
26509
35678514
GJL
265102013-01-07 Georg-Johann Lay <avr@gjlay.de>
26511
26512 PR target/55897
26513 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26514 .progmemx.data now.
26515
e5669488
GJL
265162013-01-07 Georg-Johann Lay <avr@gjlay.de>
26517
26518 PR target/55897
26519 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26520 (avr_addrspace_t): Add .section_name field.
26521 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26522 array size.
26523 (avr_addrspace): Same. Initialize .section_name. Remove last
26524 NULL entry. Put __memx into .progmemx.data.
26525 (progmem_section_prefix): Remove.
26526 (avr_asm_init_sections): No need to initialize progmem_section.
26527 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26528 section name prefix.
26529 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26530 retrieve the progmem section.
26531 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26532 boundary to run over avr_addrspace[].
26533 (avr_register_target_pragmas): Ditto.
26534
656e6f37
JJ
265352013-01-06 Jakub Jelinek <jakub@redhat.com>
26536
26537 * varasm.c (output_constant_def_contents): For asan_protect_global
26538 protected strings, adjust DECL_ALIGN if needed, before testing for
26539 anchored symbols.
26540 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26541 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26542 normal decls.
26543 (output_object_block): For asan protected decls, emit asan padding
26544 after their contents.
26545 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26546 (asan_finish_file): Test it here instead.
26547
6edc3e32
UB
265482013-01-07 Nick Clifton <nickc@redhat.com>
26549 Matthias Klose <doko@debian.org>
26550 Doug Kwan <dougkwan@google.com>
26551 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26552
26553 PR driver/55470
26554 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26555
26556 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26557
26558 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26559
7b0fe4f4 26560 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26561
26562 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26563
2a095093
GJL
265642013-01-07 Georg-Johann Lay <avr@gjlay.de>
26565
f3b503f4 26566 PR target/54461
2a095093
GJL
26567 * doc/install.texi (Cross-Compiler-Specific Options): Document
26568 --with-avrlibc.
26569
383f9b34
TB
265702013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26571
26572 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26573 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26574 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26575 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26576 vqmovun_high_s64): Fix source operand number and update copyright.
26577
3626621a
RB
265782013-01-07 Richard Biener <rguenther@suse.de>
26579
26580 PR middle-end/55890
26581 * gimple.h (gimple_call_builtin_p): New overload.
26582 * gimple.c (validate_call): New function.
26583 (gimple_call_builtin_p): Likewise.
26584 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26585 Use gimple_call_builtin_p.
26586 (find_func_clobbers): Likewise.
26587 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26588 (strlen_optimize_stmt): Likewise.
26589
8b2ea410
JG
265902013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26591
26592 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26593 (vld1q_dup_*): Likewise.
26594 (vld1_*): Likewise.
26595 (vld1q_*): Likewise.
26596 (vld1_lane_*): Likewise.
26597 (vld1q_lane_*): Likewise.
26598
9713d329
RB
265992013-01-07 Richard Biener <rguenther@suse.de>
26600
26601 * lto-streamer.h (LTO_minor_version): Bump to 2.
26602
3520f7cc
JG
266032013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26604
26605 * config/aarch64/aarch64-protos.h
26606 (aarch64_const_double_zero_rtx_p): Rename to...
26607 (aarch64_float_const_zero_rtx_p): ...this.
26608 (aarch64_float_const_representable_p): New.
26609 (aarch64_output_simd_mov_immediate): Likewise.
26610 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26611 move immediate case.
26612 * config/aarch64/aarch64.c
26613 (aarch64_const_double_zero_rtx_p): Rename to...
26614 (aarch64_float_const_zero_rtx_p): ...this.
26615 (aarch64_print_operand): Allow printing of new constants.
26616 (aarch64_valid_floating_const): New.
26617 (aarch64_legitimate_constant_p): Check for valid floating-point
26618 constants.
26619 (aarch64_simd_valid_immediate): Likewise.
26620 (aarch64_vect_float_const_representable_p): New.
26621 (aarch64_float_const_representable_p): Likewise.
26622 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26623 (aarch64_output_simd_mov_immediate): New.
26624 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26625 (*movdf_aarch64): Likewise.
26626 * config/aarch64/constraints.md (Ufc): New.
26627 (Y): call aarch64_float_const_zero_rtx.
26628 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26629
e167c04d
RB
266302013-01-07 Richard Biener <rguenther@suse.de>
26631
26632 PR tree-optimization/55888
26633 PR tree-optimization/55862
26634 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26635 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26636 not if it is contained therein.
26637
0139aaab
GJL
266382013-01-07 Georg-Johann Lay <avr@gjlay.de>
26639
26640 * config/avr/t-avr: Typo.
26641
4a176b23
GJL
266422013-01-07 Georg-Johann Lay <avr@gjlay.de>
26643
26644 PR55243
26645 * config/avr/t-avr: Don't automatically rebuild
26646 $(srcdir)/config/avr/t-multilib
26647 $(srcdir)/config/avr/avr-tables.opt
26648 $(srcdir)/doc/avr-mmcu.texi
26649 (avr-mcus): New phony target to build them on request.
26650 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26651 * avr/avr-mcus.def: Adjust comments.
26652
c7afdc98
UB
266532013-01-07 Uros Bizjak <ubizjak@gmail.com>
26654
26655 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26656
1ab05c31
RS
266572013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26658
26659 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26660
488e3acc
RS
266612013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26662
26663 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26664
a89599d2
DE
266652013-01-05 David Edelsohn <dje.gcc@gmail.com>
26666
26667 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26668 to generate profiling.
26669 * config/rs6000/aix64.h (LIB_SPEC): Same.
26670
70f09188
AP
266712013-01-04 Andrew Pinski <apinski@cavium.com>
26672
26673 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26674 New function.
26675 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26676
918d445f
UB
266772013-01-04 Uros Bizjak <ubizjak@gmail.com>
26678
26679 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26680 unconditionally.
26681 (ix86_expand_move): Ditto.
26682 (ix86_zero_extend_to_Pmode): Ditto.
26683 (ix86_expand_call): Ditto.
26684 (ix86_expand_special_args_builtin): Ditto.
26685 (ix86_expand_builtin): Ditto.
26686
361618ec
RB
266872013-01-04 Richard Biener <rguenther@suse.de>
26688
26689 PR tree-optimization/55862
26690 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26691 translating them through PHI nodes.
26692
87eab554
MJ
266932013-01-04 Martin Jambor <mjambor@suse.cz>
26694
26695 PR tree-optimization/55755
26696 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26697 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26698
33879b9f
MP
266992013-01-04 Marek Polacek <polacek@redhat.com>
26700
26701 PR middle-end/55859
26702 * opts.c (default_options_optimization): Clarify error message.
26703
3068819a
RB
267042013-01-04 Richard Biener <rguenther@suse.de>
26705
26706 PR middle-end/55863
26707 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26708 reassociation.
26709
0e4ae794
JDA
267102013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26711
26712 PR target/53789
26713 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26714 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26715 references.
0e4ae794 26716
65c88cef
RH
267172013-01-03 Richard Henderson <rth@redhat.com>
26718
26719 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26720 after eliminating TLS symbols.
26721
8ac16127
MG
267222013-01-03 Marc Glisse <marc.glisse@inria.fr>
26723
26724 PR bootstrap/50167
26725 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26726 * graphite-poly.c (debug_gmp_value): Likewise.
26727
bb664f09
UB
267282013-01-03 Uros Bizjak <ubizjak@gmail.com>
26729
26730 PR target/55712
26731 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26732 selected code model, define __code_mode_small__, __code_model_medium__,
26733 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26734 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26735 xchg temporary register with %k. Declare temporary register as
26736 early clobbered.
26737 [__x86_64__]: For medium and large code models, preserve %rbx register.
26738
bcf1ef00
RB
267392013-01-03 Richard Biener <rguenther@suse.de>
26740
0506634a 26741 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26742 (dump_subscript): Adjust.
26743 (finalize_ddr_dependent): Do not dump redundant info.
26744 (analyze_siv_subscript): Adjust.
26745 (subscript_dependence_tester): Likewise.
26746 (compute_affine_dependence): Likewise.
26747
59fd17e3
RB
267482013-01-03 Richard Biener <rguenther@suse.de>
26749
26750 Revert
26751 2013-01-03 Richard Biener <rguenther@suse.de>
26752
26753 PR tree-optimization/55857
26754 * tree-vect-stmts.c (vectorizable_load): Do not setup
26755 re-alignment for invariant loads.
26756
26757 2013-01-02 Richard Biener <rguenther@suse.de>
26758
26759 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26760 invariant load do not generate a vector load from the scalar location.
59fd17e3 26761
595c2679
RB
267622013-01-03 Richard Biener <rguenther@suse.de>
26763
26764 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26765 for not vectorizing.
26766 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26767 not build INDIRECT_REFs, call get_name once only.
26768 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26769 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26770
90bb7d7a
RB
267712013-01-03 Richard Biener <rguenther@suse.de>
26772
26773 PR tree-optimization/55857
26774 * tree-vect-stmts.c (vectorizable_load): Do not setup
26775 re-alignment for invariant loads.
26776
f09b77ca
RB
267772013-01-03 Richard Biener <rguenther@suse.de>
26778
26779 PR lto/55848
26780 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26781 prefer a built-in decl.
26782
3461a16e
JJ
267832013-01-03 Jakub Jelinek <jakub@redhat.com>
26784
df8e2b4f
JJ
26785 * gcc.c (process_command): Update copyright notice dates.
26786 * gcov.c (print_version): Likewise.
26787 * gcov-dump.c (print_version): Likewise.
26788
3461a16e
JJ
26789 PR rtl-optimization/55838
26790 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26791 iv0.step, iv1.step and step.
26792
8b5546d6
JJ
267932013-01-03 Jakub Jelinek <jakub@redhat.com>
26794 Marc Glisse <marc.glisse@inria.fr>
26795
26796 PR tree-optimization/55832
26797 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26798 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26799 integer_{one,zero}_node.
26800
8ab1d2e9
JJ
268012013-01-03 Jakub Jelinek <jakub@redhat.com>
26802
26803 PR debug/54402
26804 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26805 * var-tracking.c (reverse_op): Don't add reverse ops to
26806 VALUEs that have already
0506634a 26807 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 26808
5b9ad1d4
GP
268092013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26810
26811 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26812
e25a6711
TJ
268132013-01-02 Teresa Johnson <tejohnson@google.com>
26814
26815 * dumpfile.c (dump_loc): Print filename with location.
26816 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26817 new location_t parameter to emit complete unroll message with
26818 new dump framework.
26819 (canonicalize_loop_induction_variables): Compute loops location
26820 and pass to try_unroll_loop_completely.
26821 * loop-unroll.c (report_unroll_peel): New function.
26822 (peel_loops_completely): Use new dump format with location
26823 for main dumpfile message, and invoke report_unroll_peel on success.
26824 (decide_unrolling_and_peeling): Ditto.
26825 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26826 by report_unroll_peel.
26827 (decide_peel_completely): Ditto.
26828 (decide_unroll_constant_iterations): Ditto.
26829 (decide_unroll_runtime_iterations): Ditto.
26830 (decide_peel_simple): Ditto.
26831 (decide_unroll_stupid): Ditto.
26832 * cfgloop.c (get_loop_location): New function.
26833 * cfgloop.h (get_loop_location): Declare.
26834
77878621
ST
268352013-01-02 Sriraman Tallam <tmsriram@google.com>
26836
26837 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26838 NULL.
26839
9e65d03e
JDA
268402013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26841
26842 PR middle-end/55198
26843 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
26844 BLKmode objects when EXPAND_MEMORY is specified.
26845
6a7da30f
ST
268462013-01-02 Sriraman Tallam <tmsriram@google.com>
26847
26848 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
26849 in loop predicate.
26850 (fold_builtin_cpu): Do not share cpu model decls across statements.
26851
e78167f2
JM
268522013-01-02 Jason Merrill <jason@redhat.com>
26853
26854 PR c++/55804
26855 * tree.c (build_array_type_1): Revert earlier change.
26856
8c075fb4
YZ
268572013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
26858
26859 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
26860 "cortex-a57".
26861 * config/aarch64/aarch64-tune.md: Re-generate.
26862
0682ed3e
RB
268632013-01-02 Richard Biener <rguenther@suse.de>
26864
26865 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26866 invariant load do not generate a vector load from the scalar location.
0682ed3e 26867
b8f6a302
RB
268682013-01-02 Richard Biener <rguenther@suse.de>
26869
26870 PR bootstrap/55784
26871 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
26872 * configure: Regenerate.
26873
04b80dbb
RS
268742013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26875
26876 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
26877 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
26878 (expand_builtin_int_roundingfn_2): Keep the original target around
26879 for the fallback case.
26880
635b0b0c
RS
268812013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26882
26883 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
26884 to be clear for sign changes.
26885
42d57399
JH
268862013-01-01 Jan Hubicka <jh@suse.cz>
26887
26888 * ipa-inline-analysis.c: Fix formatting.
26889
5bb6669d
JJ
268902013-01-01 Jakub Jelinek <jakub@redhat.com>
26891
26892 PR tree-optimization/55831
26893 * tree-vect-loop.c (get_initial_def_for_induction): Use
26894 gsi_after_labels instead of gsi_start_bb.
ad41bd84 26895\f
86a2db33 26896Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
26897
26898Copying and distribution of this file, with or without modification,
26899are permitted in any medium without royalty provided the copyright
26900notice and this notice are preserved.