]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Minor reformatting.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
de6a5608
AM
12013-10-10 Andrew MacLeod <amacleod@redhat.com>
2
3 * gimplify.c: Include expr.h and tm_p.h for targets with special va-arg
4 padding requirements.
5
b184c8f1
AM
62013-10-10 Andrew MacLeod <amacleod@redhat.com>
7
8 * tree-flow.h: Move some prototypes to gimple.h.
9 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
10 * gimple.h: Relocate some prototypes from tree-flow.h
11 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
12 Move to gimplify.c.
13 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
14 (build_va_arg_indirect_ref): Relocate and make static.
15 (std_gimplify_va_arg_expr): Relocate here.
16 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
17 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
18
13b72c22
AK
192013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20
21 * doc/md.texi: Document the mnemonic attribute.
22
5db40447
AK
232013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24
25 PR target/57377
26 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
27 (set_attr_alternative x ...) when searching for user defined
28 mnemonic attribute.
29
ed018d4b
AM
302013-10-10 Andrew MacLeod <amacleod@redhat.com>
31
32 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
33
4d5b5e9f
ER
342013-10-09 Easwaran Raman <eraman@google.com>
35
36 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
37 * cfgexpand.c (defer_stack_allocation): ...use here
38 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
39
c9ef86a1
ZC
402013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
41
42 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
43 (operand_equal_for_value_replacement): New function, extracted from
44 value_replacement and enhanced to catch more cases.
45 (value_replacement): Use operand_equal_for_value_replacement.
46
2431114f
AM
472013-10-09 Andrew MacLeod <amacleod@redhat.com>
48
49 * loop-doloop.c (doloop_modify, doloop_optimize): Use
50 get_max_loop_iterations.
51
1dd2a9a0
KT
522013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
53
54 * config/arm/aarch-common.c (arm_early_load_addr_dep):
55 Place comment above function.
56
c1bf2a39
AM
572013-10-09 Andrew MacLeod <amacleod@redhat.com>
58
59 * tree-flow.h: Remove all remaining prototypes, enums and structs that
60 are not related to tree-cfg.c.
61 * tree-ssa-address.h: New file. Relocate prototypes.
62 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
63 (addr_for_mem_ref): New. Combine call to get_address_description and
64 return addr_for_mem_ref.
65 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
66 * tree-ssa-live.h: Adjust prototypes.
67 * passes.c: Include tree-ssa-live.h.
68 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
69 * graphite.c (graphite_transform_loops): Make static.
70 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
71 make_pass_graphite, pass_data_graphite_transforms,
72 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
73 * ipa-pure-const.c (warn_function_noreturn): Make static.
74 (execute_warn_function_noreturn, gate_warn_function_noreturn,
75 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
76 Relocate from tree-cfg.c
77 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
78 static.
79 (execute_warn_function_noreturn, gate_warn_function_noreturn,
80 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
81 Move to ipa-pure-const.c.
82 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg): Relocate
83 from tree-optimize.c.
84 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
85 make_pass_fixup_cfg): Move to tree-cfg.c.
86 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
87 Relocate some prototypes.
88 * tree-data-ref.h (tree_check_data_deps) Add prototype.
89 * tree-dump.c (dump_function_to_file): Remove prototype.
90 Add tree-flow.h to the include file.
91 * tree-dump.h: Remove prototype.
92 * tree-parloops.h: New File. Add prototypes.
93 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
94 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
95 from tree-ssa-loop.c.
96 * tree-predcom.c (run_tree_predictive_commoning,
97 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
98 Relocate here from tree-ssa-loop.c.
99 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
100 ssa_name_values.release ().
101 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
102 (ssa_name_values): Relocate from tree-flow.h.
103 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
104 * tree-ssa-loop.c (run_tree_predictive_commoning,
105 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
106 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
107 make_pass_graphite, pass_data_graphite_transforms,
108 make_pass_graphite_transforms, gate_tree_parallelize_loops,
109 tree_parallelize_loops, pass_data_parallelize_loops,
110 make_pass_parallelize_loops): Move to other files.
111 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
112 moved here.
113 * tree.h: Remove prototypes from tree-address.c.
114
cc524fc7
AM
1152013-10-09 Andrew MacLeod <amacleod@redhat.com>
116
117 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
118 (struct int_tree_map): Move to tree-hasher.h
119 (SCALE, LABEL, PERCENT): Move to gimple.h
120 * tree-flow-inline.h: Delete. Move functions to other files.
121 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
122 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
123 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
124 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
125 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
126 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
127 * tree-hasher.h: Don't include tree-flow.h.
128 (struct int_tree_map): Relocate from tree-flow.h.
129 * tree-sra.c (contains_view_convert_expr_p): Relocate from
130 tree-flow-inline.h and make static.
131 * tree-ssa-alias.h (ranges_overlap_p): Relocate from tree-flow-inline.h.
132 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
133 tree-flow-inline.h and make static.
134 * tree.h (is_global_var, may_be_aliased): Relocate from
135 tree-flow-inline.h.
136 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
137 * value-prof.c: No longer include tree-flow-inline.h.
138 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
139
71343877
AM
1402013-10-09 Andrew MacLeod <amacleod@redhat.com>
141
142 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
143 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
144 (enum move_pos): Move to tree-ssa-loop-im.h
145 * cfgloop.h: Move some prototypes.
146 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
147 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
148 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
149 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
150 (loop_containing_stmt): Relocate from tree-flow-inline.h.
151 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
152 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
153 (enum move_pos): Relocate here.
154 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
155 tree-ssa-loop.c.
156 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
157 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim, make_pass_lim):
158 Relocate here from tree-ssa-loop.c.
159 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
160 tree-ssa-loop.c.
161 (loop_edge_to_cancel, unloop_loops): Make static.
162 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
163 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
164 (tree_complete_unroll, gate_tree_complete_unroll,
165 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
166 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
167 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
168 * tree-ssa-loop-ivopts.c: Remove local prototypes.
169 (stmt_invariant_in_loop_p): Remove unused function.
170 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
171 * tree-ssa-loop-manip.h: New file. Add prototypes.
172 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
173 (gcov_type_to_double_int): Move to cfgloop.h.
174 (double_int_cmp, bound_index,
175 estimate_numbers_of_iterations_loop): Make static.
176 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
177 (max_loop_iterations): Factor out get_max_loop_iterations.
178 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
179 cfgloop.c.
180 * tree-ssa-loop-niter.h: New file. Add prototypes.
181 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
182 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
183 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
184 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
185 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
186 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
187 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
188 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
189 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
190 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
191 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
192 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
193 pass_data_complete_unroll, make_pass_complete_unroll,
194 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
195 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
196 tree-ssa-loop-ivcanon.c.
197 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
198 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
199 tree-ssa-loop-prefetch.c.
200 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
201 tree-ssa-loop-im.c.
202 (get_lsm_tmp_name): Relocate and add suffix parameter.
203 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
204 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
205 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
206 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
207 (get_estimated_loop_iterations): Factor out accessor from
208 estimated_loop_iterations in tree-ssa-loop-niter.c.
209 (get_max_loop_iterations): Factor out accessor from _max_loop_iterations
210 in tree-ssa-niter.c.
211 * loop-unroll.c (decide_unroll_constant_iterations,
212 decide_unroll_runtime_iterations, decide_peel_simple,
213 decide_unroll_stupid): Use new get_* accessors.
214
826cacfe
MG
2152013-10-09 Marc Glisse <marc.glisse@inria.fr>
216
217 PR tree-optimization/20318
218 * doc/extend.texi (returns_nonnull): New function attribute.
219 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
220 attribute.
221 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
222 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
223
378f8976
EB
2242013-10-09 Eric Botcazou <ebotcazou@adacore.com>
225
226 PR middle-end/58570
227 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
228 false if both components are bitfields.
229
0fe04f5c
AV
2302013-10-09 Alex Velenko <Alex.Velenko@arm.com>
231
232 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
233 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
234 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
235 * config/aarch64/aarch64.h
236 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
237 * config/aarch64/aarch64-simd-builtins.def
238 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
239
bed9bae4
AV
2402013-10-09 Alex Velenko <Alex.Velenko@arm.com>
241
242 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
243
7f3d8b19
AV
2442013-10-09 Alex Velenko <Alex.Velenko@arm.com>
245
246 * config/aarch64/arm_neon.h (vdiv_f64): Added.
247
7df625a6
AV
2482013-10-09 Alex Velenko <Alex.Velenko@arm.com>
249
250 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
251 (vneg_f64): New intrinsic.
252 (vneg_s8): Asm replaced with C.
253 (vneg_s16): Likewise.
254 (vneg_s32): Likewise.
255 (vneg_s64): New intrinsic.
256 (vnegq_f32): Asm replaced with C.
257 (vnegq_f64): Likewise.
258 (vnegq_s8): Likewise.
259 (vnegq_s16): Likewise.
260 (vnegq_s32): Likewise.
261 (vnegq_s64): Likewise.
262
2b86fca7
RL
2632013-10-09 Renlin Li <Renlin.Li@arm.com>
264
265 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
266
e179df83
AK
2672013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
268
269 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
270 packed stack special handling.
271 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
272 back to fixed stack slots for FPRs saved due to stdarg.
273
74129172
AK
2742013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
275
276 * config/s390/s390.c (s390_frame_info): Restructure function.
277
6455a49e
AK
2782013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
279
280 * config/s390/s390.c (struct s390_frame_layout): New field
281 gpr_save_slots.
282 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
283 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
284 regs_ever_clobbered to char*.
285 (s390_regs_ever_clobbered): Check crtl->saves_all_registers
286 instead of cfun->has_nonlocal_label. Ignore frame related restore
287 INSNs.
288 (s390_register_info): Enable FPR save slots. Move/Copy some
289 functionality into ...
290 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
291 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
292 function.
293 (s390_frame_info): Do gpr slot allocation here now. stdarg does
294 not imply a stack frame.
295 (s390_init_frame_layout): Remove variable clobbered_regs.
296 (s390_update_register_info): Remove function.
297 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
298 cannot be used for register renaming.
299 (s390_hard_regno_scratch_ok): New function.
300 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
301 (s390_initial_elimination_offset): Change offset calculation of
302 the return address pointer.
303 (save_gprs): Deal with only r6 being saved from the call-saved
304 regs.
305 (restore_gprs): Set frame related flag.
306 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New
307 functions.
308 (s390_emit_prologue): Call s390_register_info instead of
309 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
310 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
311 (s390_optimize_prologue): Call s390_optimize_register_info.
312 Try to remove also FPR slot save/restore INSNs. Remove frame
313 related flags from restore INSNs.
314
59d96342
DD
3152013-10-08 DJ Delorie <dj@redhat.com>
316
0dc7adad
DD
317 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
318 (movhi): Likewise.
319
59d96342
DD
320 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
321 avoid conflict with the MI use of %c.
322 * config/rl78/rl78-real.md: change %c to %C throughout.
323 * config/rl78/rl78-virt.md: Likewise.
324
a81169d8
JH
3252013-10-08 Jan Hubicka <jh@suse.cz>
326
327 * config/i386/i386.c (ix86_option_override_internal): Switch
328 to SSE math for -ffast-math when target ISA supports SSE2.
329
481d1b81
AM
3302013-10-08 Andrew MacLeod <amacleod@redhat.com>
331
332 * tree-flow.h: Remove some prototypes.
333 * tree.h: Remove some protypes, add a couple.
334 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
335 using_eh_for_cleanups_p): Add interface routines for front ends.
336 * tree-eh.h: New file. Add protoptyes.
337 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
338 (add_stmt_to_eh_lp_fn): Make static.
339 (lower_try_finally): Use new using_eh_for_cleanups_p.
340 * emit-rtl.c: Include tree-eh.h.
341 * gimple.h: Include tree-eh.h.
342
0e6a0e48
MG
3432013-10-08 Marc Glisse <marc.glisse@inria.fr>
344
345 PR tree-optimization/58480
346 * tree-vrp.c (infer_nonnull_range): New function.
347 (infer_value_range): Call infer_nonnull_range.
348
ef6179d1
DC
3492013-10-08 Dehao Chen <dehao@google.com>
350
351 PR tree-optimization/58619
352 * tree-inline.c (copy_phis_for_bb): Combine location data
353 only if non-null.
354
07d964d5
ZC
3552013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
356
357 PR target/58423
358 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
359 RTX_FRAME_RELATED_P on INSN.
360
19e9b2a3
BS
3612013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
362
363 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
364 (altivec_expand_vec_perm_const): Call it.
365
0cf68694
BS
3662013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
367
368 * config/rs6000/vector.md (mov<mode>): Emit permuted move
369 sequences for LE VSX loads and stores at expand time.
370 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
371 prototype.
372 * config/rs6000/rs6000.c (rs6000_const_vec): New.
373 (rs6000_gen_le_vsx_permute): New.
374 (rs6000_gen_le_vsx_load): New.
375 (rs6000_gen_le_vsx_store): New.
376 (rs6000_gen_le_vsx_move): New.
377 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
378 (*vsx_le_perm_load_v4si): New.
379 (*vsx_le_perm_load_v8hi): New.
380 (*vsx_le_perm_load_v16qi): New.
381 (*vsx_le_perm_store_v2di): New.
382 (*vsx_le_perm_store_v4si): New.
383 (*vsx_le_perm_store_v8hi): New.
384 (*vsx_le_perm_store_v16qi): New.
385 (*vsx_xxpermdi2_le_<mode>): New.
386 (*vsx_xxpermdi4_le_<mode>): New.
387 (*vsx_xxpermdi8_le_V8HI): New.
388 (*vsx_xxpermdi16_le_V16QI): New.
389 (*vsx_lxvd2x2_le_<mode>): New.
390 (*vsx_lxvd2x4_le_<mode>): New.
391 (*vsx_lxvd2x8_le_V8HI): New.
392 (*vsx_lxvd2x16_le_V16QI): New.
393 (*vsx_stxvd2x2_le_<mode>): New.
394 (*vsx_stxvd2x4_le_<mode>): New.
395 (*vsx_stxvd2x8_le_V8HI): New.
396 (*vsx_stxvd2x16_le_V16QI): New.
397
9520e1eb
RL
3982013-10-07 Renlin Li <Renlin.Li@arm.com>
399
400 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
401
36c0bd4f
AK
4022013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
403
404 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
405 loop to work also for 31bit ABI.
406 Save the stack pointer for frame_size > 0.
407
ee163e72
AK
4082013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
409
410 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
411 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
412 constraint letters from expanders.
413 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
414 retry count to general_operand.
415 ("tabort"): Give operand 0 a mode.
416 ("tabort_1"): Add mode and constraint letter for operand 0.
417 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
418
45d99234
JL
4192013-10-04 Jeff Law <law@redhat.com>
420
421 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
422
423 * tree-ssa-threadedge.c (thread_through_normal_block): Broken out of ...
424 (thread_across_edge): Here. Call it.
425
7c327f7b
CC
4262013-10-04 Cary Coutant <ccoutant@google.com>
427
428 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
429 discarding a location list expression (or a piece of one).
430
6867e128
JH
4312013-10-03 Jan Hubicka <jh@suse.cz>
432
65efa7e7
UB
433 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
434 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 435 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 436
c7f36d55
JH
4372013-10-03 Jan Hubicka <jh@suse.cz>
438
65efa7e7 439 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
440 accumulate-outgoing-args when producing unwind info.
441
4f0bee4c
WM
4422013-10-03 Wei Mi <wmi@google.com>
443
444 * lra-constraints.c (insert_move_for_subreg): New function
445 extracted from simplify_operand_subreg.
446 (simplify_operand_subreg): Add reload for paradoxical subreg.
447
111c3f39
RX
4482013-10-03 Rong Xu <xur@google.com>
449
65efa7e7
UB
450 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
451 the candidate of builtin_expect such that we should fix the
452 size/time estimation.
453 (estimate_function_body_sizes): Do the acutally size/time fix-up
454 for builtin_expect.
111c3f39 455
942df739
RX
4562013-10-03 Rong Xu <xur@google.com>
457
65efa7e7
UB
458 * predict.c (tree_predict_by_opcode): Get the probability
459 for builtin_expect from param builtin_expect_probability.
460 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
461 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
462 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 463
2284b034
MG
4642013-10-03 Marc Glisse <marc.glisse@inria.fr>
465
466 PR c++/19476
467 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
468 * calls.c (alloca_call_p): Use get_callee_fndecl.
469 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
470 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
471 Likewise.
472 (vrp_visit_stmt): Remove duplicated code.
473
0609bdf2
MM
4742013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
475
476 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
477 ceildf2, btruncdf2, instead of vsx_* name.
478
479 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
480 iterators to only do V2DF and V4SF here. Move the DF code to
481 rs6000.md where it is combined with SF mode. Replace <VSv> with
482 just 'v' since only vector operations are handled with these insns
483 after moving the DF support to rs6000.md.
484 (vsx_sub<mode>3): Likewise.
485 (vsx_mul<mode>3): Likewise.
486 (vsx_div<mode>3): Likewise.
487 (vsx_fre<mode>2): Likewise.
488 (vsx_neg<mode>2): Likewise.
489 (vsx_abs<mode>2): Likewise.
490 (vsx_nabs<mode>2): Likewise.
491 (vsx_smax<mode>3): Likewise.
492 (vsx_smin<mode>3): Likewise.
493 (vsx_sqrt<mode>2): Likewise.
494 (vsx_rsqrte<mode>2): Likewise.
495 (vsx_fms<mode>4): Likewise.
496 (vsx_nfma<mode>4): Likewise.
497 (vsx_copysign<mode>3): Likewise.
498 (vsx_btrunc<mode>2): Likewise.
499 (vsx_floor<mode>2): Likewise.
500 (vsx_ceil<mode>2): Likewise.
501 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
502 (vsx_sminsf3): Likewise.
503 (vsx_fmadf4): Likewise.
504 (vsx_fmsdf4): Likewise.
505 (vsx_nfmadf4): Likewise.
506 (vsx_nfmsdf4): Likewise.
507 (vsx_cmpdf_internal1): Likewise.
508
509 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
510 simpler to select whether a target has SPE or traditional floating
511 point support in iterators.
512 (TARGET_DF_SPE): Likewise.
513 (TARGET_SF_FPR): Likewise.
514 (TARGET_DF_FPR): Likewise.
515 (TARGET_SF_INSN): Macros to say whether floating point support
516 exists for a given operation for expanders.
517 (TARGET_DF_INSN): Likewise.
518
519 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
520 combining of SF/DF mode operations, using both traditional and VSX
521 registers.
522 (Fvsx): Likewise.
523 (Ff): Likewise.
524 (Fv): Likewise.
525 (Fs): Likewise.
526 (Ffre): Likewise.
527 (FFRE): Likewise.
528 (abs<mode>2): Combine SF/DF modes using traditional floating point
529 instructions. Add support for using the upper DF registers with
530 VSX support, and SF registers with power8-vector support. Update
531 expanders for operations supported by both the SPE and traditional
532 floating point units.
533 (abs<mode>2_fpr): Likewise.
534 (nabs<mode>2): Likewise.
535 (nabs<mode>2_fpr): Likewise.
536 (neg<mode>2): Likewise.
537 (neg<mode>2_fpr): Likewise.
538 (add<mode>3): Likewise.
539 (add<mode>3_fpr): Likewise.
540 (sub<mode>3): Likewise.
541 (sub<mode>3_fpr): Likewise.
542 (mul<mode>3): Likewise.
543 (mul<mode>3_fpr): Likewise.
544 (div<mode>3): Likewise.
545 (div<mode>3_fpr): Likewise.
546 (sqrt<mode>3): Likewise.
547 (sqrt<mode>3_fpr): Likewise.
548 (fre<Fs>): Likewise.
549 (rsqrt<mode>2): Likewise.
550 (cmp<mode>_fpr): Likewise.
551 (smax<mode>3): Likewise.
552 (smin<mode>3): Likewise.
553 (smax<mode>3_vsx): Likewise.
554 (smin<mode>3_vsx): Likewise.
555 (negsf2): Delete SF operations that are merged with DF.
556 (abssf2): Likewise.
557 (addsf3): Likewise.
558 (subsf3): Likewise.
559 (mulsf3): Likewise.
560 (divsf3): Likewise.
561 (fres): Likewise.
562 (fmasf4_fpr): Likewise.
563 (fmssf4_fpr): Likewise.
564 (nfmasf4_fpr): Likewise.
565 (nfmssf4_fpr): Likewise.
566 (sqrtsf2): Likewise.
567 (rsqrtsf_internal1): Likewise.
568 (smaxsf3): Likewise.
569 (sminsf3): Likewise.
570 (cmpsf_internal1): Likewise.
571 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
572 (negdf2): Delete DF operations that are merged with SF.
573 (absdf2): Likewise.
574 (nabsdf2): Likewise.
575 (adddf3): Likewise.
576 (subdf3): Likewise.
577 (muldf3): Likewise.
578 (divdf3): Likewise.
579 (fred): Likewise.
580 (rsqrtdf_internal1): Likewise.
581 (fmadf4_fpr): Likewise.
582 (fmsdf4_fpr): Likewise.
583 (nfmadf4_fpr): Likewise.
584 (nfmsdf4_fpr): Likewise.
585 (sqrtdf2): Likewise.
586 (smaxdf3): Likewise.
587 (smindf3): Likewise.
588 (cmpdf_internal1): Likewise.
589 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
590 (btrunc<mode>2): Delete separate expander, and combine with the
591 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
592 (btrunc<mode>2_fpr): Likewise.
593 (ceil<mode>2): Likewise.
594 (ceil<mode>2_fpr): Likewise.
595 (floor<mode>2): Likewise.
596 (floor<mode>2_fpr): Likewise.
597 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
598 Add support for using the upper registers with VSX and
599 power8-vector. Move insns to be closer to the define_expands. On
600 VSX systems, prefer the traditional form of FMA over the VSX
601 version, since the traditional form allows the target not to
602 overlap with the inputs.
603 (fms<mode>4_fpr): Likewise.
604 (nfma<mode>4_fpr): Likewise.
605 (nfms<mode>4_fpr): Likewise.
606
5bea0c6c 6072013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 608 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
609
610 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
611 (struct mult_cost_table): Likewise.
612 (struct mem_cost_table): Likewise.
613 (struct fp_cost_table): Likewise.
614 (struct vector_cost_table): Likewise.
615 (cpu_cost_table): Likewise.
616 * config/arm/arm.opt (mold-rts-costs): New option.
617 (mnew-generic-costs): Likewise.
618 * config/arm/arm.c (generic_extra_costs): New table.
619 (cortexa15_extra_costs): Likewise.
620 (arm_slowmul_tune): Use NULL as new costs.
621 (arm_fastmul_tune): Likewise.
622 (arm_strongarm_tune): Likewise.
623 (arm_xscale_tune): Likewise.
624 (arm_9e_tune): Likewise.
625 (arm_v6t2_tune): Likewise.
626 (arm_cortex_a5_tune): Likewise.
627 (arm_cortex_a9_tune): Likewise.
628 (arm_v6m_tune): Likewise.
629 (arm_fa726te_tune): Likewise.
630 (arm_cortex_a15_tune): Use cortex15_extra_costs.
631 (arm_cortex_tune): Use generict_extra_costs.
632 (shifter_op_p): New function.
633 (arm_unspec_cost): Likewise.
634 (LIBCALL_COST): Define.
635 (arm_new_rtx_costs): New function.
636 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
637 table is available. Use old costs otherwise unless mnew-generic-costs
638 is specified.
639 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
640 (cpu_cost_table): Declare.
641
24c56925
MS
6422013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
643
644 PR target/58460
645 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
646 (*subs_mul_imm_<mode>)
647 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
648 (*sub_<shift>_<mode>)
649 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
650 Remove k constraint.
651
2ab8f063
IB
6522013-10-03 Ian Bolton <ian.bolton@arm.com>
653
654 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
655 code.
656 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
657
79221839
TJ
6582013-10-02 Teresa Johnson <tejohnson@google.com>
659
660 * predict.c (probably_never_executed): New function.
661 (probably_never_executed_bb_p): Invoke probably_never_executed.
662 (probably_never_executed_edge_p): Ditto.
663 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
664 Treat profile insanities conservatively.
665
d441afe0
JDA
6662013-10-02 John David Anglin <danglin@gcc.gnu.org>
667
668 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
669
80f466c4
VM
6702013-10-02 Vladimir Makarov <vmakarov@redhat.com>
671
672 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
673 use it. Use smaller increase for scratch. Don't increase reject
674 for early clobber scratch.
675 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
676 setting eliminated regs except setting fp from hfp.
677 (lra_eliminate): Check lra_insn_recog_data on NULL.
678
6e228b4b
MM
6792013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
680
681 PR target/58587
682 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 683 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
684 (RS6000_CPU, power7 defaults): Likewise.
685
11b54a5a
UB
6862013-10-02 Uros Bizjak <ubizjak@gmail.com>
687
688 * config/x-linux (host-linux.o): Remove header dependencies.
689 Use $(COMPILE) and $(POSTCOMPILE).
690 * config/t-linux-android (linux-android.o): Ditto.
691
bbc02b69
UB
6922013-10-02 Uros Bizjak <ubizjak@gmail.com>
693
694 * Makefile.in (expmed.o-warn): Remove.
695
440917de
AM
6962013-10-02 Andrew MacLeod <amacleod@redhat.com>
697
698 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
699 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
700
99206ca9
TJ
7012013-10-02 Teresa Johnson <tejohnson@google.com>
702
703 * dojump.c (do_jump_1): Divide probability between
704 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
705
56e82b14
TT
7062013-10-02 Tom Tromey <tromey@redhat.com>
707
708 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
709
3d9c733e
AM
7102013-10-02 Andrew MacLeod <amacleod@redhat.com>
711
712 * tree-flow.h: Remove some prototypes.
713 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
714 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
715 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
716 mark_virtual_phi_result_for_renaming): Relocate here.
717 * tree-into-ssa.h: Add prototypes.
bbc02b69 718 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
719 single_pred_before_succ_order.
720 (blocks_in_phiopt_order): Rename and move to cfganal.c.
721 (nonfreeing_call_p) Move to gimple.c.
722 * cfganal.c (single_pred_before_succ_order): Move and renamed from
723 tree-ssa-phiopt.c.
724 * basic-block.h (single_pred_before_succ_order): Add prototype.
725 * gimple.c (nonfreeing_call_p): Relocate here.
726 * gimple.h: Add prototype.
727 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
728 * tree-ssa-dom.h: New file. Relocate prototypes here.
729 * tree-ssa.h: Include tree-ssa-dom.h.
730
78cedfb1
UB
7312013-10-02 Uros Bizjak <ubizjak@gmail.com>
732
733 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
734 Use $(COMPILE) and $(POSTCOMPILE).
735
736 * config/alpha/x-alpha (driver-alpha.o): Ditto.
737
744730a4
AM
7382013-10-02 Andrew MacLeod <amacleod@redhat.com>
739
740 * tree-flow.h: Remove some prototypes.
741 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
742 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
743 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
744 propagate_tree_value*): Move from here to...
745 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
746 propagate_tree_value*): Relocate here.
747 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
748 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
749 * gimple-fold.c: Remove gimple-fold.h from include list.
750 * tree-vrp.c: Remove gimple-fold.h from include list.
751 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
752 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
753 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
754 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
755 * sese.c: Add tree-ssa-propagate.h to include list.
756
826a536d
RB
7572013-10-02 Richard Biener <rguenther@suse.de>
758
759 * tree-loop-distribution.c: Include tree-vectorizer.h for
760 find_loop_location.
761 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 762 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
763 (partition_alloc): Adjust.
764 (partition_builtin_p): Likewise.
765 (partition_has_writes): Remove.
766 (partition_reduction_p): New function.
767 (partition_merge_into): Likewise.
768 (generate_code_for_partition): Commonize builtin partition
769 handling tail.
770 (rdg_cannot_recompute_vertex_p): Remove.
771 (already_processed_vertex_p): Likewise.
772 (rdg_flag_vertex): Do not set has_writes.
773 (classify_partition): Adjust.
774 (rdg_build_partitions): Do not set has_writes, treat all
775 partitions as useful.
78cedfb1 776 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
777 (tree_loop_distribution): Report number of loops and library
778 calls generated as opt-info.
779
4b403ece
AM
7802013-10-02 Andrew MacLeod <amacleod@redhat.com>
781
782 * tree-flow.h: Include new .h files. Move prototypes.
783 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
784 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
785 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
786 * tree-pretty-print.h: Add prototypes from tree-flow.h.
787 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
788 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
789 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
790 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 791 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
792 tree-dfa.h.
793 * gimple-low.h: New File. Add prototypes from tree-flow.h.
794 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
795 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
796 * tree-scalar-evolution.c: Include tree.h.
797 * sese.c: Include tree.h.
798 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
799 * dwarf2out.c: Include tree-dfa.h.
800 * tree-chrec.c: Include tree.h.
801 * tree-data-ref.c: Include tree.h.
802
1d2151c6
YZ
8032013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
804
805 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
806 Fix whitespace.
807
441ad147
RO
8082013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
809
810 * config/t-sol2 (sol2-c.o): Remove header dependencies.
811 Use $(COMPILE) and $(POSTCOMPILE).
812 (sol2-cxx.o): Likewise.
813 (sol2-stubs.o): Likewise.
814 (sol2.o): Likewise.
815 * config/x-solaris (host-solaris.o): Likewise.
816
817 * config/sparc/t-sparc (sparc.o): Remove.
818 (sparc-c.o): Remove header dependencies.
819 Use $(COMPILE) and $(POSTCOMPILE).
820 * config/sparc/x-sparc: Likewise.
821
2deaf8b0
JR
8222013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
823
824 * config/arc/arc-opts.h: Add 2013 to Copyright years.
825 * config/arc/arc700.md: Likewise.
826 * config/arc/arc-modes.def: Likewise.
827 * config/arc/arc-simd.h: Likewise.
828 * config/arc/t-arc-uClibc: Likewise.
829 * config/arc/t-arc-newlib: Likewise.
830
f6fe771a
RL
8312013-10-02 Renlin Li <renlin.li@arm.com>
832
78cedfb1
UB
833 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
834 plus_constant.
f6fe771a
RL
835 (aarch64_expand_epilogue): Likewise.
836
0916f876
YZ
8372013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
838 Yufeng Zhang <yufeng.zhang@arm.com>
839
840 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
841 declaration.
842 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
843 'base_in' represent a conversion and legal_cast_p_1 holds; set
844 'base_in' with the returned value from get_unwidened.
845
ebfcd719
KT
8462013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
847
848 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
849 plus_constant is not used.
850
157ca3e9
WM
8512013-10-01 Wei Mi <wmi@google.com>
852
78cedfb1 853 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
854 * config/i386/i386.md: Add define_peephole2 to
855 break partial reg stall for cvtss2sd/cvtsd2ss.
856
cd4dd8f0
JR
8572013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
858
859 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 860 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 861
1465e5cf
JL
8622013-10-01 Jeff Law <law@redhat.com>
863
864 * tree-ssa-threadupdate.c (struct redirection_data): Delete
865 outgoing_edge and intermediate_edge fields. Instead store the path.
866 (redirection_data::hash): Hash on the last edge's destination index.
867 (redirection_data::equal): Check the entire thread path.
868 (lookup_redirectio_data): Corresponding changes.
869 (create_edge_and_update_destination_phis): Likewise.
870 (thread_single_edge): Likewise.
871
25c606cb 8722013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 873 Diego Novillo <dnovillo@google.com>
25c606cb
JR
874
875 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
876 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
877 (vld32wh_insn, vld32wl_insn): Delete commented-out old
878 versions of these patterns.
879
0ccbc132
JR
880 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
881 (__builtin_arc_aligned): Likewise.
882
f55d4a20
JR
883 * config/arc/arc.md: Expand adc_0 comment stating the intended
884 purpose and why it isn't ready.
885 Replace commented out call_value_via_label_mixed with a
886 plain comment about bl_s.
887
5719867d 888 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
889 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
890 Remove if (1) condition.
891 (arc_encode_section_info): Fix comment.
892
6462fab0
JR
8932013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
894
895 * config/arc/arc.c (arc_conditional_register_usage):
896 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
897 Also set reg_alloc_order for DMA config regs.
898
5d5f6720
JR
8992013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
900 Jeremy Bennett <jeremy.bennett@embecosm.com>
901
902 * doc/install.texi (--with-cpu): Mention ARC.
903 (arc-*-elf32): New paragraph.
904 (arc-linux-uclibc): Likewise.
905 * doc/md.texi (Machine Constraints): Add ARC part.
906 * doc/invoke.texi: (menu): Add ARC Options.
907 (Machine Dependent Options) <ARC Options>: Add synopsis.
908 (node ARC Options): Add.
909 * doc/extend.texi (long_call / short_call attribute): Add ARC.
910 (ARC Built-in Functions): New section defining
911 generic ARC built-in functions.
912 (ARC SIMD Built-in Functions): New section defining SIMD specific
913 built-in functions.
914 (Declaring Attributes of Functions): Extended
915 description of short_call and long_call attributes for ARC and
916 added index entries.
917
526b7aee
SV
9182013-10-01 Saurabh Verma <saurabh.verma@codito.com>
919 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
920 Joern Rennecke <joern.rennecke@embecosm.com>
921 Muhammad Khurram Riaz <khurram.riaz@arc.com>
922 Brendan Kehoe <brendan@zen.org>
923 Michael Eager <eager@eagercon.com>
924 Simon Cook <simon.cook@embecosm.com>
925 Jeremy Bennett <jeremy.bennett@embecosm.com>
926
927 * config/arc, common/config/arc: New directories.
928
53426f6c
JR
9292013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
930 Brendan Kehoe <brendan@zen.org>
931 Simon Cook <simon.cook@embecosm.com>
932
933 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
934
1df9f5a9
AM
9352013-10-01 Andrew MacLeod <amacleod@redhat.com>
936
937 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
938 * tree-ssa-coalesce.h: New. Move prototype to here.
939 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
940 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
941 (gimple_can_coalesce_p): Move to...
942 * gimple.c (gimple_can_coalesce_p): Here.
943
80560f95
AM
9442013-10-01 Andrew MacLeod <amacleod@redhat.com>
945
946 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
947 (dump_decl_set): Move to gimple.c.
948 * gimple.h: Don't include tree-ssa-operands.h.
949 (dump_decl_set): Add prototype.
950 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
951 Move to gimple-ssa.h.
952 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
953 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
954 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
955 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
956 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
957 than PHI_ARG_DEF.
958 (dump_decl_set): Relocate here.
959 * gimple-ssa.h: New file.
960 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
961 Relocate from gimple.h.
962 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
963 * tree-ssa-operands.c (swap_ssa_operands): Rename from
964 swap_tree_operands and remove non-ssa path.
965 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
966 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
967 swap_ssa_operands.
968 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
969 vect_is_simple_reduction_1): Use swap_ssa_operands.
970 * tree-flow.h: Move various prototypes to tree-phinodes.h.
971 (enum need_phi_state): Move to tree-into-ssa.c.
972 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
973 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
974 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
975 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
976 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
977 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
978 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
979 num_imm_uses): Move to ssa-iterators.h.
980 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
981 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
982 tree-phinodes.h.
983 (op_iter_done, op_iter_next_def, op_iter_next_tree,
984 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
985 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
986 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
987 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
988 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
989 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
990 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
991 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
992 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
993 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
994 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
995 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
996 (set_phi_nodes): Move to tree-phinodes.h.
997 * tree-ssa-operands.h (enum ssa_op_iter_type,
998 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
999 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
1000 (dump_decl_set): Remove prototype.
1001 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
1002 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
1003 (set_phi_nodes): Relocate from tree-flow-inline.h.
1004 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
1005 tree-flow-inline.h
1006 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
1007 include list. Temporarily add gimple.h to include list.
1008 * ssa-iterators.h: New file.
1009 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
1010 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
1011 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
1012 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
1013 Relocate from tree-ssa-operands.h.
1014 (delink_imm_use, link_imm_use_to_list, link_imm_use,
1015 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
1016 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
1017 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
1018 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
1019 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
1020 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
1021 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
1022 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
1023 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
1024 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
1025 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
1026 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
1027 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
1028 Relocate from tree-flow-inline.h.
1029 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
1030
8da00d65
VP
10312013-10-01 Vidya Praveen <vidyapraveen@arm.com>
1032
1033 * aarch64-simd.md
1034 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
1035 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
1036 Insert '\t' to output template.
1037 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
1038 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
1039 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
1040 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
1041
e2ebe1c2
UB
10422013-10-01 Uros Bizjak <ubizjak@gmail.com>
1043
1044 * doc/install.texi (Host/target specific installation notes for GCC):
1045 Put @anchor before @heading.
1046 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
1047 Use @email for email addresses.
1048
aee2d611
JL
10492013-10-01 Jeff Law <law@redhat.com>
1050
1051 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
1052 a vec. Only delete the path if we create one without successfully
1053 registering a jump thread.
1054 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
1055 as a pointer.
1056 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
1057 (paths): New vector of jump threading paths.
1058 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
1059 (THREAD_PATH): New accessor macro for the entire thread path.
1060 (lookup_redirection_data): Get intermediate and final outgoing edge
1061 from the thread path.
1062 (create_edge_and_update_destination_phis): Copy the threading path.
1063 (ssa_fix_duplicate_block_edges): Get edges and block types from the
1064 jump threading path.
1065 (ssa_redirect_edges): Get edges and block types from the jump threading
1066 path. Free the path vector.
1067 (thread_block): Get edges from the jump threading path. Look at the
1068 entire path to see if we thread to a loop exit. If we cancel a jump
1069 thread request, then free the path vector.
1070 (thread_single_edge): Get edges and block types from the jump threading
1071 path. Free the path vector.
1072 (thread_through_loop_header): Get edges and block types from the jump
1073 threading path. Free the path vector.
1074 (mark_threaded_blocks): Iterate over the vector of paths and store
1075 the path on the appropriate edge. Get edges and block types from the
1076 jump threading path.
1077 (mark_threaded_blocks): Get edges and block types from the jump
1078 threading path. Free the path vector.
1079 (thread_through_all_blocks): Use the vector of paths rather than
1080 a vector of 3-edge sets.
1081 (register_jump_thread): Accept pointer to a path vector rather
1082 than the path vector itself. Store the path vector for later use.
1083 Simplify.
1084
966f97ac 10852013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 1086 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
1087
1088 PR target/58574
1089 * config/s390/s390.c (s390_split_branches): Modify check for table
1090 jump insns.
1091 (s390_chunkify_start): Rearrange table jump insn check in order to
1092 deal with compare and branch insns correctly.
1093
3a323a38
KV
10942013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
1095
1096 PR target/58578
1097 Revert
1098 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1099 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
1100 define_insn_and_split.
1101 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
1102 (shiftsi3_compare): New pattern.
1103 (rrx): New pattern.
1104 * config/arm/unspecs.md (UNSPEC_RRX): New.
1105
90444831
AM
11062013-10-01 Alan Modra <amodra@gmail.com>
1107
1108 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
1109 casing inout operands.
1110
818625cf
RB
11112013-10-01 Richard Biener <rguenther@suse.de>
1112
1113 PR tree-optimization/58553
1114 * tree-loop-distribution.c (struct partition_s): Add niter member.
1115 (classify_partition): Populate niter member for the partition
1116 and properly identify whether the relevant store happens before
1117 or after the loop exit.
1118 (generate_memset_builtin): Use niter member from the partition.
1119 (generate_memcpy_builtin): Likewise.
1120
30f641cd
RS
11212013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
1122
1123 * vec.h (vec_prefix, vec): Prefix member names with "m_".
1124 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
1125
65d3284b
RS
11262013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
1127
1128 * basic-block.h (edge_list): Prefix member names with "m_".
1129 * context.h (context): Likewise.
1130 * domwalk.h (dom_walker): Likewise.
1131 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
1132 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
1133 * hash-table.h (hash_table): Likewise.
1134 * machmode.h (bit_field_mode_iterator): Likewise.
1135 * pass_manager.h (pass_list): Likewise.
1136 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
1137 * tree-pass.h (pass_data): Likewise.
1138 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
1139 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
1140 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
1141 * asan.c (pass_data_asan): Update accordingly.
1142 * cfganal.c (control_dependences::find_control_dependence): Likewise.
1143 (control_dependences::control_dependences): Likewise.
1144 (control_dependences::~control_dependences): Likewise.
1145 (control_dependences::~control_dependences): Likewise.
1146 (control_dependences::get_edges_dependent_on): Likewise.
1147 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
1148 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
1149 * context.c (gcc::context::context): Likewise.
1150 * cprop.c (pass_rtl_cprop::clone): Likewise.
1151 * domwalk.c (dom_walker::walk): Likewise.
1152 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
1153 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
1154 * mode-switching.c (pass_mode_switching::clone): Likewise.
1155 * passes.c (opt_pass::opt_pass): Likewise.
1156 (pass_manager::pass_manager): Likewise.
1157 * predict.c (pass_strip_predict_hints::clone): Likewise.
1158 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
1159 (pass_split_all_insns::clone): Likewise.
1160 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1161 Likewise.
1162 (bit_field_mode_iterator::next_mode): Likewise.
1163 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
1164 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
1165 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
1166 * tree-complex.c (pass_lower_complex::clone): Likewise.
1167 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
1168 * tree-object-size.c (pass_object_sizes::clone): Likewise.
1169 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
1170 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
1171 (pass_fold_builtins::clone): Likewise.
1172 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
1173 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
1174 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
1175 (pass_cd_dce::clone): Likewise.
1176 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
1177 (pass_phi_only_cprop::clone): Likewise.
1178 * tree-ssa-dse.c (pass_dse::clone): Likewise.
1179 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
1180 * tree-ssa-loop.c (pass_lim::clone): Likewise.
1181 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
1182 * tree-ssa-pre.c (pass_fre::clone): Likewise.
1183 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
1184 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
1185 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
1186 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
1187 * tree-vrp.c (pass_vrp::clone): Likewise.
1188 * tsan.c (pass_tsan::clone): Likewise.
1189
f66d0891
JJ
11902013-09-30 Jakub Jelinek <jakub@redhat.com>
1191
d2a365a8
JJ
1192 PR middle-end/58564
1193 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
1194 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
1195
f66d0891
JJ
1196 PR middle-end/58564
1197 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
1198 optimization, punt if sign_bit_p looked through any zero extension.
1199
05357ac3
TJ
12002013-09-30 Teresa Johnson <tejohnson@google.com>
1201
1202 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
1203 Update redirected out edge count in joiner case.
1204 (ssa_redirect_edges): Common the joiner and non-joiner cases
1205 so that joiner case gets profile updates.
1206
ca406576
RB
12072013-09-30 Richard Biener <rguenther@suse.de>
1208
1209 PR tree-optimization/58554
e2ebe1c2
UB
1210 * tree-loop-distribution.c (classify_partition): Require
1211 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
1212 (tree_loop_distribution): Calculate dominance info.
1213
92d649c4
VK
12142013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
1215
1216 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
1217 (NO_PROFILE_COUNTERS): Likewise.
1218 (PROFILE_HOOK): Likewise.
1219 (FUNCTION_PROFILER): Likewise.
1220 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
1221
bd9534e2
IS
12222013-09-30 Iain Sandoe <iain@codesourcery.com>
1223
1224 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
1225 calls and defines in TARGET_MACHO conditional.
1226 (load_macho_picbase_di): Likewise.
1227 (reload_macho_picbase): Likewise.
1228 (reload_macho_picbase_si): Likewise.
1229 (reload_macho_picbase_di): Likewise.
1230 (nonlocal_goto_receiver): Likewise.
1231
4494fbc9
NC
12322013-09-30 Nick Clifton <nickc@redhat.com>
1233
1234 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
1235 that use the MSP430X ISA.
1236 (msp430_option_override): Scan -mmcu command line option for any
1237 MCU name that supports the MSP430X ISA.
1238 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
1239 -mmcu options which enable the MSP430X ISA.
1240
791d9044
RB
12412013-09-30 Richard Biener <rguenther@suse.de>
1242
1243 PR middle-end/58532
1244 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
1245 before looking for setjmp-like calls.
1246
e1c5c877
IS
12472013-09-29 Iain Sandoe <iain@codesourcery.com>
1248
1249 PR target/10901
1250 * config/darwin-protos.h (machopic_get_function_picbase): New.
1251 * config/darwin.c (machopic_get_function_picbase): New.
1252 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
1253 label for a new func. (load_macho_picbase_di): Likewise.
1254 (reload_macho_picbase): New expand.
1255 (reload_macho_picbase_si): New insn.
1256 (reload_macho_picbase_di): New insn.
1257 (nonlocal_goto_receiver): New define and split.
1258 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
1259 (unspecv enum): Add UNSPECV_NLGR.
1260
749278c5
IS
12612013-09-29 Iain Sandoe <iain@codesourcery.com>
1262
1263 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
1264 that altivec registers are correctly sized on Darwin.
1265
2c43a51c
IS
12662013-09-29 Iain Sandoe <iain@codesourcery.com>
1267
1268 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
1269 darwin-driver.o): Use COMPILE and POSTCOMPILE.
1270 * config/x-darwin (host-darwin.o): Likewise.
1271 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1272 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1273 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1274
7a5911d3
UB
12752013-09-29 Uros Bizjak <ubizjak@gmail.com>
1276
1277 * doc/invoke.texi: Fix usage of @tie{} command.
1278
3f67a73d
EB
12792013-09-29 Eric Botcazou <ebotcazou@adacore.com>
1280
1281 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
1282
9ac2f538
JH
12832013-09-28 Jan Hubicka <jh@suse.cz>
1284
1285 * config/i386/x86-tune.def: Add documentation for each of the options;
1286 add whitespace.
1287
b0ff06da
JH
12882013-09-28 Jan Hubicka <jh@suse.cz>
1289
7a5911d3
UB
1290 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
1291 generic.
b0ff06da
JH
1292 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
1293 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
1294 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
1295 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
1296 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
1297
c3284718
RS
12982013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
1299
1300 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
1301 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
1302 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
1303 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
1304 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
1305 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
1306 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
1307 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
1308 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
1309 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
1310 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
1311 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
1312 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
1313 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
1314 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
1315 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
1316 gimple.h, godump.c, graphite-clast-to-gimple.c,
1317 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
1318 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
1319 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
1320 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
1321 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
1322 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
1323 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
1324 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
1325 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
1326 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
1327 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
1328 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
1329 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
1330 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
1331 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
1332 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
1333 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
1334 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
1335 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
1336 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
1337 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
1338 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
1339 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
1340 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
1341 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
1342 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1343 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
1344 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
1345 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
1346 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
1347 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
1348 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
1349 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
1350 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
1351 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
1352 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
1353 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
1354 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
1355 whitespace before "(".
1356
c6285bd7
SL
13572013-09-28 Sandra Loosemore <sandra@codesourcery.com>
1358
1359 * expr.h (extract_bit_field): Remove packedp parameter.
1360 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
1361 from forward declaration.
1362 (store_split_bit_field): Remove packedp arg from calls to
1363 extract_fixed_bit_field.
1364 (extract_bit_field_1): Remove packedp parameter and packedp
1365 argument from recursive calls and calls to extract_fixed_bit_field.
1366 (extract_bit_field): Remove packedp parameter and corresponding
1367 arg to extract_bit_field_1.
1368 (extract_fixed_bit_field): Remove packedp parameter. Remove code
1369 to issue warnings.
1370 (extract_split_bit_field): Remove packedp arg from call to
1371 extract_fixed_bit_field.
1372 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
1373 (copy_blkmode_from_reg): Likewise.
1374 (copy_blkmode_to_reg): Likewise.
1375 (read_complex_part): Likewise.
1376 (store_field): Likewise.
1377 (expand_expr_real_1): Likewise.
1378 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
1379 to extract_bit_field.
1380 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
1381 call to extract_bit_field.
1382 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
1383 call to extract_bit_field.
1384 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
1385 and special packedp behavior from -fstrict-volatile-bitfields
1386 documentation.
1387
522d4efc
JBG
13882013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1389
1390 * lra-eliminations.c (init_elim_table): Guard value_p.
1391
19cdb489
MM
13922013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
1393
1394 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
1395 DFmode, DImode, and SFmode in the upper VSX registers based on the
1396 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
1397 if -mpower8-vector. Combine -mvsx-timode handling with the rest
1398 of the VSX register handling.
1399
1400 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
1401 (f32_sv): Likewise.
1402 (zero_extendsidi2_lfiwzx): Add support for loading into the
1403 Altivec registers with -mpower8-vector. Use wu/wv constraints to
1404 only do VSX memory options on Altivec registers.
1405 (extendsidi2_lfiwax): Likewise.
1406 (extendsfdf2_fpr): Likewise.
1407 (mov<mode>_hardfloat, SF/SD modes): Likewise.
1408 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
1409 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
1410 (movdi_internal64): Likewise.
1411
d6d11272
XDL
14122013-09-27 Xinliang David Li <davidxl@google.com>
1413
1414 * opts.c (finish_options): Adjust parameters
1415 according to vect cost model.
1416 (common_handle_option): Set dynamic vect cost
1417 model for FDO.
1418 targhooks.c (default_add_stmt_cost): Compute stmt cost
1419 unconditionally.
1420 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
1421 Use helper function.
1422 * tree-vectorizer.h (unlimited_cost_model): New function.
1423 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
1424 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
1425 function.
1426 (vect_enhance_data_refs_alignment): Ditto.
1427 * flag-types.h: New enum.
1428 * common/config/i386/i386-common.c (ix86_option_init_struct):
1429 No need to initialize vect_cost_model flag.
1430 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
1431 unconditionally.
1432
ac1857a3
DN
14332013-09-27 Diego Novillo <dnovillo@google.com>
1434
1435 * gimple.h (enum ssa_mode): Remove.
1436
3c468b4c
PM
14372013-09-27 Paulo Matos <pmatos@broadcom.com>
1438
1439 PR middle-end/58463
1440 * gcc.dg/pr58463.c: New test.
1441
0d0e2af6
PM
14422013-09-27 Paulo Matos <pmatos@broadcom.com>
1443
1444 * cfgloop.h (number_of_loops): Fix typo in check for null.
1445
09dc585e
JJ
14462013-09-27 Jakub Jelinek <jakub@redhat.com>
1447
1448 PR middle-end/58551
1449 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
1450 are children of outermost saved_cfun's loop, and set it up to
1451 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
1452 if loop != loop0 and SESE region contains bbs that belong to loop0.
1453
ec5a3504
RS
14542013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
1455
1456 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
1457 (binary_scale_code_p, get_base_term, get_index_term): New functions.
1458 (set_address_segment, set_address_base, set_address_index)
1459 (set_address_disp): Accept the argument unconditionally.
1460 (baseness): Remove must_be_base_p and must_be_index_p checks.
1461 (decompose_normal_address): Classify as much as possible in the
1462 main loop.
1463
f91aec98
RS
14642013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
1465
1466 * cse.c (count_reg_usage): Handle INT_LIST.
1467 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
1468 * reginfo.c (reg_scan_mark_refs): Likewise.
1469 * reload1.c (eliminate_regs_1): Likewise.
1470
a9195970
IS
14712013-09-27 Iain Sandoe <iain@codesourcery.com>
1472
1473 PR middle-end/58547
1474 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
1475 signed.
1476
e6f1c509
RB
14772013-09-27 Richard Biener <rguenther@suse.de>
1478
1479 PR tree-optimization/58459
1480 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
1481 restriction not propagating into loops.
1482
84f48495
FW
14832013-09-26 Florian Weimer <fw@deneb.enyo.de>
1484
1485 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
1486 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
1487 * doc/tree-ssa.texi (Walking use-def chains): Delete.
1488
74fc8b8a
RB
14892013-09-26 Richard Biener <rguenther@suse.de>
1490
7a5911d3 1491 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 1492
b4ada065
RB
14932013-09-26 Richard Biener <rguenther@suse.de>
1494
1495 * alias.h (component_uses_parent_alias_set): Rename to ...
1496 (component_uses_parent_alias_set_from): ... this.
1497 * alias.c (component_uses_parent_alias_set): Rename to ...
1498 (component_uses_parent_alias_set_from): ... this and return
1499 the desired parent.
1500 (reference_alias_ptr_type_1): Use the result from
1501 component_uses_parent_alias_set_from instead of stripping
1502 components one at a time.
1503 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
1504
78bca40d
AM
15052013-09-26 Andrew MacLeod <amacleod@redhat.com>
1506
7a5911d3
UB
1507 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
1508 Move prototypes to...
78bca40d
AM
1509 * tree-ssa-ter.h: New File. Move prototypes here.
1510 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
1511 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
1512 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 1513 from is_replaceable_p.
78bca40d
AM
1514 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
1515 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
1516 (process_replaceable): Use ter_is_replaceable_p.
1517 (find_replaceable_in_bb): Use ter_is_replaceable_p.
1518 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
1519 newly refactored ssa_is_replaceable_p.
1520 * cfgexpand.c: Include tree-outof-ssa.h.
1521 * ssaexpand.h: Delete.
1522
ff2a63a7
AM
15232013-09-26 Andrew MacLeod <amacleod@redhat.com>
1524
1525 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
1526 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
1527 tree-ssa.c
1528 (create_gimple_tmp): Delete.
1529 (get_expr_type, build_assign, build_type_cast): Move to...
1530 * gimple-builder.c: New File.
1531 (get_expr_type): Relocate from gimple.c.
1532 (build_assign, build_type_cast): Change to only create ssanames.
1533 * gimple.h: Move prototypes to...
1534 * gimple-builder.h: New File. Here.
1535 * tree-ssa.h: And here.
1536 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
1537 count_uses_and_derefs): Relocate from gimple.c.
1538 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
1539 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
1540 * tree-ssa-math-opts (execute_cse_reciprocals): Use
1541 gimple_replace_ssa_lhs.
1542 * asan.c: Include gimple-builder.h.
1543 * Makefile.in: Add gimple-builder.o.
1544
a2544177
RB
15452013-09-26 Richard Biener <rguenther@suse.de>
1546
1547 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
1548 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
1549 (loe_visit_block): Use gcc_checking_assert.
1550 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
1551 gimple_assign_ssa_name_copy_p.
1552 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
1553 change.
1554
6d1ca9a0
DE
15552013-09-26 David Edelsohn <dje.gcc@gmail.com>
1556
1557 * config/rs6000/t-rs6000 (rs6000.o): Remove.
1558 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
1559
46e950db
RB
15602013-09-26 Richard Biener <rguenther@suse.de>
1561
1562 PR tree-optimization/58539
1563 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
1564 the fact that debug statements are not taking part in loop-closed
1565 SSA construction.
1566
40ada30a
NC
15672013-09-26 Nick Clifton <nickc@redhat.com>
1568
1569 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
1570 time warning message.
1571 (msp430_print_operand_raw): Delete unused letter parameter.
1572 (TARGET_PRINT_OPERAND_ADDRESS): Define.
1573 (msp430_print_operand_address): New function.
1574 (msp430_print_operand): Move address printing code from here to
1575 new function.
1576 * config/msp430/msp430.md (movsipsi2): Add comment in generated
1577 assembler.
1578 (zero_extendpsisi2): Likewise.
1579 (extendpsisi2): New pattern.
1580 (andneghi3): New pattern.
1581
38e8f663
YR
15822013-09-26 Yvan Roux <yvan.roux@linaro.org>
1583
1584 * config/aarch64/aarch64.opt (mlra): New option.
1585 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
1586 (TARGET_LRA_P): Define.
1587
4167e8d4
EB
15882013-09-26 Eric Botcazou <ebotcazou@adacore.com>
1589
1590 * expr.c (expand_assignment): Remove obsolete comment.
1591
5254eac4
JL
15922013-09-25 Jeff Law <law@redhat.com>
1593
1594 * tree-flow.h (thread_through_all_blocks): Prototype moved into
1595 tree-ssa-threadupdate.h.
1596 (register_jump_thread): Similarly.
1597 * tree-ssa-threadupdate.h: New header file.
1598 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
1599 * tree-vrp.c: Likewise.
1600 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
1601 (thread_around_empty_blocks): Change type of path vector argument to
1602 an edge,type pair from just an edge. Initialize both elements when
1603 appending to a jump threading path. Tweak references to elements
1604 appropriately.
1605 (thread_across_edge): Similarly. Release memory for the elements
1606 as needed.
1607 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
1608 (dump_jump_thread_path): New function broken out from
1609 register_jump_thread.
1610 (register_jump_thread): Use dump_jump_thread_path. Change type of
1611 path vector entries. Search the path for NULL edges and dump
1612 the path if one is found. Tweak the conversion of path to 3-edge
1613 form to use the block copy type information embedded in the path.
1614
20f114a3
YR
16152013-09-25 Yvan Roux <yvan.roux@linaro.org>
1616
1617 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
1618
3936bafc
YR
16192013-09-25 Yvan Roux <yvan.roux@linaro.org>
1620 Vladimir Makarov <vmakarov@redhat.com>
1621
1622 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
1623 from the least significant bit.
1624 (strip_address_mutations): Add bitfield operations handling.
1625 (must_be_index_p): Add shifting and rotate operations handling.
1626 (set_address_base): Use must_be_base_p predicate.
4167e8d4 1627 (set_address_index): Use must_be_index_p predicate.
3936bafc 1628
b86f6e9e
AI
16292013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
1630 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1631 Sergey Lega <sergey.s.lega@intel.com>
1632 Anna Tikhonova <anna.tikhonova@intel.com>
1633 Ilya Tocar <ilya.tocar@intel.com>
1634 Andrey Turetskiy <andrey.turetskiy@intel.com>
1635 Ilya Verbin <ilya.verbin@intel.com>
1636 Kirill Yukhin <kirill.yukhin@intel.com>
1637 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1638
1639 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
1640 Use new names.
1641 (ix86_expand_vector_move_misalign): Support new unaligned load and
1642 stores and use new names.
1643 (CODE_FOR_sse2_storedqu): Rename to ...
1644 (CODE_FOR_sse2_storedquv16qi): ... this.
1645 (CODE_FOR_sse2_loaddqu): Rename to ...
1646 (CODE_FOR_sse2_loaddquv16qi): ... this.
1647 (CODE_FOR_avx_loaddqu256): Rename to ...
1648 (CODE_FOR_avx_loaddquv32qi): ... this.
1649 (CODE_FOR_avx_storedqu256): Rename to ...
1650 (CODE_FOR_avx_storedquv32qi): ... this.
1651 * config/i386/i386.md (fpint_logic): New.
1652 * config/i386/sse.md (VMOVE): Extend for AVX512.
1653 (VF): Ditto.
1654 (VF_128_256): New.
1655 (VF_512): Ditto.
1656 (VI_UNALIGNED_LOADSTORE): Ditto.
1657 (sse2_avx_avx512f): Ditto.
1658 (sse2_avx2): Extend for AVX512.
1659 (sse4_1_avx2): Ditto.
1660 (avx2_avx512f): New.
1661 (sse): Extend for AVX512.
1662 (sse2): Ditto.
1663 (sse4_1): Ditto.
1664 (avxsizesuffix): Ditto.
1665 (sseintvecmode): Ditto.
1666 (ssePSmode): Ditto.
1667 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
1668 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
1669 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
1670 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
1671 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
1672 (<sse2_avx_avx512f>_storedqu<mode): ... this.
1673 (<sse>_movnt<mode>): Replace constraint "x" with "v".
1674 (STORENT_MODE): Extend for AVX512.
1675 (*absneg<mode>2): Replace constraint "x" with "v".
1676 (*mul<mode>3): Ditto.
1677 (*ieee_smin<mode>3): Ditto.
1678 (*ieee_smax<mode>3): Ditto.
1679 (avx_cmp<mode>3): Replace VF with VF_128_256.
1680 (*<sse>_maskcmp<mode>3_comm): Ditto.
1681 (<sse>_maskcmp<mode>3): Ditto.
1682 (<sse>_andnot<mode>3): Extend for AVX512.
1683 (<code><mode>3, anylogic): Replace VF with VF_128_256.
1684 (<code><mode>3, fpint_logic): New.
1685 (*<code><mode>3): Extend for AVX512.
1686 (avx512flogicsuff): New.
1687 (avx512f_<logic><mode>): Ditto.
1688 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
1689 VF_128_256.
1690 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
1691 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
1692 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
1693 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
1694 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
1695 (xop_vpermil2<mode>3): Ditto.
1696 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
1697 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
1698 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
1699 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
1700
4d44d03c
TT
17012013-09-25 Tom Tromey <tromey@redhat.com>
1702
1703 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
1704 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
1705 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
1706 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
1707 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
1708 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
1709 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
1710 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
1711 (GRAPHITE_HTAB_H): Remove.
1712
86aaf68d
TT
17132013-09-25 Tom Tromey <tromey@redhat.com>
1714
1715 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
1716
c987deb8
TT
17172013-09-25 Tom Tromey <tromey@redhat.com>
1718
1719 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
1720
9439747e
TT
17212013-09-25 Tom Tromey <tromey@redhat.com>
1722
1723 * config/i386/t-i386 (i386.o): Remove.
1724 (i386-c.o): Use COMPILE and POSTCOMPILE.
1725
aefc31a1
TT
17262013-09-25 Tom Tromey <tromey@redhat.com>
1727
1728 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
1729
b6541edc
TT
17302013-09-25 Tom Tromey <tromey@redhat.com>
1731
1732 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
1733 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
1734 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
1735 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
1736 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
1737 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
1738 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
1739 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
1740 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
1741 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
1742 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
1743 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
1744 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
1745 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
1746 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
1747 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
1748 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
1749 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
1750 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
1751 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
1752 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
1753 (tree-ssa-pre.o, tree-ssa-sccvn.o)
1754 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
1755 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
1756 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
1757 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
1758 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
1759 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
1760 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
1761 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
1762 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
1763 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
1764 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
1765 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
1766 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
1767 (graphite-clast-to-gimple.o, graphite-dependences.o)
1768 (graphite-interchange.o, graphite-poly.o)
1769 (graphite-scop-detection.o, graphite-sese-to-poly.o)
1770 (graphite-optimize-isl.o, tree-vect-loop.o)
1771 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
1772 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
1773 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
1774 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
1775 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
1776 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
1777 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
1778 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
1779 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
1780 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
1781 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
1782 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
1783 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
1784 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
1785 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
1786 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
1787 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
1788 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
1789 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
1790 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
1791 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
1792 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
1793 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
1794 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
1795 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
1796 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
1797 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
1798 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
1799 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
1800 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
1801 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
1802 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
1803 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
1804 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
1805 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
1806 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
1807 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
1808 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
1809 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
1810 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
1811 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
1812 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
1813 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
1814 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
1815 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
1816 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
1817 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
1818 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
1819 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
1820 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
1821 (gcov-dump.o): Remove.
1822 (default-c.o): Use COMPILE and POSTCOMPILE.
1823 (CFLAGS-gcc.o): New variable.
1824 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
1825
8c796d19
TT
18262013-09-25 Tom Tromey <tromey@redhat.com>
1827
1828 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
1829 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
1830 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
1831 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
1832 (c-family/c-pragma.o, c-family/c-pretty-print.o)
1833 (c-family/c-semantics.o, c-family/c-ada-spec.o)
1834 (c-family/array-notation-common.o, c-family/stub-objc.o)
1835 (c-family/c-ubsan.o): Remove.
1836
0a6c2227
TT
18372013-09-25 Tom Tromey <tromey@redhat.com>
1838
1839 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
1840
f3bc55f0
TT
18412013-09-25 Tom Tromey <tromey@redhat.com>
1842
1843 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
1844 to add -DENABLE_SHARED_LIBGCC.
1845 (gcc.o): Don't use subshell.
1846
c11c795e
TT
18472013-09-25 Tom Tromey <tromey@redhat.com>
1848
1849 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
1850 * configure.ac: Don't invoke AM_PROG_CC_C_O.
1851 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
1852 * configure, config.in: Rebuild.
1853
043378c3
TT
18542013-09-25 Tom Tromey <tromey@redhat.com>
1855
1856 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
1857 (COMPILE, POSTCOMPILE): New variables.
1858 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
1859 (DEPFILES): New variable.
1860 Include ".Po" files.
1861 * configure.ac: Add checks for dependency checking.
1862 * configure, aclocal.m4: Regenerate.
1863
eab34643
TT
18642013-09-25 Tom Tromey <tromey@redhat.com>
1865
1866 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 1867 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 1868
d2db5e91
TT
18692013-09-25 Tom Tromey <tromey@redhat.com>
1870
1871 * Makefile.in (generated_files): Add options.h,
1872 target-hooks-def.h, insn-opinit.h,
1873 common/common-target-hooks-def.h, pass-instances.def,
1874 c-family/c-target-hooks-def.h.
1875
af33629e
JL
18762013-09-25 Jeff Law <law@redhat.com>
1877
1878 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
1879 than foo[foo.length () - 1] to access last member in a vec.
1880 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
1881
ed0d3051
RB
18822013-09-25 Richard Biener <rguenther@suse.de>
1883
1884 PR middle-end/58521
1885 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
1886
123485ca
JH
18872013-09-25 Jan Hubicka <jh@suse.cz>
1888
1889 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
1890 test.
1891
d70b0f1f
MP
18922013-09-25 Marek Polacek <polacek@redhat.com>
1893
1894 PR sanitizer/58420
1895 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
1896 when determining the type name.
1897
e3f02798
OE
18982013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
1899
1900 * config/sh/sh.md: Fix formatting.
1901
7a5911d3 19022013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 1903
7a5911d3
UB
1904 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
1905 max peel iterations parameter.
4f17aa0b
XDL
1906 * param.def: New parameter.
1907 * doc/invoke.texi: Document New parameter.
1908
0498471b
CL
19092013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
1910
1911 * gimple-pretty-print.c: Various whitespace tweaks.
1912 * tree-core.h: Likewise.
1913 * tree-pretty-print.c: Likewise.
1914 * tree-ssa-alias.c: Likewise.
1915 * tree-ssa-copy.c: Likewise.
1916 * tree-ssanames.c: Likewise.
1917 * tree-ssanames.h: Likewise.
1918 * tree-vrp.c: Likewise.
1919
5a8c2b57
AM
19202013-09-24 Alan Modra <amodra@gmail.com>
1921
1922 PR middle-end/57134
1923 PR middle-end/57586
7a5911d3
UB
1924 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
1925 for output operands that disallow regs. Don't use EXPAND_WRITE on
1926 inout operands.
5a8c2b57 1927
f40333af
RB
19282013-09-24 Richard Biener <rguenther@suse.de>
1929
1930 PR middle-end/58513
1931 * tree.c (reference_alias_ptr_type): Move ...
1932 * alias.c (reference_alias_ptr_type): ... here and implement
1933 in terms of the new reference_alias_ptr_type_1.
1934 (ref_all_alias_ptr_type_p): New helper.
1935 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
1936 use ref_all_alias_ptr_type_p.
1937 (get_deref_alias_set): Add flag_strict_aliasing check here.
1938 (reference_alias_ptr_type_1): New function, split out from ...
1939 (get_alias_set): ... here.
1940 (alias_ptr_types_compatible_p): New function.
1941 * alias.h (reference_alias_ptr_type): Declare.
1942 (alias_ptr_types_compatible_p): Likewise.
1943 * tree.h (reference_alias_ptr_type): Remove.
1944 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
1945 to compare MEM_REF alias types.
1946
583e8bf5
RB
19472013-09-24 Richard Biener <rguenther@suse.de>
1948
1949 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
1950
5e8586d7
MM
19512013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1952
19c3e797
MM
1953 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
1954 reload helper function arrays into a single array reg_addr.
1955 (reload_fpr_gpr): Likewise.
1956 (reload_gpr_vsx): Likewise.
1957 (reload_vsx_gpr): Likewise.
1958 (struct rs6000_reg_addr): Likewise.
1959 (reg_addr): Likewise.
1960 (rs6000_debug_reg_global): Change rs6000_vector_reload,
1961 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
1962 (rs6000_init_hard_regno_mode_ok): Likewise.
1963 (rs6000_secondary_reload_direct_move): Likewise.
1964 (rs6000_secondary_reload): Likewise.
1965
5e8586d7
MM
1966 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
1967 constraints: wu, ww, and wy. Repurpose wv constraint added during
1968 power8 changes. Put wg constraint in alphabetical order.
1969
1970 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
1971 for future work to add ISA 2.07 VSX single precision support.
1972 (-mvsx-scalar-double): Change default from -1 to 1, update
1973 documentation comment.
1974 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
1975 (-mupper-regs-df): New debug switch to control whether DF values
1976 can go in the traditional Altivec registers.
1977 (-mupper-regs-sf): New debug switch to control whether SF values
1978 can go in the traditional Altivec registers.
1979
1980 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
1981 and wy constraints.
1982 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
1983 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
1984 Add new constraints, wu/ww/wy. Repurpose wv constraint.
1985 (rs6000_debug_legitimate_address_p): Print if we are running
1986 before, during, or after reload.
1987 (rs6000_secondary_reload): Add a comment.
1988 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
1989
1990 * config/rs6000/constraints.md (wa constraint): Sort w<x>
1991 constraints. Update documentation string.
1992 (wd constraint): Likewise.
1993 (wf constraint): Likewise.
1994 (wg constraint): Likewise.
1995 (wn constraint): Likewise.
1996 (ws constraint): Likewise.
1997 (wt constraint): Likewise.
1998 (wx constraint): Likewise.
1999 (wz constraint): Likewise.
2000 (wu constraint): New constraint for ISA 2.07 SFmode scalar
2001 instructions.
2002 (ww constraint): Likewise.
2003 (wy constraint): Likewise.
2004 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
2005 the previous submissions.
2006 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
2007
e5af9ddd
RS
20082013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2009
2010 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
2011 (REG_BR_PROB): Say that the probability is stored in an int_list.
2012 * reg-notes.def: Update commentary to mention INT_LIST.
2013 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
2014 (INT_LIST): New rtx.
2015 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
2016 * rtlanal.c (int_reg_note_p): New function.
2017 (alloc_reg_note): Assert that the note does not have an int argument.
2018 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
2019 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
2020 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
2021 rather than an INSN_LIST. Handle INT_LIST.
2022 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
2023 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
2024 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
2025 Manipulate them as ints rather than rtxes.
2026 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
2027 * regmove.c (copy_src_to_dest): Likewise.
2028 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
2029
2030 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
2031 into the cases that need it.
2032 * config/arm/arm.c (arm_unwind_emit): Likewise.
2033
2034 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
2035 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
2036 * loop-doloop.c (add_test, doloop_modify): Likewise.
2037 * loop-unswitch.c (compare_and_jump_seq): Likewise.
2038 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
2039 * predict.c (combine_predictions_for_insn): Likewise.
2040 * print-rtl.c (print_rtx): Handle INT_LIST.
2041 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
2042 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
2043 * config/arm/arm.c (emit_unlikely_jump): Likewise.
2044 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
2045 (ix86_split_fp_branch, predict_jump): Likewise.
2046 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
2047 * config/sh/sh.c (expand_cbranchsi4): Likewise.
2048 * config/spu/spu.c (ea_load_store_inline): Likewise.
2049
2050 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
2051 value of a REG_BR_PROB note.
2052 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2053 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
2054 * emit-rtl.c (try_split): Likewise.
2055 * predict.c (br_prob_note_reliable_p): Likewise.
2056 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
2057 * reorg.c (mostly_true_jump): Likewise.
2058 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
2059 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
2060 * config/i386/i386.c (ix86_print_operand): Likewise.
2061 * config/ia64/ia64.c (ia64_print_operand): Likewise.
2062 * config/mmix/mmix.c (mmix_print_operand): Likewise.
2063 * config/rs6000/rs6000.c (output_cbranch): Likewise.
2064 * config/s390/s390.c (s390_expand_tbegin): Likewise.
2065 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
2066 * config/sparc/sparc.c (output_cbranch): Likewise.
2067 * config/spu/spu.c (get_branch_target): Likewise.
2068 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
2069 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
2070
450ad0cd
JH
20712013-09-23 Jan Hubicka <jh@suse.cz>
2072
2073 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
2074 for ipa-devirt.
2075 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
2076 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
2077 of external calls
2078 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
2079 (gimple_fold_call): Dump inconsistent devirtualizations; add
2080 sanity check for type based devirtualizations.
2081 * ipa-prop.c: Include ipa-utils.h
2082 (ipa_intraprocedural_devirtualization): Add sanity check.
2083 (try_make_edge_direct_virtual_call): Likewise.
2084
cefce769
EB
20852013-09-23 Eric Botcazou <ebotcazou@adacore.com>
2086
2087 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
2088 assignment statements.
2089
a895a2b8
KV
20902013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2091
2092 * gimple-pretty-print.c (dump_ssaname_info): New function.
2093 (dump_gimple_phi): Call it.
2094 (pp_gimple_stmt_1): Likewise.
2095 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
2096 (range_info_def): Declare.
2097 * tree-pretty-print.c (pp_double_int): New function.
2098 (dump_generic_node): Call it.
2099 * tree-pretty-print.h (pp_double_int): Declare.
2100 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
2101 * tree-ssanames.h (range_info_def): New structure.
2102 (value_range_type): Move definition here.
2103 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
2104 Declare.
2105 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
2106 initialization.
2107 (set_range_info): New function.
2108 (get_range_info): Likewise.
2109 (duplicate_ssa_name_range_info): Likewise.
2110 (duplicate_ssa_name_fn): Check pointer type and call
2111 duplicate_ssa_name_range_info.
2112 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2113 * tree-vrp.c (value_range_type): Remove definition, now in
2114 tree-ssanames.h.
7a5911d3 2115 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
2116 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
2117 (SSA_NAME_RANGE_INFO): New macro.
2118
984af6ac
RB
21192013-09-23 Richard Biener <rguenther@suse.de>
2120
2121 PR tree-optimization/58464
2122 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 2123 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
2124 (phi_translate_1): Remove recursion detection here.
2125 (phi_translate): Pre-seed the cache with NULL to catch
2126 recursion here in a more generic way.
2127 (bitmap_find_leader): Adjust comment.
2128 (get_representative_for): Dump value-numbers.
2129 (create_expression_by_pieces): Likewise.
2130 (insert_into_preds_of_block): Likewise.
2131
0e26cf79
CB
21322013-09-23 Christian Bruel <christian.bruel@st.com>
2133
2134 PR target/58475
2135 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
2136 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
2137
4d0e5b54
JG
21382013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
2139
2140 Revert r202780:
2141 2013-09-20 Renlin Li <renlin.li@arm.com>
2142
7a5911d3
UB
2143 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2144 plus_constant.
4d0e5b54
JG
2145 (aarch64_expand_epilogue): Likewise.
2146 (aarch64_legitimize_reload_address): Likewise.
2147
ca081cc8
EB
21482013-09-22 Eric Botcazou <ebotcazou@adacore.com>
2149
2150 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
2151 NULL_TREE before pushing them onto the vector. Likewise for labels.
2152
8fc53a5f
EB
21532013-09-21 Eric Botcazou <ebotcazou@adacore.com>
2154
2155 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
2156 comparison operators when -fno-trapping-math is in effect.
2157 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
2158 comparison operators in TFmode and assert that unsupported operators
2159 cannot reach here.
2160 (ia64_print_operand): Likewise.
2161
21622013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
2163
2164 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
2165 (sse_typeless_stores): Enable for core
2166 (sse_load0_by_pxor): Likewise.
2167 (four_jump_limit): Disable for core.
2168 (pad_returns): Likewise.
2169 (avoid_vector_decode): Likewise.
2170 (fuse_cmp_and_branch): Enable for cores.
2171 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
2172
578e51e6
JDA
21732013-09-20 John David Anglin <danglin@gcc.gnu.org>
2174
96ce28a3
JDA
2175 PR middle-end/56791
2176 * config/pa/pa.c (pa_option_override): Disable auto increment and
2177 decrement instructions until reload is completed.
2178
578e51e6
JDA
2179 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
2180 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
2181 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
2182
6fcd3a13 21832013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 2184 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
2185
2186 * config/rl78/rl78.c: Various whitespace and comment tweaks.
2187 (need_to_save): Save bank 0 on interrupts.
2188 (characterize_address): Strip far address wrappers.
2189 (rl78_as_legitimate_address): Likewise.
2190 (transcode_memory_rtx): Likewise.
2191 (rl78_peep_movhi_p): Disable this peephole after devirt.
2192 (rl78_propogate_register_origins): Forget all origins when a
2193 CLOBBER is seen.
2194 * config/rl78/rl78-virt.md: Various whitespace tweaks.
2195 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
2196 peephole2's.
2197 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
2198 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
2199 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
2200 relocating.
2201 * config/rl78/constraints.md: Various whitespace and paren tweaks.
2202
4a08db33
JDA
22032013-09-20 John David Anglin <danglin@gcc.gnu.org>
2204
2205 * config/pa/pa.md: In "scc" insn patterns, change output template to
2206 handle const0_rtx in reg_or_0_operand operands.
2207
7691132c
JBG
22082013-09-20 Martin Husemann <martin@NetBSD.org>
2209
2210 PR target/56875
2211 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
2212 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
2213
a3cc13cc
RB
22142013-09-20 Richard Biener <rguenther@suse.de>
2215
2216 PR middle-end/58484
2217 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
2218 remembering SSA name version and block index.
2219 (new_scev_info_str): Adjust.
2220 (hash_scev_info): Likewise. Also hash the block index.
2221 (eq_scev_info): Adjust.
2222 (find_var_scev_info): Likewise.
2223 (struct instantiate_cache_entry): Remove.
2224 (struct instantiate_cache_type): Use a htab to map name, block
2225 to chrec.
2226 (instantiate_cache_type::~instantiate_cache_type): Adjust.
2227 (get_instantiated_value_entry): Likewise.
2228 (hash_idx_scev_info, eq_idx_scev_info): New functions.
2229 (instantiate_scev_name): Adjust.
2230
925f3871
JL
22312013-09-20 Jeff Law <law@redhat.com>
2232
2233 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
2234
2888c331
YZ
22352013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
2236
2237 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2238 Call aarch64_simd_expand_args to update op[argc].
2239
0a811e96
BS
22402013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
2241
7a5911d3
UB
2242 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
2243 plugin argument.
0a811e96 2244
0078f462
BS
22452013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
2246
7a5911d3
UB
2247 * gengtype.c (file_rules): Added rule for *.cc files.
2248 (get_output_file_with_visibility): Give fatal message when no
2249 rules found.
0078f462 2250
d20e48b0
RL
22512013-09-20 Renlin Li <renlin.li@arm.com>
2252
2253 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
2254 (aarch64_expand_epilogue): Likewise.
2255 (aarch64_legitimize_reload_address): Likewise.
2256
59bb1544
BE
22572013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2258
2259 PR middle-end/57748
2260 * expr.c (expand_assignment): Remove misalignp code path.
2261
a5430019
MP
22622013-09-20 Marek Polacek <polacek@redhat.com>
2263
2264 PR sanitizer/58413
2265 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
2266 TYPE_PRECISION. Add asserts.
2267
9fed7f3a
RB
22682013-09-20 Richard Biener <rguenther@suse.de>
2269
2270 PR tree-optimization/58453
2271 * tree-loop-distribution.c (distribute_loop): Apply the cost
2272 model for -ftree-loop-distribute-patterns, too.
2273
a820c834
RB
22742013-09-20 Richard Biener <rguenther@suse.de>
2275
2276 PR middle-end/58473
2277 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
2278 make type comparison less strict.
2279
3cbe17f7
AM
22802013-09-20 Alan Modra <amodra@gmail.com>
2281
2282 * configure: Regenerate.
2283 * aclocal.m4: Regenerate.
2284
87fccdbb
MP
22852013-09-20 Marek Polacek <polacek@redhat.com>
2286
2287 PR other/58467
2288 * doc/extend.texi: Document that attribute used is meant to be used
2289 on variables with static storage duration.
2290
8928eff3
JJ
22912013-09-19 Jakub Jelinek <jakub@redhat.com>
2292
2293 PR tree-optimization/58472
2294 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
2295 simd_lane_access set inv_p = false.
2296 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
2297 the simduid magic VAR_DECL.
2298
b7b28c53
JH
22992013-09-19 Jan Hubicka <jh@suse.cz>
2300
2301 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
2302
83ae86f5
JL
23032013-09-17 Jeff Law <law@redhat.com>
2304
2305 * tree-ssa-dom.c (record_temporary_equivalences): New function
2306 split out of dom_opt_dom_walker::after_dom_children.
2307 (dom_opt_dom_walker::thread_across_edge): Move common code
2308 in here from dom_opt_dom_walker::after_dom_children.
2309 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
2310
9d532162
JH
23112013-09-19 Jan Hubicka <jh@suse.cz>
2312
2313 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
2314 (TARGET_GENERIC): Use PROCESOR_GENERIC
2315 (enum processor_type): Unify generic32 and 64.
2316 * i386.md (cpu): Likewise.
2317 * x86-tune.def (use_leave): Enable for generic32.
2318 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
2319 * athlon.md: Change generic64 to generic in all occurences.
2320 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
2321 (ix86_target_macros_internal): Likewise.
2322 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
2323 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
2324 to ..
9d532162
JH
2325 (generic_memcpy, generic_memset, generic_cost): This one.
2326 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
2327 (m_GENERIC32, m_GENERIC64): Remove.
2328 (m_GENERIC): Turn into one flag.
2329 (processor_target): Unify generic tunnings.
2330 (ix86_option_override_internal): Replace generic32/64 by generic.
2331 (ix86_issue_rate): Likewise.
2332 (ix86_adjust_cost): Likewise.
2333
188c7d00
JH
23342013-09-19 Jan Hubicka <jh@suse.cz>
2335
2336 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
2337 of speculative flag.
2338
4befd127
JJ
23392013-09-19 Jakub Jelinek <jakub@redhat.com>
2340
2341 * omp-low.c (expand_omp_sections): Always pass len - 1 to
2342 GOMP_sections_start, even if !exit_reachable.
2343
8a26ad39
VM
23442013-09-18 Vladimir Makarov <vmakarov@redhat.com>
2345
2346 * lra-constraints.c (need_for_all_save_p): Use macro
2347 HARD_REGNO_CALL_PART_CLOBBERED.
2348 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
2349 set up pseudo conflict hard regs.
2350
09487185
MM
23512013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2352
2353 PR target/58452
2354 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
2355 operands.
2356
080cbf9e
VM
23572013-09-18 Vladimir Makarov <vmakarov@redhat.com>
2358
2359 PR rtl-optimization/58438
2360 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
2361 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
2362 from previous subpasses.
2363
a0f70fcb
RE
23642013-09-18 Richard Earnshaw <rearnsha@arm.com>
2365
2366 * arm.c (arm_get_frame_offsets): Validate architecture supports
2367 LDRD/STRD before accepting the tuning preference.
2368 (arm_expand_prologue): Likewise.
2369 (arm_expand_epilogue): Likewise.
2370
0547c9b6
RB
23712013-09-18 Richard Biener <rguenther@suse.de>
2372
2373 PR tree-optimization/58417
2374 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
2375 have chrecs with symbols defined in the loop as operands.
2376 (chrec_fold_multiply): Likewise.
2377 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
2378 parameters before folding binary operations.
2379 (struct instantiate_cache_entry_hasher): Remove.
2380 (struct instantiate_cache_type): Use a pointer-map.
2381 (instantiate_cache_type::instantiate_cache_type): New function.
2382 (instantiate_cache_type::get): Likewise.
2383 (instantiate_cache_type::set): Likewise.
2384 (instantiate_cache_type::~instantiate_cache_type): Adjust.
2385 (get_instantiated_value_entry): Likewise.
2386 (global_cache): New global.
2387 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
2388 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
2389 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
2390 (instantiate_scev_name): Adjust.
2391 (instantiate_scev): Construct global instead of local cache.
2392 (resolve_mixers): Likewise.
2393
309dc1aa
DM
23942013-09-18 Daniel Morris <danielm@ecoscentric.com>
2395 Paolo Carlini <paolo.carlini@oracle.com>
2396
2397 PR c++/58458
2398 * doc/implement-cxx.texi: Fix references to the C++ standards.
2399
995a1b4a
JJ
24002013-09-18 Jakub Jelinek <jakub@redhat.com>
2401
2402 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
2403 * tree-vect-data-refs.c (vect_analyze_data_refs): For
2404 simd_lane_access drs, update also DR_ALIGNED_TO.
2405
ce6923c5
MP
24062013-09-18 Marek Polacek <polacek@redhat.com>
2407
2408 PR sanitizer/58411
2409 * doc/extend.texi: Document no_sanitize_undefined attribute.
2410 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
2411 no_sanitize_undefined attribute.
2412
d30d00a2
NC
24132013-09-18 Nick Clifton <nickc@redhat.com>
2414
2415 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
2416 (ASM_DECLARE_FUNCTION_NAME): Define.
2417
4d9192b5
TS
24182013-09-17 Trevor Saunders <tsaunders@mozilla.com>
2419
2420 * compare-elim.c (find_comparison_dom_walker): New class
2421 (find_comparisons_in_bb): Rename to
2422 find_comparison_dom_walker::before_dom_children
2423 (find_comparisons): Adjust
2424 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
2425 adjust.
2426 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
2427 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
2428 (init_walk_dominator_tree): Remove declaration.
2429 (fini_walk_dominator_tree): Remove declaration.
2430 * fwprop.c (single_def_use_dom_walker): New class
2431 (single_def_use_enter_block): Convert to
2432 single_def_use_dom_walker::before_dom_children.
2433 (single_def_use_leave_block): Convert to
2434 single_def_use_dom_walker::after_dom_children.
2435 (build_single_def_use_links): Adjust.
2436 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
2437 class.
2438 (find_candidates_in_block): Convert to
2439 find_candidates_dom_walker::before_dom_children.
2440 (execute_strength_reduction): Adjust.
2441 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
2442 (sese_dom_walker): New class.
2443 (sese_dom_walker::sese_dom_walker): New constructor.
2444 (sese_dom_walker::~sese_dom_walker): New destructor.
2445 (build_sese_conditions_before): Convert to
2446 sese_dom_walker::before_dom_children.
2447 (build_sese_conditions_after): Convert to
2448 sese_dom_walker::after_dom_children.
2449 (build_poly_scop): Adjust
2450 * tree-into-ssa.c (rewrite_dom_walker): New class
2451 (rewrite_enter_block): Convert to
2452 rewrite_dom_walker::before_dom_children.
2453 (rewrite_leave_block): Convert to
2454 rewrite_dom_walker::after_dom_children.
2455 (rewrite_update_dom_walker): New class.
2456 (rewrite_update_enter_block): Convert to
2457 rewrite_update_dom_walker::before_dom_children.
2458 (rewrite_update_leave_block): Convert to
2459 rewrite_update_dom_walker::after_dom_children.
2460 (rewrite_blocks, rewrite_into_ssa): Adjust.
2461 (mark_def_dom_walker): New class.
2462 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
2463 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
2464 (mark_def_sites_blocks): Convert to
2465 mark_def_dom_walker::before_dom_children.
2466 (mark_def_site_blocks): Remove.
2467 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
2468 (tree_ssa_dominator_optimize): Adjust.
2469 (dom_thread_across_edge): Convert to method
2470 dom_opt_dom_walker::thread_across_edge.
2471 (dom_opt_enter_block): Convert to member function
2472 dom_opt_dom_walker::before_dom_children.
2473 (dom_opt_leave_block): Convert to member function
2474 dom_opt_dom_walker::after_dom_children.
2475 * tree-ssa-dse.c (dse_dom_walker): New class.
2476 (dse_enter_block): Convert to member function
2477 dse_dom_walker::before_dom_children.
2478 (tree_ssa_dse): Adjust.
2479 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
2480 (determine_invariantness_stmt): Convert to method
2481 invariantness_dom_walker::before_dom_children.
2482 (determine_invariantness): Remove
2483 (move_computations_dom_walker): New class.
2484 (move_computations_stmt): Convert to method
2485 move_computations_dom_walker::before_dom_children.
2486 (move_computations, tree_ssa_lim): Adjust.
2487 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
2488 (nt_init_block): Make method
2489 notrappping_dom_walker::before_dom_children.
2490 (nt_fini_block): Make
2491 method nontrapping_dom_walker::after_dom_children.
2492 (get_non_trapping): Adjust.
2493 * tree-ssa-pre.c (eliminate_dom_walker): New class.
2494 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
2495 (eliminate_leave_block): Make method.
2496 eliminate_dom_walker::after_dom_children.
2497 (eliminate): Adjust
2498 * tree-ssa-strlen.c (strlen_dom_walker): New class.
2499 (strlen_enter_block): Make method
2500 strlen_dom_walker::before_dom_children.
2501 (strlen_leave_block): Make
2502 method strlen_dom_walker::after_dom_children.
2503 (tree_ssa_strlen): Adjust.
2504 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
2505 (tree_ssa_uncprop): Adjust.
2506 (uncprop_leave_block): Make method
2507 uncprop_dom_walker::after_dom_children.
2508 (uncprop_leave_block): Make method
2509 uncprop_dom_walker::before_dom_children.
2510
3b3cc26b
BC
25112013-09-18 Bin Cheng <bin.cheng@arm.com>
2512
7a5911d3
UB
2513 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
2514 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 2515
b5ba3a9b
NC
25162013-09-17 Nick Clifton <nickc@redhat.com>
2517
2518 * config/rl78/rl78-real.md (bf): New pattern.
2519 (bt): New pattern.
2520 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
2521 (rl78_print_operand): Do not put a # before a %B.
2522 * config/rl78/rl78.opt: Tweak doc strings.
2523
09d5094b
DD
25242013-09-17 DJ Delorie <dj@redhat.com>
2525
2526 * config/rl78/constraints.md (Wcv): Allow up to $r31.
2527 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
2528 (rl78_option_override): Likewise, if -mallregs.
2529 (is_virtual_register): Likewise.
2530 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
2531 (REGNO_OK_FOR_BASE_P): Likewise.
2532 * config/rl78/rl78.opt (-mallregs): New.
2533
2ba1dca1
NC
25342013-09-17 Nick Clifton <nickc@redhat.com>
2535
2536 * config/rl78/rl78.c (need_to_save): Change return type to bool.
2537 For interrupt functions: save all call clobbered registers if the
2538 interrupt handler is not a leaf function.
2539 (rl78_expand_prologue): Always recompute the frame information.
2540 For interrupt functions: only select bank 0 if one of the bank 0
2541 registers is going to be psuhed.
2542
2e7c3f21
DD
25432013-09-17 DJ Delorie <dj@redhat.com>
2544
2545 * config/rl78/constraints.md: For each W* constraint, rename to C*
2546 and create a W* constraint that checks for an optional ES: prefix
2547 pattern also.
2548 * config/rl78/rl78.md (UNS_ES_ADDR): New.
2549 (es_addr): New. Used to wrap far addresses.
2550 * config/rl78/rl78-protos.h (rl78_es_addr): New.
2551 (rl78_es_base): New.
2552 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
2553 wrapped far addresses.
2554 (rl78_print_operand_1): Unwrap far addresses before processing.
2555 (rl78_lo16): Wrap far addresses in unspecs.
2556 (rl78_es_addr): New.
2557 (rl78_es_base): New.
2558 (insn_ok_now): Check for not-yet-wrapped far addresses.
2559 (transcode_memory_rtx): Properly re-wrap far addresses.
2560
5c26a69a
SH
25612013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2562
2563 * config/sparc/t-rtems: Add leon3 multilibs.
2564
181f5f3e
CH
25652013-09-17 Cong Hou <congh@google.com>
2566
2567 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
2568 when checking the dot production pattern. The type of rhs operand
2569 of multiply is now checked correctly.
2570
8d34e421
JL
25712013-09-17 Jeff Law <law@redhat.com>
2572
2573 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
2574 edge implied equivalences into successor phis.
2575 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
2576 here from tree-ssa-threadedge.c.
2577 (mark_threaded_blocks): When threading through a joiner, if both
2578 successors of the joiner's clone reach the same block, verify the
2579 PHI arguments are equal. If not, cancel the jump threading request.
2580 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
2581 tree-ssa-threadupdate.c
2582 (thread_across_edge): Don't check PHI argument equality when
2583 threading through joiner block here.
7a5911d3 2584
c152901f
AM
25852013-09-17 Andrew MacLeod <amacleod@redhat.com>
2586
2587 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
2588 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
2589 (warn_uninit, warn_uninitialized_vars,
2590 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
2591 Move to tree-ssa-uninit.c.
78cedfb1 2592 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 2593 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
2594 ssa_undefined_value_p.
2595 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
2596 (warn_uninit, warn_uninitialized_vars,
2597 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
2598 Move from tree-ssa.c.
2599 * tree-ssa.h: Adjust prototypes.
c152901f 2600
b631d45a
JH
26012013-09-17 Jan Hubicka <jh@suse.cz>
2602
2603 PR middle-end/58332
2604 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
2605 * ipa-inline.c (can_inline_edge_p): Do not downgrade
2606 FUNCTION_NOT_OPTIMIZED.
2607 * ipa-inline-analysis.c (compute_inline_parameters): Function
2608 not optimized is not inlinable unless it is alwaysinline.
2609 (inline_analyze_function): Force calls in not optimized
2610 function not inlinable.
2611
5b79657a
JH
26122013-09-17 Jan Hubicka <jh@suse.cz>
2613
2614 PR middle-end/58329
2615 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
2616 to return NULL.
2617 * ipa.c (function_and_variable_visibility): Likewise.
2618 * ipa-profile.c (ipa_profile): Likewise.
2619
27442c24
BE
26202013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
2621
2622 PR ipa/58398
2623 * cgraph.c (cgraph_function_body_availability): Check for ifunc
2624 attribute, and don't inline the resolver in this case.
2625
753b9bc3
TJ
26262013-09-17 Teresa Johnson <tejohnson@google.com>
2627
2628 * coverage.c (get_coverage_counts): Add missing newline.
2629
e3d3cfb4
KT
26302013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2631
2632 PR tree-optimization/58088
2633 * fold-const.c (mask_with_trailing_zeros): New function.
2634 (fold_binary_loc): Make sure we don't recurse infinitely
2635 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
2636 Use mask_with_trailing_zeros where appropriate.
2637
9a0ac98f
YR
26382013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
2639
2640 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
2641 of 'prev' var to get better distance estimation.
2642
78bbd765
EB
26432013-09-17 Eric Botcazou <ebotcazou@adacore.com>
2644
2645 * tree-inline.h (struct copy_body_data): Add transform_parameter.
2646 * tree-inline.c (is_parameter_of): New predicate.
2647 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
2648 a parameter has been remapped.
2649 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
2650 (optimize_inline_calls): Initialize transform_parameter.
2651 (copy_gimple_seq_and_replace_locals): Likewise.
2652 (tree_function_versioning): Likewise.
2653 (maybe_inline_call_in_expr): Likewise.
2654
cad055a4
NC
26552013-09-17 Nick Clifton <nickc@redhat.com>
2656
2657 * config/msp430/msp430-protos.h: Add prototypes for new functions.
2658 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
2659 interrupt handlers.
2660 (is_attr_func): New function.
2661 (msp430_is_interrupt_func): New function.
2662 (is_naked_func): New function.
2663 (is_reentrant_func): New function.
2664 (is_critical_func): New function.
2665 (msp430_start_function): Add annotations for function attributes.
2666 (msp430_attr): New function.
2667 (msp430_attribute_table): New.
2668 (msp430_function_section): New function.
2669 (TARGET_ASM_FUNCTION_SECTION): Define.
2670 (msp430_builtin): New enum.
2671 (msp430_init_builtins): New function.
2672 (msp430_builtin_devl): New function.
2673 (msp430_expand_builtin): New function.
2674 (TARGET_INIT_BUILTINS): Define.
2675 (TARGET_EXPAND_BUILTINS): Define.
2676 (TARGET_BUILTIN_DECL): Define.
2677 (msp430_expand_prologue): Add support for naked, interrupt,
2678 critical and reentrant functions.
2679 (msp430_expand_epilogue): Likewise.
2680 (msp430_print_operand): Handle 'O' character.
2681 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
2682 NO_TRAMPOLINES.
2683 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
2684 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
2685 (pushm): Use a 'n' rather than an 'i' constraint.
2686 (msp_return): Add generation of the interrupt return instruction.
2687 (disable_interrupts): New pattern.
2688 (enable_interrupts): New pattern.
2689 (push_intr_state): New pattern.
2690 (pop_intr_state): New pattern.
2691 (bic_SR): New pattern.
2692 (bis_SR): New pattern.
2693 * doc/extend.texi: Document MSP430 function attributes and builtin
2694 functions.
2695
deb6c11a
RB
26962013-09-17 Richard Biener <rguenther@suse.de>
2697
2698 PR tree-optimization/58432
2699 * tree-loop-distribution.c (tree_loop_distribution): Also
2700 scan PHIs for outside loop uses and seed a partition from them.
2701
c068654b
BC
27022013-09-17 Bin Cheng <bin.cheng@arm.com>
2703
2704 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
2705 (restructure_reference): Call backtrace_base_for_ref.
2706
567969e4
AM
27072013-09-17 Alan Modra <amodra@gmail.com>
2708
2709 PR target/57589
7a5911d3
UB
2710 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
2711 patch.
567969e4 2712
5c0029de
DD
27132013-09-16 DJ Delorie <dj@redhat.com>
2714
2715 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
2716 vregs location for RL78/G10.
2717 (rl78_expand_prologue): Avoid SEL on G10.
2718 (rl78_expand_epilogue): Likewise.
2719 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
2720 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
2721 __RL78_G10__ when appropriate.
2722 (ASM_SPEC): Pass -mg10 along to the assembler.
2723 * config/rl78/rl78.md (sel_rb): Disable for G10.
2724 * config/rl78/rl78.opt: Add -mg10 option.
2725 * config/rl78/t-rl78: Add -mg10 multilib.
2726
ea0f3e87
XDL
27272013-09-16 Xinliang David Li <davidxl@google.com>
2728
2729 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
2730 * omp-low.c (omp_max_vf): Ditto.
2731 (expand_omp_simd): Ditto.
2732 * tree-vectorizer.c (vectorize_loops): Ditto.
2733 (gate_vect_slp): Ditto.
2734 (gate_increase_alignment): Ditto.
2735 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
2736 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
2737 (gate_tree_vectorize): Name change.
2738 (tree_vectorize): Ditto.
2739 (pass_vectorize::gate): Call new function.
2740 (pass_vectorize::execute): Ditto.
7a5911d3 2741 * opts.c: O3 default setting change.
ea0f3e87
XDL
2742 (finish_options): Check new flag.
2743 * doc/invoke.texi: Document new flags.
2744 * common.opt: New flags.
2745
4f3da2e5
AS
27462013-09-16 Andreas Schwab <schwab@linux-m68k.org>
2747
2748 * doc/tm.texi.in (Cond Exec Macros): Remove node.
2749 (Condition Code): Don't reference it.
2750 * doc/tm.texi: Regenerate.
2751
aa940f7c
VM
27522013-09-16 Vladimir Makarov <vmakarov@redhat.com>
2753
2754 PR middle-end/58418
2755 * lra-constraints.c (undo_optional_reloads): Consider all optional
2756 reload even if it did not get a hard reg.
2757
e645e942
TJ
27582013-09-16 Teresa Johnson <tejohnson@google.com>
2759
2760 * dumpfile.c (dump_loc): Remove newline emission.
2761 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
2762 emission to dump_printf_loc calls where missing.
2763 (vect_mark_for_runtime_alias_test): Ditto.
2764 (vect_analyze_data_ref_dependence): Ditto.
2765 (vect_analyze_data_ref_dependences): Ditto.
2766 (vect_slp_analyze_data_ref_dependence): Ditto.
2767 (vect_slp_analyze_data_ref_dependences): Ditto.
2768 (vect_compute_data_ref_alignment): Ditto.
2769 (vect_update_misalignment_for_peel): Ditto.
2770 (vect_verify_datarefs_alignment): Ditto.
2771 (vector_alignment_reachable_p): Ditto.
2772 (vect_get_data_access_cost): Ditto.
2773 (vect_enhance_data_refs_alignment): Ditto.
2774 (vect_find_same_alignment_drs): Ditto.
2775 (vect_analyze_data_refs_alignment): Ditto.
2776 (vect_analyze_group_access): Ditto.
2777 (vect_analyze_data_ref_access): Ditto.
2778 (vect_analyze_data_ref_accesses): Ditto.
2779 (vect_prune_runtime_alias_test_list): Ditto.
2780 (vect_analyze_data_refs): Ditto.
2781 (vect_create_addr_base_for_vector_ref): Ditto.
2782 (vect_create_data_ref_ptr): Ditto.
2783 (vect_grouped_store_supported): Ditto.
2784 (vect_grouped_load_supported): Ditto.
2785 * value-prof.c (check_counter): Ditto.
2786 (check_ic_target): Ditto.
2787 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
2788 (vect_recog_widen_mult_pattern): Ditto.
2789 (vect_recog_widen_sum_pattern): Ditto.
2790 (vect_recog_over_widening_pattern): Ditto.
2791 (vect_recog_widen_shift_pattern): Ditto.
2792 (vect_recog_rotate_pattern): Ditto.
2793 (vect_recog_vector_vector_shift_pattern): Ditto.
2794 (vect_recog_divmod_pattern): Ditto.
2795 (vect_recog_mixed_size_cond_pattern): Ditto.
2796 (vect_recog_bool_pattern): Ditto.
2797 (vect_pattern_recog_1): Ditto.
2798 (vect_pattern_recog): Ditto.
2799 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
2800 (vect_is_simple_iv_evolution): Ditto.
2801 (vect_analyze_scalar_cycles_1): Ditto.
2802 (vect_get_loop_niters): Ditto.
2803 (vect_analyze_loop_1): Ditto.
2804 (vect_analyze_loop_form): Ditto.
2805 (vect_analyze_loop_operations): Ditto.
2806 (vect_analyze_loop_2): Ditto.
2807 (vect_analyze_loop): Ditto.
2808 (report_vect_op): Ditto.
2809 (vect_is_slp_reduction): Ditto.
2810 (vect_is_simple_reduction_1): Ditto.
2811 (vect_get_known_peeling_cost): Ditto.
2812 (vect_estimate_min_profitable_iters): Ditto.
2813 (vect_model_reduction_cost): Ditto.
2814 (vect_model_induction_cost): Ditto.
2815 (get_initial_def_for_induction): Ditto.
2816 (vect_create_epilog_for_reduction): Ditto.
2817 (vectorizable_reduction): Ditto.
2818 (vectorizable_induction): Ditto.
2819 (vectorizable_live_operation): Ditto.
2820 (vect_loop_kill_debug_uses): Ditto.
2821 (vect_transform_loop): Ditto.
2822 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
2823 (vect_stmt_relevant_p): Ditto.
2824 (process_use): Ditto.
2825 (vect_mark_stmts_to_be_vectorized): Ditto.
2826 (vect_model_simple_cost): Ditto.
2827 (vect_model_promotion_demotion_cost): Ditto.
2828 (vect_model_store_cost): Ditto.
2829 (vect_get_store_cost): Ditto.
2830 (vect_model_load_cost): Ditto.
2831 (vect_get_load_cost): Ditto.
2832 (vect_init_vector_1): Ditto.
2833 (vect_get_vec_def_for_operand): Ditto.
2834 (vect_finish_stmt_generation): Ditto.
2835 (vectorizable_call): Ditto.
2836 (vectorizable_conversion): Ditto.
2837 (vectorizable_assignment): Ditto.
2838 (vectorizable_shift): Ditto.
2839 (vectorizable_operation): Ditto.
2840 (vectorizable_store): Ditto.
2841 (vectorizable_load): Ditto.
2842 (vectorizable_condition): Ditto.
2843 (vect_analyze_stmt): Ditto.
2844 (vect_transform_stmt): Ditto.
2845 (vect_is_simple_use): Ditto.
2846 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
2847 (vect_can_advance_ivs_p): Ditto.
2848 (vect_update_ivs_after_vectorizer): Ditto.
2849 (vect_do_peeling_for_loop_bound): Ditto.
2850 (vect_gen_niters_for_prolog_loop): Ditto.
2851 (vect_update_inits_of_drs): Ditto.
2852 (vect_create_cond_for_alias_checks): Ditto.
2853 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
2854 (vect_build_slp_tree_1): Ditto.
2855 (vect_supported_load_permutation_p): Ditto.
2856 (vect_analyze_slp_instance): Ditto.
2857 (vect_analyze_slp): Ditto.
2858 (vect_make_slp_decision): Ditto.
2859 (vect_detect_hybrid_slp): Ditto.
2860 (vect_bb_vectorization_profitable_p): Ditto.
2861 (vect_slp_analyze_bb_1): Ditto.
2862 (vect_update_slp_costs_according_to_vf): Ditto.
2863 (vect_get_mask_element): Ditto.
2864 (vect_transform_slp_perm_load): Ditto.
2865 (vect_schedule_slp_instance): Ditto.
2866 (vect_schedule_slp): Ditto.
2867 (vect_slp_transform_bb): Ditto.
2868 * profile.c (read_profile_edge_counts): Ditto.
2869 (compute_branch_probabilities): Ditto.
2870 * coverage.c (get_coverage_counts): Ditto.
2871
46f851f3
DN
28722013-09-16 Diego Novillo <dnovillo@google.com>
2873
7a5911d3 2874 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 2875
1632a686
JH
28762013-09-16 Jan Hubicka <jh@suse.cz>
2877
2878 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 2879 abstract functions; for static functions check the presence of body.
1632a686 2880
828e70c1
JG
28812013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2882
2883 * config/aarch64/aarch64-simd-builtins.def (fma): New.
2884 * config/aarch64/aarch64-simd.md
2885 (aarch64_mla_elt<mode>): New.
2886 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
2887 (aarch64_mls_elt<mode>): Likewise.
2888 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
2889 (aarch64_fma4_elt<mode>): Likewise.
2890 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
2891 (aarch64_fma4_elt_to_128v2df): Likewise.
2892 (aarch64_fma4_elt_to_64df): Likewise.
2893 (fnma<mode>4): Likewise.
2894 (aarch64_fnma4_elt<mode>): Likewise.
2895 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
2896 (aarch64_fnma4_elt_to_128v2df): Likewise.
2897 (aarch64_fnma4_elt_to_64df): Likewise.
2898 * config/aarch64/iterators.md (VDQSF): New.
2899 * config/aarch64/arm_neon.h
2900 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
2901 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
2902
779aea46
JG
29032013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2904
2905 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
2906 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
2907 (aarch64_mul3_elt_to_128df): Likewise.
2908 (aarch64_mul3_elt_to_64v2df): Likewise.
2909 * config/aarch64/iterators.md (VEL): Also handle DFmode.
2910 (VMUL): New.
2911 (VMUL_CHANGE_NLANES) Likewise.
2912 (h_con): Likewise.
2913 (f): Likewise.
2914 * config/aarch64/arm_neon.h
2915 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
2916
a407a750
JG
29172013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2918
2919 * config/aarch64/arm_neon.h
2920 (vcvtx_high_f32_f64): Fix parameters.
2921
f77e2d2d 29222013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 2923 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 2924
a5bd71fa 2925 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 2926
36875e8f
RB
29272013-09-16 Richard Biener <rguenther@suse.de>
2928
2929 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
2930 (dot_rdg_1): Handle control_dd.
2931 (create_edge_for_control_dependence): New function.
2932 (create_rdg_edges): Add control dependences if asked for.
2933 (build_rdg): Likewise.
2934 (generate_loops_for_partition): If there are not necessary
2935 control stmts remove all their dependencies.
2936 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
2937 (distribute_loop): Pass on control dependences.
2938 (tree_loop_distribution): Compute control dependences and remove
2939 restriction on number of loop nodes.
2940
96e24d49
JJ
29412013-09-16 Jakub Jelinek <jakub@redhat.com>
2942
2943 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
2944 for internal calls.
2945
40dbb05c
RS
29462013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
2947
2948 * cse.c (try_const_anchors): Punt on CC modes.
2949
97191ad0
JBG
29502013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2951
2952 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
2953
403a3fb7
JDA
29542013-09-14 John David Anglin <danglin@gcc.gnu.org>
2955
2956 PR target/58382
2957 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
2958 calls to word_mode.
2959
fb5610fb
IS
29602013-09-14 Iain Sandoe <iain@codesourcery.com>
2961
2962 PR target/48094
2963 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
2964 seen.
2965 (darwin_objc1_section): Likewise.
fb5610fb
IS
2966 (darwin_file_end): Emit Image Info section when required.
2967
afdec9bd
JH
29682013-09-14 Jan Hubicka <jh@suse.cz>
2969
2970 * tree-into-ssa.c (gate_into_ssa): New.
2971 (pass_data_build_ssa): Use it.
2972 * cgraph.h (expand_thunk): Update prototype.
2973 * cgraphunit.c (analyze_function): Expand thunks early.
2974 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
2975 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
2976 set lowered flag; do not add new function.
2977 (assemble_thunks_and_aliases): Update.
2978 * tree-ssa.c (gate_init_datastructures): New gate.
2979 (pass_data_init_datastructures): Use it.
2980
492d1e0a
IS
29812013-09-14 Iain Sandoe <iain@codesourcery.com>
2982
2983 PR target/58269
f77e2d2d 2984 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
2985 xmm register set described in the psABI.
2986
d13c6b70
EG
29872013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
2988
f77e2d2d
JBG
2989 * dwarf2out.c (should_emit_struct_debug): Add check
2990 for type_decl variable is not NULL.
d13c6b70 2991
88b0e79e
JC
29922013-09-13 Jacek Caban <jacek@codeweavers.com>
2993
2994 * config.gcc: Use new winnt-c.c target hooks
2995 * config/t-winnt: New file
2996 * config/winnt-c.c: New file
2997 * doc/tm.texi.in: Document new hook
2998 * doc/tm.texi: Regenerated
2999
19ba6aab
JH
30002013-09-13 Jan Hubicka <jh@suse.cz>
3001
3002 PR middle-end/58094
3003 * ipa-inline.c (check_callers): New function.
3004 (check_caller_edge): Remove.
3005 (want_inline_function_to_all_callers_p): Also permit alises that are
3006 called dirrectly.
3007 (inline_to_all_callers): Terminate the walk when devirtualization
3008 introduce new calls.
3009
a93c18c8
JH
30102013-09-13 Jan Hubicka <jh@suse.cz>
3011
3012 * ipa-inline-analysis.c (struct growth_data): Add node.
3013 (do_estimate_growth_1): Fix detection of recursion.
3014
f3b331d1
JJ
30152013-09-13 Jakub Jelinek <jakub@redhat.com>
3016
3017 PR tree-optimization/58392
3018 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
3019 to avoid shadowing of outer loop variable. If
3020 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
3021 replace_by_duplicate_decl simduid of loops that have it set and
3022 set dest_cfun->has_simduid_loops and/or
3023 dest_cfun->has_force_vect_loops.
3024 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
3025 instead of maybe_lookup_decl.
3026 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
3027 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
3028 call. Copy over force_vect and copy and remap simduid. Set
3029 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
3030 (copy_cfg_body): Remove blocks_to_copy argument. Use
3031 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
3032 caller. Don't set cfun->has_simduid_loops and/or
3033 cfun->has_force_vect_loops here.
3034 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
3035 caller.
3036 (expand_call_inline, tree_function_versioning): Adjust copy_body
3037 callers.
3038
ae6d0907
MJ
30392013-09-13 Martin Jambor <mjambor@suse.cz>
3040
3041 PR bootstrap/58388
3042 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
3043 the assert if the edge was a speculative one.
3044
2fd5894f
RB
30452013-09-13 Richard Biener <rguenther@suse.de>
3046
3047 * tree-data-ref.h (known_dependences_p): Move here ...
3048 * tree-loop-distribution.c (known_dependences_p): ... from here.
3049 (dump_rdg_component, debug_rdg_component): Remove.
3050 (dump_rdg): Adjust.
3051 (generate_loops_for_partition): Use gimple_uid instead of
3052 relying on matching stmt visit order.
3053 (rdg_build_partitions): Take starting stmt vector.
3054 (ldist_gen): Merge into ...
3055 (distribute_loop): ... this function. Do not compute starting
3056 vertices vector.
3057 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
3058
86eb4bd7
KT
30592013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3060
3061 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
3062 Set type attribute correctly. Set predicable_short_it attribute.
3063 (cmpsi_shiftsi): Remove %? from output template.
3064
83a95546
RB
30652013-09-13 Richard Biener <rguenther@suse.de>
3066
3067 * tree-loop-distribution.c (struct rdg_component,
3068 rdg_defs_used_in_other_loops_p, free_rdg_components,
3069 rdg_build_components): Remove.
3070 (stmts_from_loop): Do not record virtual PHIs.
3071 (generate_loops_for_partition): Skip virtual PHIs.
3072 (build_rdg_partition_for_component): Rename to ...
3073 (build_rdg_partition_for_vertex): ... this and adjust.
3074 (rdg_build_partitions): Take a vector of starting vertices
3075 instead of components. Remove unnecessary leftover handling.
3076 (ldist_gen): Do not build components or record other stores.
3077 (distribute_loop): Do not distribute loops containing stmts
3078 with side-effects.
3079
c0ecf7f1
CB
30802013-09-13 Christian Bruel <christian.bruel@st.com>
3081
3082 PR target/58314
3083 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
3084
34f56efc
KT
30852013-09-13 Kai Tietz <ktietz@redhat.com>
3086
740f2bf3
KT
3087 * config.gcc: Separate cases for mingw and cygwin targets,
3088 and add 64-bit cygwin target case.
3089
34f56efc
KT
3090 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
3091 dll-export inline-functions.
3092 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
3093
3094
30952013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
3096
3097 PR middle-end/58387
3098 Revert:
3099 2013-09-06 Jeff Law <law@redhat.com>
3100
3101 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3102 edge implied equivalences into successor phis.
3103
aadb52ad
DD
31042013-09-12 DJ Delorie <dj@redhat.com>
3105
3106 * config/rl78/rl78-virt.md: Change from | to \; for asm line
3107 separators.
3108
90ae7019
BM
31092013-09-12 Brooks Moses <bmoses@google.com>
3110
3111 PR driver/42955
3112 * Makefile.in: Do not install driver binaries in $(target)/bin.
3113
17b2557c
DD
31142013-09-12 DJ Delorie <dj@redhat.com>
3115
c5215a9b
DD
3116 * config/rl78/rl78.opt (mrelax): New.
3117 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
3118 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
3119
17b2557c
DD
3120 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
3121 between SP and FP.
3122 (rl78_expand_epilogue): Likewise.
3123
ecafcf05
VM
31242013-09-12 Vladimir Makarov <vmakarov@redhat.com>
3125
3126 PR middle-end/58335
84f6d9fa 3127 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
3128 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
3129 pointer elimination with using remove_reg_equal_offset_note.
3130
8369f38a
DD
31312013-09-12 DJ Delorie <dj@redhat.com>
3132
f6a83b4a
DD
3133 * config/msp430/: New port.
3134 * config.gcc (msp430): Added.
3135 * doc/invoke.texi: Document MSP430 options.
3136 * doc/install.texi: Document msp430-elf
3137 * doc/md.texi: Document msp430-elf
3138 * doc/contrib.texi: Document msp430-elf
3139
8369f38a
DD
3140 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
3141 PSImode.
3142
a854f856
MJ
31432013-09-12 Martin Jambor <mjambor@suse.cz>
3144
3145 PR ipa/58389
3146 * ipa-prop.c (remove_described_reference): Give up if the edge in the
3147 reference descriptor is NULL.
3148 (ipa_edge_removal_hook): If owning a reference descriptor, set its
3149 edge to NULL.
3150
b12ebd96
AM
31512013-09-12 Andrew MacLeod <amacleod@redhat.com>
3152
3153 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
3154 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
3155 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
3156 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
3157 make_temp_ssa_name): move to tree-ssanames.h
3158 * tree-ssa-alias.h: Move prototype.
3159 * tree-ssa.h: Include tree-ssanames.h.
3160 * tree-ssanames.c (FREE_SSANAMES): Move to here.
3161 * tree-ssanames.h: New. Move items from tree-flow*.h
3162 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
3163
e1fb4ad3
RB
31642013-09-12 Richard Biener <rguenther@suse.de>
3165
3166 PR tree-optimization/58404
3167 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3168 propagate non-invariant addresses into dereferences wrapped
3169 in component references.
3170
154c9188
RB
31712013-09-12 Richard Biener <rguenther@suse.de>
3172
3173 PR tree-optimization/58402
3174 * passes.def: Move pass_late_warn_uninitialized later.
3175
7a300452
AM
31762013-09-12 Andrew MacLeod <amacleod@redhat.com>
3177
3178 * tree-ssa.h: New. Move content from tree-flow.h and
3179 tree-flow-inline.h.
3180 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
3181 Move prototypes belonging to tree-ssa.c.
f77e2d2d 3182 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
3183 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
3184 tree-ssa.h.
3185 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
3186 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
3187 to...
3188 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
3189 * tree.h: Move prototype to tree-ssa.h.
3190 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
3191 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
3192 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
3193 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
3194 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
3195 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
3196 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
3197 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
3198 graphite-blocking.c, graphite-clast-to-gimple.c,
3199 graphite-dependences.c, graphite-interchange.c,
3200 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
3201 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
3202 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
3203 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
3204 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
3205 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
3206 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
3207 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
3208 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3209 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
3210 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
3211 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
3212 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
3213 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
3214 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
3215 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3216 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
3217 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
3218 value-prof.c, var-tracking.c,
3219 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
3220
97463b2b
RB
32212013-09-12 Richard Biener <rguenther@suse.de>
3222
3223 PR tree-optimization/58396
3224 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
3225 (build_rdg): Take a loop-nest parameter, fix memleaks.
3226 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
3227
80ecd89d
YR
32282013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
3229
3230 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
3231 for SLM.
3232
893e85fa
CM
32332013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
3234
3235 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
3236 The FMA instruction names should have a 'v' prefix.
3237
174ec470
RB
32382013-09-12 Richard Biener <rguenther@suse.de>
3239
3240 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
3241 (dot_rdg): Use popen instead of system in optional code.
3242 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
3243 (already_processed_vertex_p): Adjust.
3244 (has_anti_or_output_dependence, predecessor_has_mem_write,
3245 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
3246 rdg_flag_uses): Remove.
3247 (rdg_flag_vertex): Simplify.
3248 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
3249 remove recursion.
3250 (build_rdg_partition_for_component): Process the first vertex
3251 of a component only.
3252 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
3253
38c89763
AM
32542013-09-12 Alan Modra <amodra@gmail.com>
3255
3256 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
3257
3e3d9d17
DD
32582013-09-11 DJ Delorie <dj@redhat.com>
3259 Nick Clifton <nickc@redhat.com>
3260
3261 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
3262 (rl78_stack_based_mem): New.
3263 * config/rl78/constraints.md (Iv08): New.
3264 (Iv16): New.
3265 (Iv24): New.
3266 (Is09): New.
3267 (Is17): New.
3268 (Is25): New.
3269 (ISsi): New.
3270 (IShi): New.
3271 (ISqi): New.
3272 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
3273 (movhi): Likewise.
3274 (movsi): Change from expand to insn-and-split.
3275 (ashrsi3): Clobber AX.
3276 (lshrsi3): New.
3277 (ashlsi3): New.
3278 (cbranchsi4): New.
3279 * config/rl78/rl78.md (CC_REG): Fix.
3280 (addsi3): Allow memory and immediate operands.
3281 (addsi3_internal): Split into...
3282 (addsi3_internal_virt): ...new, and ...
3283 (addsi3_internal_real): ...new.
3284 (subsi): New.
3285 (subsi3_internal_virt): New.
3286 (subsi3_internal_real): New.
3287 (mulsi3): Add memory operand.
3288 (mulsi3_rl78): Likewise.
3289 (mulsi3_g13): Likewise.
3290 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
3291 (cbranchqi4_real): Add more constraint options.
3292 (cbranchhi4_real): Expand pattern.
3293 (cbranchhi4_real_signed): New.
3294 (cbranchhi4_real_inverted): New.
3295 (cbranchsi4_real_lt): New.
3296 (cbranchsi4_real_ge): New.
3297 (cbranchsi4_real_signed): New.
3298 (cbranchsi4_real): New.
3299 (peephole2): New.
893e85fa
CM
3300 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
3301 constant shifts.
3e3d9d17
DD
3302 (lshrsi3_virt): Likewise.
3303 (ashlsi3_virt): Likewise.
3304 (cbranchqi4_virt_signed): New.
3305 (cbranchhi4_virt_signed): New.
3306 (cbranchsi4_virt): New.
3307 * config/rl78/rl78.c: Whitespace fixes throughout.
3308 (move_elim_pass): New.
3309 (pass_data_rl78_move_elim): New.
3310 (pass_rl78_move_elim): New.
3311 (make_pass_rl78_move_elim): New.
3312 (rl78_devirt_info): Run devirt earlier.
3313 (rl78_move_elim_info): New.
3314 (rl78_asm_file_start): Register it.
3315 (rl78_split_movsi): New.
3316 (rl78_as_legitimate_address): Allow virtual base registers when
3317 appropriate.
3318 (rl78_addr_space_convert): Remove spurious debug stuff.
3319 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
3320 (rl78_print_operand): More cases for not printing '#'.
3321 (rl78_expand_compare): Remove most of the logic.
3322 (content_memory): New.
3323 (clear_content_memory): New.
3324 (get_content_index): New.
3325 (get_content_name): New.
3326 (display_content_memory): New.
3327 (update_content): New.
3328 (record_content): New.
3329 (already_contains): New.
3330 (insn_ok_now): Re-recog insns with virtual registers.
3331 (add_postponed_content_update): New.
3332 (process_postponed_content_update): New.
3333 (gen_and_emit_move): New.
893e85fa
CM
3334 (transcode_memory_rtx): Record new location content.
3335 Use gen_and_emit_move.
3e3d9d17
DD
3336 (force_into_acc): New.
3337 (move_to_acc): Use gen_and_emit_move.
3338 (move_from_acc): Likewise.
3339 (move_acc_to_reg): Likewise.
3340 (move_to_x): Likewise.
3341 (move_to_hl): Likewise.
3342 (move_to_de): Likewise.
3343 (rl78_alloc_physical_registers_op1): Record location content.
3344 (has_constraint): New.
3345 (rl78_alloc_physical_registers_op2): Record location content.
3346 Optimize use of HL.
3347 (rl78_alloc_physical_registers_ro1): Likewise.
3348 (rl78_alloc_physical_registers_cmp): Likewise.
3349 (rl78_alloc_physical_registers_umul): Likewise.
3350 (rl78_alloc_address_registers_macax): New.
3351 (rl78_alloc_physical_registers): Initialize and set location
3352 content memory as needed.
3353 (rl78_reorg): Make sure split2 is called.
3354 (rl78_rtx_costs): New.
3355
088845a5
RS
33562013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
3357
3358 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
3359 for (not (neg ...)) and (neg (not ...)) cases.
3360
5c2961cf
RB
33612013-09-11 Richard Biener <rguenther@suse.de>
3362
3363 PR middle-end/58377
3364 * passes.def: Split critical edges before late uninit warning passes.
3365 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
3366
427e6a14
JJ
33672013-09-11 Jakub Jelinek <jakub@redhat.com>
3368
3369 PR tree-optimization/58385
3370 * fold-const.c (build_range_check): If both low and high are NULL,
3371 use omit_one_operand_loc to preserve exp side-effects.
3372
df45c0cc
KT
33732013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3374
3375 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
3376
80ab0b19
RB
33772013-09-11 Richard Biener <rguenther@suse.de>
3378
3379 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
3380 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
3381 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
3382 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
3383 stmts_from_loop, known_dependences_p, build_empty_rdg,
3384 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
3385 * tree-loop-distribution.c: ... here.
3386 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
3387 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
3388 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
3389 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
3390 * tree-loop-distribution.c: ... here.
3391 * tree-loop-distribution.c: Include gimple-pretty-print.h.
3392 (struct partition_s): Add loops member.
3393 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
3394 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
3395 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
3396
85a77221
AI
33972013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
3398 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3399 Sergey Lega <sergey.s.lega@intel.com>
3400 Anna Tikhonova <anna.tikhonova@intel.com>
3401 Ilya Tocar <ilya.tocar@intel.com>
3402 Andrey Turetskiy <andrey.turetskiy@intel.com>
3403 Ilya Verbin <ilya.verbin@intel.com>
3404 Kirill Yukhin <kirill.yukhin@intel.com>
3405 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3406
3407 * config/i386/constraints.md (k): New.
3408 (Yk): Ditto.
3409 * config/i386/i386.c (const regclass_map): Add new mask registers.
3410 (dbx_register_map): Ditto.
3411 (dbx64_register_map): Ditto.
3412 (svr4_dbx_register_map): Ditto.
3413 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
3414 disabled.
3415 (ix86_preferred_reload_class): Disable constants for mask registers.
3416 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
3417 (ix86_hard_regno_mode_ok): Support new mask registers.
3418 (x86_order_regs_for_local_alloc): Ditto.
3419 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
3420 (FIXED_REGISTERS): Add new mask registers.
3421 (CALL_USED_REGISTERS): Ditto.
3422 (REG_ALLOC_ORDER): Ditto.
3423 (VALID_MASK_REG_MODE): New.
3424 (FIRST_MASK_REG): Ditto.
3425 (LAST_MASK_REG): Ditto.
3426 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
3427 (MAYBE_MASK_CLASS_P): New.
3428 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
3429 (REG_CLASS_CONTENTS): Ditto.
3430 (MASK_REGNO_P): New.
3431 (ANY_MASK_REG_P): Ditto.
3432 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
3433 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
3434 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
3435 mask registers.
85a77221
AI
3436 (attribute "type"): Add mskmov, msklog.
3437 (attribute "length_immediate"): Support them.
3438 (attribute "memory"): Ditto.
3439 (attribute "prefix_0f"): Ditto.
3440 (*movhi_internal): Support new mask registers.
3441 (*movqi_internal): Ditto.
3442 (define_split): Split out clobber pattern is a logic
3443 insn on mask registers.
3444 (*k<logic><mode>): New.
3445 (*andhi_1): Extend to support mask regs.
3446 (*andqi_1): Extend to support mask regs.
3447 (kandn<mode>): New.
3448 (define_split): Split and-not to and and not if operands
3449 are not mask regs.
3450 (*<code><mode>_1): Separate HI mode to new pattern...
3451 (*<code>hi_1): This.
3452 (*<code>qi_1): Extend to support mask regs.
3453 (kxnor<mode>): New.
3454 (kortestzhi): Ditto.
3455 (kortestchi): Ditto.
3456 (kunpckhi): Ditto.
3457 (*one_cmpl<mode>2_1): Remove HImode and handle it...
3458 (*one_cmplhi2_1): ...Here, now with mask registers support.
3459 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
3460 (HI/QImode arithmetics splitter): Don't split if mask registers
3461 are used.
85a77221
AI
3462 (HI/QImode not splitter): Ditto.
3463 * config/i386/predicated.md (mask_reg_operand): New.
3464 (general_reg_operand): Ditto.
3465
7e570821
AI
34662013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
3467
3468 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
3469 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
3470
9e1376e9
JL
34712013-09-10 Jeff Law <law@redhat.com>
3472
3473 PR tree-optimization/58380
3474 * tree-ssa-threadupdate.c (thread_block): Recognize another case
3475 of threading through a buried loop header.
3476
3477 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
3478 return value for single successor case.
3479
5bbcb888
JH
34802013-09-10 Jan Hubicka <jh@suse.cz>
3481
3482 * ipa-devirt.c (ipa_devirt): Enable with LTO.
3483
d742ff4b
RE
34842013-09-10 Richard Earnshaw <rearnsha@arm.com>
3485
3486 PR target/58361
3487 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
3488 support conditional execution.
3489 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
3490
b0681c9e
VM
34912013-09-10 Vladimir Makarov <vmakarov@redhat.com>
3492
3493 * lra.c (lra): Clear lra_optional_reload_pseudos before every
3494 constraint pass.
f77e2d2d
JBG
3495 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
3496 Check destination too to check move insn.
b0681c9e 3497 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
3498 changed its allocation and the optional reload was inherited on last
3499 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
3500 (lra_undo_inheritance): Add check that inherited pseudo still in
3501 memory.
3502
c9b1c957
JG
35032013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
3504
3505 * config/aarch64/aarch64.md (generic_sched): New.
3506 * config/aarch64/aarch64-generic.md (load): Make conditional
3507 on generic_sched attribute.
3508 (nonload): Likewise.
3509
82d618d3
JH
35102013-09-10 Jan Hubicka <jh@suse.cz>
3511
3512 * lto-cgraph.c: Include ipa-utils.h.
3513 (compute_ltrans_boundary): Also add possible targets into the boundary.
3514
668b6894
JH
35152013-09-10 Jan Hubicka <jh@suse.cz>
3516
3517 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
3518 VAR_DECL of vtable rather than full expression.
3519
4f90d3e0
JH
35202013-09-10 Jan Hubicka <jh@suse.cz>
3521 Paolo Carlini <paolo.carlini@oracle.com>
3522
3523 * cgraphunit.c (analyze_functions): Save input_location, set it
3524 to UNKNOWN_LOCATION and restore it at the end.
3525
39e87baf
MJ
35262013-09-10 Martin Jambor <mjambor@suse.cz>
3527
3528 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
3529 represented by a thunk.
3530
581aedec
JL
35312013-09-10 Jeff Law <law@redhat.com>
3532
3533 PR tree-optimization/58343
3534 * tree-ssa-threadupdate.c (thread_block): Identify and disable
3535 jump threading requests through loop headers buried in the middle
3536 of a jump threading path.
3537
3538 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
3539 in return value/type.
3540
84cf4ab6
JJ
35412013-09-10 Jakub Jelinek <jakub@redhat.com>
3542
3543 PR rtl-optimization/58365
3544 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
3545 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
3546 it differs.
3547
447dd906
RB
35482013-09-10 Richard Biener <rguenther@suse.de>
3549
3550 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
3551 * tree-data-ref.c (create_rdg_vertices): Collect all data
3552 references, signal failure to the caller, use data-ref API.
893e85fa
CM
3553 (build_rdg): Compute data references only once. Maintain lifetime
3554 of data references and data dependences from within RDG.
447dd906
RB
3555 (free_rdg): Free dependence relations.
3556 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
3557 inventing extra dependences.
3558 (distribute_loop): Update for RDG API changes.
3559
f14a7324
KT
35602013-09-10 Kai Tietz <ktietz@redhat.com>
3561
3562 * doc/invoke.texi (fms-extensions): Document changed
3563 behavior for ms-abi targets.
3564 * config/i386/i386.c (ix86_option_override_internal):
3565 Set default value of option -fms-extension for ms-abi targets.
3566
ff131f26
MZ
35672013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
3568
3569 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
3570
33115a2c
AM
35712013-09-10 Alan Modra <amodra@gmail.com>
3572
3573 PR target/58330
3574 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
3575
b6872a13
AM
35762013-09-10 Alan Modra <amodra@gmail.com>
3577
3578 * config/rs6000/predicates.md (add_cint_operand): New.
3579 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
3580 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
3581 using add_cint_operand.
3582 (largetoc_high_plus_aix): Likewise.
3583
28fd0ba2
JJ
35842013-09-09 Jakub Jelinek <jakub@redhat.com>
3585
3586 PR tree-optimization/58364
3587 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
3588 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
3589 the current range can't be an unconditional true or false.
3590
552d99fe
JG
35912013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
3592
3593 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
3594
f43245d1
UB
35952013-09-09 Uros Bizjak <ubizjak@gmail.com>
3596
3597 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
3598
c9b0866a
PC
35992013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
3600
3601 PR c++/43452
3602 * doc/invoke.texi (-Wdelete-incomplete): Document it.
3603
78d8b9f0
IB
36042013-09-09 Ian Bolton <ian.bolton@arm.com>
3605
3606 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
3607 NO_REGS for immediate that can't be moved directly into FP_REGS.
3608
274b2532
KT
36092013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3610
3611 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
3612 comparison with negated operand.
c9b0866a
PC
3613 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
3614 RTL form.
274b2532 3615
467a3558
RB
36162013-09-09 Richard Biener <rguenther@suse.de>
3617
3618 PR middle-end/58326
3619 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
3620 of a subloop record all its block as affecting loop-closed SSA form.
3621
088c5368
RS
36222013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3623
3624 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
3625 of an rtx/bitpos pair.
3626 (store_fixed_bit_field): Update accordingly.
3627
69db2d57
RS
36282013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3629
3630 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
3631 GEN_INT.
3632 * builtins.c (expand_errno_check): Likewise.
3633 * dwarf2cfi.c (init_return_column_size): Likewise.
3634 * except.c (sjlj_mark_call_sites): Likewise.
3635 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
3636 * lra-constraints.c (emit_inc): Likewise.
3637 * ree.c (combine_set_extension): Likewise.
3638 * regmove.c (fixup_match_2): Likewise.
3639 * reload1.c (inc_for_reload): Likewise.
3640
69a59f0f
RS
36412013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3642
3643 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
3644 (force_to_mode, simplify_shift_const_1, simplify_comparison):
3645 Use gen_int_mode with the mode of the associated simplify_* call.
3646 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
3647 * expmed.c (expand_shift_1): Likewise.
3648 * function.c (instantiate_virtual_regs_in_insn): Likewise.
3649 * loop-iv.c (iv_number_of_iterations): Likewise.
3650 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3651 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3652
2f1cd2eb
RS
36532013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3654
3655 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
3656 of the associated expand_* call.
3657 (asan_emit_stack_protection): Likewise.
3658 * builtins.c (round_trampoline_addr): Likewise.
3659 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
3660 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
3661 (emit_store_flag): Likewise.
3662 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
3663 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
3664 Likewise.
3665 * function.c (instantiate_virtual_regs_in_insn): Likewise.
3666 * ifcvt.c (noce_try_store_flag_constants): Likewise.
3667 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3668 * modulo-sched.c (generate_prolog_epilog): Likewise.
3669 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
3670 (expand_ctz, expand_ffs, expand_unop): Likewise.
3671
4789c0ce
RS
36722013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3673
3674 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
3675 of the associated gen_rtx_* call.
3676 * caller-save.c (init_caller_save): Likewise.
3677 * combine.c (find_split_point, make_extraction): Likewise.
3678 (make_compound_operation): Likewise.
3679 * dwarf2out.c (mem_loc_descriptor): Likewise.
3680 * explow.c (plus_constant, probe_stack_range): Likewise.
3681 * expmed.c (expand_mult_const): Likewise.
3682 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
3683 * reload1.c (init_reload): Likewise.
3684 * valtrack.c (cleanup_auto_inc_dec): Likewise.
3685 * var-tracking.c (adjust_mems): Likewise.
3686 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
3687 rather than gen_rtx_fmt_ee.
3688
a811f7cb
JH
36892013-09-09 Jan Hubicka <jh@suse.cz>
3690
3691 PR middle-end/58294
3692 * value-prof.c (gimple_ic): Copy also abnormal edges.
3693
dcad1dd3
RS
36942013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3695
3696 * asan.c (asan_shadow_cst): Use gen_int_mode.
3697
daf5c770
JH
36982013-09-08 Jan Hubicka <jh@suse.cz>
3699
3700 * ipa-profile.c: Add toplevel comment.
3701 (ipa_propagate_frequency_1): Be more conservative when profile is read.
3702 (contains_hot_call_p): New function.
3703 (ipa_propagate_frequency): Set frequencies based on counts when
3704 profile is read.
3705 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
3706 profile; do not tamper with profile after inlining if it is read.
3707
a12cd2db
JH
37082013-09-08 Jan Hubicka <jh@suse.cz>
3709
3710 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
3711 speculative edges.
3712
856a1588
JH
37132013-09-08 Jan Hubicka <jh@suse.cz>
3714
3715 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
3716 summary generation.
3717
4f4b0b73
JL
37182013-09-08 Jeff Law <law@redhat.com>
3719
3720 PR bootstrap/58340
3721 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
3722 of 'found'.
3723
cc4029ee
AK
37242013-09-08 Andi Kleen <ak@linux.intel.com>
3725
3726 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
3727
7b395ddd
JH
37282013-09-08 Jan Hubicka <jh@suse.cz>
3729
3730 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
3731
c34c46dd
RS
37322013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
3733
3734 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
3735 for non-debug insns.
3736 * lra.c (new_insn_reg): Take the containing insn as a parameter.
3737 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
3738 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
3739 accordingly.
3740
3462aa02
JH
37412013-09-08 Jan Hubicka <jh@suse.cz>
3742
3743 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
3744 targets and devirtualize to BUILT_IN_UNREACHABLE.
3745 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
3746 * ipa.c (walk_polymorphic_call_targets): New function.
3747 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
3748 functions; use the new timevar.
3749 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
3750 was removed from the program.
3751 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
3752 not consider it in the walk when its vtable is dead.
3753 (possible_polymorphic_call_targets_1): Pass anonymous flag to
3754 record_binfo.
3755 (devirt_variable_node_removal_hook): New function.
3756 (possible_polymorphic_call_targets): Also register
3757 devirt_variable_node_removal_hook.
3758 (ipa_devirt): Do not do non-speculative devirtualization.
3759 (gate_ipa_devirt): One execute if devirtualizing speculatively.
3760
26e5b0fd
JH
37612013-09-08 Jan Hubicka <jh@suse.cz>
3762
3763 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
3764 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
3765 varpool_remove_variable_insertion_hook): Declare.
3766 * varpool.c (varpool_node_hook_list): New structure.
3767 (first_varpool_node_removal_hook,
3768 first_varpool_variable_insertion_hook): New variables.
3769 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
3770 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
3771 varpool_remove_variable_insertion_hook,
3772 varpool_call_variable_insertion_hooks): New functions.
3773 (varpool_remove_node): Use it.
3774
97f1f314 37752013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 3776
97f1f314
PC
3777 PR c++/54941
3778 * diagnostic.c (diagnostic_build_prefix): When s.file is
3779 "<built-in>" don't output line and column numbers.
6df2ca09 3780
bcb650cb
JH
37812013-09-06 Jan Hubicka <jh@suse.cz>
3782
3783 * cgraphunit.c (expand_thunk): Get body before touching arguments.
3784 * lto-streamer-out.c: Stream thunks, too.
3785 * lto-streamer-in.c (input_function): Pop cfun here
3786 (lto_read_body): Instead of here.
3787
87f3fea8
CT
37882013-09-06 Caroline Tice <cmtice@google.com>
3789
3790 * doc/install.texi: Add documentation for the --enable-vtable-verify
3791 and the --disable-libvtv configure options.
3792
5e8d9b45
JL
37932013-09-06 Jeff Law <law@redhat.com>
3794
3795 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3796 edge implied equivalences into successor phis.
3797
3a001aff
JR
37982013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
3799
3800 * resource.c (mark_referenced_resources): Handle COND_EXEC.
3801
38022013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
3803
3804 * resource.c (mark_target_live_regs): Compute resources taking
3805 into account if a call is predicated or not.
3806
2c641f8b
EB
38072013-09-06 Eric Botcazou <ebotcazou@adacore.com>
3808
3809 * toplev.c (output_stack_usage): Be prepared for suffixes created by
3810 the compiler in the function names.
3811
a81b0a3d
JH
38122013-09-06 Jan Hubicka <jh@suse.cz>
3813
3814 PR middle-end/58094
3815 * ipa-inline.c (has_caller_p): New function.
3816 (want_inline_function_to_all_callers_p): Use it.
3817 (sum_callers, inline_to_all_callers): Break out from ...
3818 (ipa_inline): ... here.
3819
68e4ca7e
JH
38202013-09-06 Jan Hubicka <jh@suse.cz>
3821
2c641f8b
EB
3822 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
3823 only when AVX is enabled.
68e4ca7e 3824
3c73e2fe
JG
38252013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3826
3827 * config/aarch64/aarch64.md
3828 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
3829 is fpsimd_<load/store>2.
3830 (load_pair<mode>): Likewise.
3831 (store_pair<mode>): Likewise.
3832
8c48eecd
JG
38332013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3834
3835 * config/arm/types.md (type): Add "mrs" type.
3836 * config/aarch64/aarch64.md
3837 (aarch64_load_tp_hard): Make type "mrs".
3838 * config/arm/arm.md
3839 (load_tp_hard): Make type "mrs".
3840 * config/arm/cortex-a15.md: Update with new attributes.
3841 * config/arm/cortex-a5.md: Update with new attributes.
3842 * config/arm/cortex-a53.md: Update with new attributes.
3843 * config/arm/cortex-a7.md: Update with new attributes.
3844 * config/arm/cortex-a8.md: Update with new attributes.
3845 * config/arm/cortex-a9.md: Update with new attributes.
3846 * config/arm/cortex-m4.md: Update with new attributes.
3847 * config/arm/cortex-r4.md: Update with new attributes.
3848 * config/arm/fa526.md: Update with new attributes.
3849 * config/arm/fa606te.md: Update with new attributes.
3850 * config/arm/fa626te.md: Update with new attributes.
3851 * config/arm/fa726te.md: Update with new attributes.
3852
9ea187a5
JG
38532013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3854
3855 * config/aarch64/aarch64.md
3856 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
3857 (*movtf_aarch64): Likewise.
3858 * config/arm/arm.md
3859 (thumb1_movdi_insn): Use "multiple" for type where more than one
3860 instruction is used for a move.
3861 (*arm32_movhf): Likewise.
3862 (*thumb_movdf_insn): Likewise.
3863
292b89b3
JG
38642013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3865
3866 * config/arm/types.md (type): Rename fcpys to fmov.
3867 * config/arm/vfp.md
3868 (*arm_movsi_vfp): Rename type fcpys as fmov.
3869 (*thumb2_movsi_vfp): Likewise
3870 (*movhf_vfp_neon): Likewise
3871 (*movhf_vfp): Likewise
3872 (*movsf_vfp): Likewise
3873 (*thumb2_movsf_vfp): Likewise
3874 (*movsfcc_vfp): Likewise
3875 (*thumb2_movsfcc_vfp): Likewise
3876 * config/aarch64/aarch64-simd.md
3877 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
3878 * config/aarch64/aarch64.md
3879 (*movsi_aarch64): Replace type mov_reg with fmovs.
3880 (*movdi_aarch64): Likewise
3881 (*movsf_aarch64): Likewise
3882 (*movdf_aarch64): Likewise
3883 * config/arm/arm.c
3884 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
3885 * config/arm/iwmmxt.md
3886 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
3887 * config/arm/arm1020e.md: Update with new attributes.
3888 * config/arm/cortex-a15-neon.md: Update with new attributes.
3889 * config/arm/cortex-a5.md: Update with new attributes.
3890 * config/arm/cortex-a53.md: Update with new attributes.
3891 * config/arm/cortex-a7.md: Update with new attributes.
3892 * config/arm/cortex-a8-neon.md: Update with new attributes.
3893 * config/arm/cortex-a9.md: Update with new attributes.
3894 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3895 * config/arm/cortex-r4f.md: Update with new attributes.
3896 * config/arm/marvell-pj4.md: Update with new attributes.
3897 * config/arm/vfp11.md: Update with new attributes.
3898
6a24a83e
JG
38992013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3900
3901 * config/aarch64/aarch64.md
3902 (*madd<mode>): Fix type attribute.
3903 (*maddsi_uxtw): Likewise.
3904 (*msub<mode>): Likewise.
3905 (*msubsi_uxtw): Likewise.
3906 (<su_optab>maddsidi4): Likewise.
3907 (<su_optab>msubsidi4): Likewise.
3908
b86923f0
JG
39092013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3910
3911 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
3912 * config/arm/arm.md (core_cycles): Remove fdiv.
3913 * config/arm/vfp.md:
3914 (*sqrtsf2_vfp): Update for attribute changes.
3915 (*sqrtdf2_vfp): Likewise.
3916 * config/aarch64/aarch64.md:
3917 (sqrt<mode>2): Update for attribute changes.
3918 * config/arm/arm1020e.md: Update with new attributes.
3919 * config/arm/cortex-a15-neon.md: Update with new attributes.
3920 * config/arm/cortex-a5.md: Update with new attributes.
3921 * config/arm/cortex-a53.md: Update with new attributes.
3922 * config/arm/cortex-a7.md: Update with new attributes.
3923 * config/arm/cortex-a8-neon.md: Update with new attributes.
3924 * config/arm/cortex-a9.md: Update with new attributes.
3925 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3926 * config/arm/cortex-r4f.md: Update with new attributes.
3927 * config/arm/marvell-pj4.md: Update with new attributes.
3928 * config/arm/vfp11.md: Update with new attributes.
3929
7b49c9e1
JG
39302013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3931
3932 * config/arm/types.md
3933 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
3934 * config/aarch64/aarch64.md
3935 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
3936 new attributes.
3937 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
3938 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
3939 (float<GPI:mode><GPF:mode>2): Likewise.
3940 * config/arm/vfp.md
3941 (*truncsisf2_vfp): Update with new attributes.
3942 (*truncsidf2_vfp): Likewise.
3943 (fixuns_truncsfsi2): Likewise.
3944 (fixuns_truncdfsi2): Likewise.
3945 (*floatsisf2_vfp): Likewise.
3946 (*floatsidf2_vfp): Likewise.
3947 (floatunssisf2): Likewise.
3948 (floatunssidf2): Likewise.
3949 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
3950 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
3951 * config/arm/arm1020e.md: Update with new attributes.
3952 * config/arm/cortex-a15-neon.md: Update with new attributes.
3953 * config/arm/cortex-a5.md: Update with new attributes.
3954 * config/arm/cortex-a53.md: Update with new attributes.
3955 * config/arm/cortex-a7.md: Update with new attributes.
3956 * config/arm/cortex-a8-neon.md: Update with new attributes.
3957 * config/arm/cortex-a9.md: Update with new attributes.
3958 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3959 * config/arm/cortex-r4f.md: Update with new attributes.
3960 * config/arm/marvell-pj4.md: Update with new attributes.
3961 * config/arm/vfp11.md: Update with new attributes.
3962
e7df8af8
JG
39632013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3964
3965 * config/aarch64/arm_neon.h
3966 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
3967 (vqtbx<1,2,3,4><q>_s8): Likewise.
3968
594726e4
JG
39692013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3970
f43245d1
UB
3971 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
3972 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
3973 (add<mode>3): Add type attribute.
3974 (add<mode>3): Likewise.
3975 (usadd<mode>3): Likewise.
3976 (ssadd<mode>3): Likewise.
3977 (sub<mode>3): Likewise.
3978 (sub<mode>3): Likewise.
3979 (ussub<mode>3): Likewise.
3980 (sssub<mode>3): Likewise.
3981 (ssmulsa3): Likewise.
3982 (usmulusa3): Likewise.
3983 (arm_usatsihi): Likewise.
3984 * config/arm/vfp.md
3985 (*movdi_vfp): Add types for all instructions.
3986 (*movdi_vfp_cortexa8): Likewise.
3987 (*movhf_vfp_neon): Likewise.
3988 (*movhf_vfp): Likewise.
3989 (*movdf_vfp): Likewise.
3990 (*thumb2_movdf_vfp): Likewise.
3991 (*thumb2_movdfcc_vfp): Likewise.
3992 * config/arm/arm.md: Add type attribute to all insn patterns.
3993 (*thumb1_adddi3): Add type attribute.
3994 (*arm_adddi3): Likewise.
3995 (*adddi_sesidi_di): Likewise.
3996 (*adddi_zesidi_di): Likewise.
3997 (*thumb1_addsi3): Likewise.
3998 (addsi3_compare0): Likewise.
3999 (*addsi3_compare0_scratch): Likewise.
4000 (*compare_negsi_si): Likewise.
4001 (cmpsi2_addneg): Likewise.
4002 (*addsi3_carryin_<optab>): Likewise.
4003 (*addsi3_carryin_alt2_<optab>): Likewise.
4004 (*addsi3_carryin_clobercc_<optab>): Likewise.
4005 (*subsi3_carryin): Likewise.
4006 (*subsi3_carryin_const): Likewise.
4007 (*subsi3_carryin_compare): Likewise.
4008 (*subsi3_carryin_compare_const): Likewise.
4009 (*arm_subdi3): Likewise.
4010 (*thumb_subdi3): Likewise.
4011 (*subdi_di_zesidi): Likewise.
4012 (*subdi_di_sesidi): Likewise.
4013 (*subdi_zesidi_di): Likewise.
4014 (*subdi_sesidi_di): Likewise.
4015 (*subdi_zesidi_ze): Likewise.
4016 (thumb1_subsi3_insn): Likewise.
4017 (*arm_subsi3_insn): Likewise.
4018 (*anddi3_insn): Likewise.
4019 (*anddi_zesidi_di): Likewise.
4020 (*anddi_sesdi_di): Likewise.
4021 (*ne_zeroextracts): Likewise.
4022 (*ne_zeroextracts): Likewise.
4023 (*ite_ne_zeroextr): Likewise.
4024 (*ite_ne_zeroextr): Likewise.
4025 (*anddi_notdi_di): Likewise.
4026 (*anddi_notzesidi): Likewise.
4027 (*anddi_notsesidi): Likewise.
4028 (andsi_notsi_si): Likewise.
4029 (thumb1_bicsi3): Likewise.
4030 (*iordi3_insn): Likewise.
4031 (*iordi_zesidi_di): Likewise.
4032 (*iordi_sesidi_di): Likewise.
4033 (*thumb1_iorsi3_insn): Likewise.
4034 (*xordi3_insn): Likewise.
4035 (*xordi_zesidi_di): Likewise.
4036 (*xordi_sesidi_di): Likewise.
4037 (*arm_xorsi3): Likewise.
4038 (*andsi_iorsi3_no): Likewise.
4039 (*smax_0): Likewise.
4040 (*smax_m1): Likewise.
4041 (*arm_smax_insn): Likewise.
4042 (*smin_0): Likewise.
4043 (*arm_smin_insn): Likewise.
4044 (*arm_umaxsi3): Likewise.
4045 (*arm_uminsi3): Likewise.
4046 (*minmax_arithsi): Likewise.
4047 (*minmax_arithsi_): Likewise.
4048 (*satsi_<SAT:code>): Likewise.
4049 (arm_ashldi3_1bit): Likewise.
4050 (arm_ashrdi3_1bit): Likewise.
4051 (arm_lshrdi3_1bit): Likewise.
4052 (*arm_negdi2): Likewise.
4053 (*thumb1_negdi2): Likewise.
4054 (*arm_negsi2): Likewise.
4055 (*thumb1_negsi2): Likewise.
4056 (*negdi_extendsid): Likewise.
4057 (*negdi_zero_extend): Likewise.
4058 (*arm_abssi2): Likewise.
4059 (*thumb1_abssi2): Likewise.
4060 (*arm_neg_abssi2): Likewise.
4061 (*thumb1_neg_abss): Likewise.
4062 (one_cmpldi2): Likewise.
4063 (extend<mode>di2): Likewise.
4064 (*compareqi_eq0): Likewise.
4065 (*arm_extendhisi2addsi): Likewise.
4066 (*arm_movdi): Likewise.
4067 (*thumb1_movdi_insn): Likewise.
4068 (*arm_movt): Likewise.
4069 (*thumb1_movsi_insn): Likewise.
4070 (pic_add_dot_plus_four): Likewise.
4071 (pic_add_dot_plus_eight): Likewise.
4072 (tls_load_dot_plus_eight): Likewise.
4073 (*thumb1_movhi_insn): Likewise.
4074 (*thumb1_movsf_insn): Likewise.
4075 (*movdf_soft_insn): Likewise.
4076 (*thumb_movdf_insn): Likewise.
4077 (cbranchsi4_insn): Likewise.
4078 (cbranchsi4_scratch): Likewise.
4079 (*negated_cbranchsi4): Likewise.
4080 (*tbit_cbranch): Likewise.
4081 (*tlobits_cbranch): Likewise.
4082 (*tstsi3_cbranch): Likewise.
4083 (*cbranchne_decr1): Likewise.
4084 (*addsi3_cbranch): Likewise.
4085 (*addsi3_cbranch_scratch): Likewise.
4086 (*arm_cmpdi_insn): Likewise.
4087 (*arm_cmpdi_unsig): Likewise.
4088 (*arm_cmpdi_zero): Likewise.
4089 (*thumb_cmpdi_zero): Likewise.
4090 (*deleted_compare): Likewise.
4091 (*mov_scc): Likewise.
4092 (*mov_negscc): Likewise.
4093 (*mov_notscc): Likewise.
4094 (*cstoresi_eq0_thumb1_insn): Likewise.
4095 (cstoresi_nltu_thumb1): Likewise.
4096 (cstoresi_ltu_thu): Likewise.
4097 (thumb1_addsi3_addgeu): Likewise.
4098 (*arm_jump): Likewise.
4099 (*thumb_jump): Likewise.
4100 (*check_arch2): Likewise.
4101 (arm_casesi_internal): Likewise.
4102 (thumb1_casesi_dispatch): Likewise.
4103 (*arm_indirect_jump): Likewise.
4104 (*thumb1_indirect_jump): Likewise.
4105 (nop): Likewise.
4106 (*and_scc): Likewise.
4107 (*ior_scc): Likewise.
4108 (*compare_scc): Likewise.
4109 (*cond_move): Likewise.
4110 (*cond_arith): Likewise.
4111 (*cond_sub): Likewise.
4112 (*cmp_ite0): Likewise.
4113 (*cmp_ite1): Likewise.
4114 (*cmp_and): Likewise.
4115 (*cmp_ior): Likewise.
4116 (*ior_scc_scc): Likewise.
4117 (*ior_scc_scc_cmp): Likewise.
4118 (*and_scc_scc): Likewise.
4119 (*and_scc_scc_cmp): Likewise.
4120 (*and_scc_scc_nod): Likewise.
4121 (*negscc): Likewise.
4122 (movcond_addsi): Likewise.
4123 (movcond): Likewise.
4124 (*ifcompare_plus_move): Likewise.
4125 (*if_plus_move): Likewise.
4126 (*ifcompare_move_plus): Likewise.
4127 (*if_move_plus): Likewise.
4128 (*ifcompare_arith_arith): Likewise.
4129 (*if_arith_arith): Likewise.
4130 (*ifcompare_arith_move): Likewise.
4131 (*if_arith_move): Likewise.
4132 (*ifcompare_move_arith): Likewise.
4133 (*if_move_arith): Likewise.
4134 (*ifcompare_move_not): Likewise.
4135 (*if_move_not): Likewise.
4136 (*ifcompare_not_move): Likewise.
4137 (*if_not_move): Likewise.
4138 (*ifcompare_shift_move): Likewise.
4139 (*if_shift_move): Likewise.
4140 (*ifcompare_move_shift): Likewise.
4141 (*if_move_shift): Likewise.
4142 (*ifcompare_shift_shift): Likewise.
4143 (*ifcompare_not_arith): Likewise.
4144 (*ifcompare_arith_not): Likewise.
4145 (*if_arith_not): Likewise.
4146 (*ifcompare_neg_move): Likewise.
4147 (*if_neg_move): Likewise.
4148 (*ifcompare_move_neg): Likewise.
4149 (*if_move_neg): Likewise.
4150 (prologue_thumb1_interwork): Likewise.
4151 (*cond_move_not): Likewise.
4152 (*sign_extract_onebit): Likewise.
4153 (*not_signextract_onebit): Likewise.
4154 (stack_tie): Likewise.
4155 (align_4): Likewise.
4156 (align_8): Likewise.
4157 (consttable_end): Likewise.
4158 (consttable_1): Likewise.
4159 (consttable_2): Likewise.
4160 (consttable_4): Likewise.
4161 (consttable_8): Likewise.
4162 (consttable_16): Likewise.
4163 (*thumb1_tablejump): Likewise.
4164 (prefetch): Likewise.
4165 (force_register_use): Likewise.
4166 (thumb_eh_return): Likewise.
4167 (load_tp_hard): Likewise.
4168 (load_tp_soft): Likewise.
4169 (tlscall): Likewise.
4170 (*arm_movtas_ze): Likewise.
4171 (*arm_rev): Likewise.
4172 (*arm_revsh): Likewise.
4173 (*arm_rev16): Likewise.
4174 * config/arm/thumb2.md
4175 (*thumb2_smaxsi3): Likewise.
4176 (*thumb2_sminsi3): Likewise.
4177 (*thumb32_umaxsi3): Likewise.
4178 (*thumb2_uminsi3): Likewise.
4179 (*thumb2_negdi2): Likewise.
4180 (*thumb2_abssi2): Likewise.
4181 (*thumb2_neg_abss): Likewise.
4182 (*thumb2_movsi_insn): Likewise.
4183 (tls_load_dot_plus_four): Likewise.
4184 (*thumb2_movhi_insn): Likewise.
4185 (*thumb2_mov_scc): Likewise.
4186 (*thumb2_mov_negs): Likewise.
4187 (*thumb2_mov_negs): Likewise.
4188 (*thumb2_mov_nots): Likewise.
4189 (*thumb2_mov_nots): Likewise.
4190 (*thumb2_movsicc_): Likewise.
4191 (*thumb2_movsfcc_soft_insn): Likewise.
4192 (*thumb2_indirect_jump): Likewise.
4193 (*thumb2_and_scc): Likewise.
4194 (*thumb2_ior_scc): Likewise.
4195 (*thumb2_ior_scc_strict_it): Likewise.
4196 (*thumb2_cond_move): Likewise.
4197 (*thumb2_cond_arith): Likewise.
4198 (*thumb2_cond_ari): Likewise.
4199 (*thumb2_cond_sub): Likewise.
4200 (*thumb2_negscc): Likewise.
4201 (*thumb2_movcond): Likewise.
4202 (thumb2_casesi_internal): Likewise.
4203 (thumb2_casesi_internal_pic): Likewise.
4204 (*thumb2_alusi3_short): Likewise.
4205 (*thumb2_mov<mode>_shortim): Likewise.
4206 (*thumb2_addsi_short): Likewise.
4207 (*thumb2_subsi_short): Likewise.
4208 (thumb2_addsi3_compare0): Likewise.
4209 (*thumb2_cbz): Likewise.
4210 (*thumb2_cbnz): Likewise.
4211 (*thumb2_one_cmplsi2_short): Likewise.
4212 (*thumb2_negsi2_short): Likewise.
4213 (*orsi_notsi_si): Likewise.
4214 * config/arm/arm1020e.md: Update with new attributes.
4215 * config/arm/arm1026ejs.md: Update with new attributes.
4216 * config/arm/arm1136jfs.md: Update with new attributes.
4217 * config/arm/arm926ejs.md: Update with new attributes.
4218 * config/arm/cortex-a15.md: Update with new attributes.
4219 * config/arm/cortex-a5.md: Update with new attributes.
4220 * config/arm/cortex-a53.md: Update with new attributes.
4221 * config/arm/cortex-a7.md: Update with new attributes.
4222 * config/arm/cortex-a8.md: Update with new attributes.
4223 * config/arm/cortex-a9.md: Update with new attributes.
4224 * config/arm/cortex-m4.md: Update with new attributes.
4225 * config/arm/cortex-r4.md: Update with new attributes.
4226 * config/arm/fa526.md: Update with new attributes.
4227 * config/arm/fa606te.md: Update with new attributes.
4228 * config/arm/fa626te.md: Update with new attributes.
4229 * config/arm/fa726te.md: Update with new attributes.
4230
1c83b673
JG
42312013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4232
4233 * config/aarch64/aarch64-simd.md
4234 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
4235 <vwx> iterator to ensure correct register choice.
4236 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
4237 (aarch64_sqdmull_n<mode>): Likewise.
4238 (aarch64_sqdmull2_n<mode>_internal): Likewise.
4239 * config/aarch64/arm_neon.h
4240 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
4241 (vml<as><q>_n_<su>16): Likewise.
4242 (vml<as>l_high_lane<q>_<su>16): Likewise.
4243 (vml<as>l_high_n_<su>16): Likewise.
4244 (vml<as>l_lane<q>_<su>16): Likewise.
4245 (vml<as>l_n_<su>16): Likewise.
4246 (vmul<q>_lane<q>_<su>16): Likewise.
4247 (vmul<q>_n_<su>16): Likewise.
4248 (vmull_lane<q>_<su>16): Likewise.
4249 (vmull_n_<su>16): Likewise.
4250 (vmull_high_lane<q>_<su>16): Likewise.
4251 (vmull_high_n_<su>16): Likewise.
4252 (vqrdmulh<q>_n_s16): Likewise.
4253
bb1ae543
TB
42542013-09-06 Tejas Belagod <tejas.belagod@arm.com>
4255
4256 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
4257 have the correct lane parameter.
4258
f23c0742
RB
42592013-09-06 Richard Biener <rguenther@suse.de>
4260
4261 * cfganal.c (control_dependences::~control_dependences):
4262 Properly free all of the vector.
4263
c1d49770
KY
42642013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
4265
4266 PR target/58269
4267 * config/i386/i386.c (ix86_conditional_register_usage):
4268 Proper initialize extended SSE registers.
4269
6da47f52
JH
42702013-09-06 Jan Hubicka <jh@suse.cz>
4271
4272 PR tree-optimization/58311
4273 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
4274
42752013-09-06 Jan Hubicka <jh@suse.cz>
4276
4277 * Makefile.in (tree-sra.o): Update dependencies.
4278 * tree-sra.c: Include ipa-utils.h
4279 (scan_function): Use recursive_call_p.
4280 (has_caller_p): New function.
4281 (cgraph_for_node_and_aliases): Count also callers of aliases.
4282
fc11f321
JH
42832013-09-06 Jan Hubicka <jh@suse.cz>
4284
4285 PR middle-end/58094
4286 * cgraph.h (symtab_semantically_equivalent_p): Declare.
4287 * tree-tailcall.c: Include ipa-utils.h.
4288 (find_tail_calls): Use it.
4289 * ipa-pure-const.c (check_call): Likewise.
4290 * ipa-utils.c (recursive_call_p): New function.
4291 * ipa-utils.h (recursive_call_p): Dclare.
4292 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
4293 (symtab_semantically_equivalent_p): New function.
4294 * Makefile.in (tree-tailcall.o): Update dependencies.
4295
9a6af450
EB
42962013-09-06 Eric Botcazou <ebotcazou@adacore.com>
4297
4298 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
4299 non-inlinable part.
4300
35f32ad4
RB
43012013-09-06 Richard Biener <rguenther@suse.de>
4302
4303 * lto-streamer.h (lto_global_var_decls): Remove.
4304 * Makefile.in (OBJS): Remove lto-symtab.o.
4305 (lto-symtab.o): Remove.
4306 (GTFILES): Remove lto-symtab.c
4307 * lto-symtab.c: Move to lto/
4308
d12a76f3
AK
43092013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4310
4311 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
4312 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
4313 (UNSPEC_FPINT_RINT): New constant definitions.
4314 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
4315 definition with 2 attributes.
4316 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
4317 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
4318 definitions.
4319
43202013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4321
f43245d1 4322 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
4323 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
4324 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
4325 attribute to "z196_alone".
4326 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
4327 "zEC12_simple".
4328
c8e9d8c3
RB
43292013-09-06 Richard Biener <rguenther@suse.de>
4330
4331 * basic-block.h (class control_dependences): New.
4332 * tree-ssa-dce.c (control_dependence_map): Remove.
4333 (cd): New global.
4334 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
4335 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
4336 find_pdom, find_control_dependence, find_all_control_dependences):
4337 Move to cfganal.c.
f43245d1
UB
4338 (mark_control_dependent_edges_necessary,
4339 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
4340 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
4341 * cfganal.c (set_control_dependence_map_bit,
4342 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
4343 find_all_control_dependences): Move from tree-ssa-dce.c and
4344 implement as methods of control_dependences class.
4345 (control_dependences::control_dependences): New.
4346 (control_dependences::~control_dependences): Likewise.
4347 (control_dependences::get_edges_dependent_on): Likewise.
4348 (control_dependences::get_edge): Likewise.
4349
7d2ba471
JH
43502013-09-04 Jan Hubicka <jh@suse.cz>
4351
4352 * tree.c (types_same_for_odr): Drop overactive check.
4353 * ipa-devirt.c (hash_type_name): Likewise.
4354
e18412fc
JH
43552013-09-04 Jan Hubicka <jh@suse.cz>
4356
4357 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
4358 (analyze_functions): ... here.
4359
d352b245
JH
43602013-09-04 Jan Hubicka <jh@suse.cz>
4361
4362 PR middle-end/58201
4363 * cgraphunit.c (analyze_functions): Clear AUX fields
4364 after processing; initialize assembler name has.
4365
770da076
JL
43662013-09-05 Jeff Law <law@redhat.com>
4367
4368 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
4369 from thread_around_empty_block. Record threading path into PATH.
4370 Recurse if threading through the initial block is successful.
4371 (thread_across_edge): Corresponding changes to slightly simplify.
4372
fe6f68e2
JG
43732013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
4374
4375 * config/aarch64/aarch64.md
4376 (type): Remove frecpe, frecps, frecpx.
4377 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
4378 fix to be a TARGET_SIMD instruction.
4379 (aarch64_frecps): Remove.
4380 * config/aarch64/aarch64-simd.md
4381 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
4382 (aarch64_frecps<mode>): Handle all float/vector of float modes.
4383
6e4150e1
JG
43842013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
4385 Sofiane Naci <sofiane.naci@arm.com>
4386
f43245d1 4387 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 4388 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
4389 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
4390 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
4391 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
4392 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
4393 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
4394 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
4395 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 4396 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 4397 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
4398 shift* types.
4399 * config/arm/arm-fixed.md: Update for attribute changes
4400 all occurrences of arlo_* types.
4401 * config/arm/thumb2.md: Update for attribute changes all occurrences
4402 of arlo_* types.
4403 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
4404 (cortexa7_older_only): Likewise.
4405 (cortexa7_younger): Likewise.
4406 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
4407 (1020alu_shift_op): Likewise.
4408 (1020alu_shift_reg_op): Likewise.
4409 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
4410 (alu_shift_op): Likewise.
4411 (alu_shift_reg_op): Likewise.
f43245d1 4412 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
4413 (11_alu_shift_op): Likewise.
4414 (11_alu_shift_reg_op): Likewise.
4415 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
4416 (9_alu_shift_reg_op): Likewise.
4417 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
4418 attribute changes.
4419 (cortex_a15_alu_shift): Likewise.
4420 (cortex_a15_alu_shift_reg): Likewise.
4421 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
4422 attribute changes.
4423 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
4424 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
4425 attribute changes.
6e4150e1 4426 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
4427 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
4428 attribute changes.
6e4150e1
JG
4429 (cortex_a7_alu_reg): Likewise.
4430 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
4431 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
4432 attribute changes.
6e4150e1
JG
4433 (cortex_a8_alu_shift): Likewise.
4434 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 4435 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 4436 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
4437 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
4438 attribute changes.
6e4150e1
JG
4439 * config/arm/cortex-r4.md
4440 (cortex_r4_alu): Update for attribute changes.
4441 (cortex_r4_mov): Likewise.
4442 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 4443 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 4444 (526_alu_shift_op): Likewise.
f43245d1
UB
4445 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
4446 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 4447 (626te_alu_shift_op): Likewise.
f43245d1 4448 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
4449 (726te_alu_shift_op): Likewise.
4450 (726te_alu_shift_reg_op): Likewise.
4451 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
4452 (mp626_alu_shift_op): Likewise.
4453 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
4454 (pj4_alu_conds): Likewise.
4455 (pj4_shift): Likewise.
4456 (pj4_shift_conds): Likewise.
4457 (pj4_alu_shift): Likewise.
4458 (pj4_alu_shift_conds): Likewise.
4459 * config/aarch64/aarch64.md: Update for attribute change
4460 all occurrences of arlo_* and shift* types.
4461
e6523306
MS
44622013-09-05 Mike Stump <mikestump@comcast.net>
4463
4464 * tree.h: Move documentation for tree_function_decl to tree-core.h
4465 with the declaration.
4466
80a18161
PB
44672013-09-05 Peter Bergner <bergner@vnet.ibm.com>
4468
4469 PR target/58139
4470 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
4471 looking for widest mode.
4472
6994430a
EB
44732013-09-05 Eric Botcazou <ebotcazou@adacore.com>
4474
4475 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
4476
e67f39f7
RB
44772013-09-05 Richard Biener <rguenther@suse.de>
4478
4479 PR tree-optimization/58137
4480 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4481 Do not create vectors of pointers.
4482 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
4483 types for the components of the vector initializer.
4484 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
4485 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
4486
568cda29
MJ
44872013-09-05 Martin Jambor <mjambor@suse.cz>
4488
4489 * ipa-prop.c (remove_described_reference): Accept missing references,
4490 return false if that hppens, otherwise return true.
4491 (cgraph_node_for_jfunc): New function.
4492 (try_decrement_rdesc_refcount): Likewise.
4493 (try_make_edge_direct_simple_call): Use them.
4494 (ipa_edge_removal_hook): Remove references from rdescs.
4495 (ipa_edge_duplication_hook): Clone rdescs and their references
4496 when the new edge has the same caller as the old one.
4497 * cgraph.c (cgraph_resolve_speculation): Remove speculative
4498 reference before removing any edges.
4499
5a200acb
RE
45002013-09-05 Richard Earnshaw <rearnsha@arm.com>
4501
4502 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
4503 initial store.
4504 * thumb2.md (thumb2_storewb_parisi): New pattern.
4505
5922847b
YZ
45062013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
4507
4508 * config/aarch64/aarch64-option-extensions.def: Add
4509 AARCH64_OPT_EXTENSION of 'crc'.
4510 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
4511 (AARCH64_ISA_CRC): Ditto.
4512 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
4513 description of the CRC extension.
4514
996746aa
AI
45152013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
4516
4517 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
4518 * config/rs6000/linux.h: Ditto.
4519 * alpha/linux.h: Ditto.
4520 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
4521 no_c99_libc_has_function.
4522 * config/c6x/uclinux-elf.h: Ditto.
4523 * config/lm32/uclinux-elf.h: Ditto.
4524 * config/m68k/uclinux.h: Ditto.
4525 * config/moxie/uclinux.h: Ditto.
4526 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
4527 (crisv32-*-linux*, cris-*-linux*): Ditto.
4528 * config/bfin/bfin.c: Include "tm_p.h".
4529
c370d99f
RB
45302013-09-05 Richard Biener <rguenther@suse.de>
4531
4532 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
4533 check for a definition without a basic-block.
4534
003bb7f3
JG
45352013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
4536 Sofiane Naci <sofiane.naci@arm.com>
4537
4538 * config/aarch64/aarch64.md
4539 (*movti_aarch64): Rename r_2_f and f_2_r.
4540 (*movsf_aarch64): Likewise.
4541 (*movdf_aarch64): Likewise.
4542 (*movtf_aarch64): Likewise.
4543 (aarch64_movdi_<mode>low): Likewise.
4544 (aarch64_movdi_<mode>high): Likewise.
4545 (aarch64_mov<mode>high_di): Likewise.
4546 (aarch64_mov<mode>low_di): Likewise.
4547 (aarch64_movtilow_tilow): Likewise.
4548 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
4549 values to config/arm/types.md
4550 (attribute "conds"): Update for attribute change.
4551 (anddi3_insn): Likewise.
4552 (iordi3_insn): Likewise.
4553 (xordi3_insn): Likewise.
4554 (one_cmpldi2): Likewise.
4555 * config/arm/types.md (type): Add Neon types.
4556 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
4557 use "type" attribute.
4558 (movmisalign<mode>_neon_store): Likewise.
4559 (movmisalign<mode>_neon_load): Likewise.
4560 (vec_set<mode>_internal): Likewise.
4561 (vec_setv2di_internal): Likewise.
4562 (vec_extract<mode>): Likewise.
4563 (vec_extractv2di): Likewise.
4564 (add<mode>3_neon): Likewise.
4565 (adddi3_neon): Likewise.
4566 (sub<mode>3_neon): Likewise.
4567 (subdi3_neon): Likewise.
4568 (mul<mode>3_neon): Likewise.
4569 (mul<mode>3add<mode>_neon): Likewise.
4570 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
4571 (fma<VCVTF:mode>4)): Likewise.
4572 (fma<VCVTF:mode>4_intrinsic): Likewise.
4573 (fmsub<VCVTF:mode>4)): Likewise.
4574 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
4575 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
4576 (ior<mode>3): Likewise.
4577 (and<mode>3): Likewise.
4578 (anddi3_neon): Likewise.
4579 (orn<mode>3_neon): Likewise.
4580 (orndi3_neon): Likewise.
4581 (bic<mode>3_neon): Likewise.
4582 (bicdi3_neon): Likewise.
4583 (xor<mode>3): Likewise.
4584 (one_cmpl<mode>2): Likewise.
4585 (abs<mode>2): Likewise.
4586 (neg<mode>2): Likewise.
4587 (umin<mode>3_neon): Likewise.
4588 (umax<mode>3_neon): Likewise.
4589 (smin<mode>3_neon): Likewise.
4590 (smax<mode>3_neon): Likewise.
4591 (vashl<mode>3): Likewise.
4592 (vashr<mode>3_imm): Likewise.
4593 (vlshr<mode>3_imm): Likewise.
4594 (ashl<mode>3_signed): Likewise.
4595 (ashl<mode>3_unsigned): Likewise.
4596 (neon_load_count): Likewise.
4597 (ashldi3_neon_noclobber): Likewise.
4598 (signed_shift_di3_neon): Likewise.
4599 (unsigned_shift_di3_neon): Likewise.
4600 (ashrdi3_neon_imm_noclobber): Likewise.
4601 (lshrdi3_neon_imm_noclobber): Likewise.
4602 (widen_ssum<mode>3): Likewise.
4603 (widen_usum<mode>3): Likewise.
4604 (quad_halves_<code>v4si): Likewise.
4605 (quad_halves_<code>v4sf): Likewise.
4606 (quad_halves_<code>v8hi): Likewise.
4607 (quad_halves_<code>v16qi): Likewise.
4608 (reduc_splus_v2di): Likewise.
4609 (neon_vpadd_internal<mode>): Likewise.
4610 (neon_vpsmin<mode>): Likewise.
4611 (neon_vpsmax<mode>): Likewise.
4612 (neon_vpumin<mode>): Likewise.
4613 (neon_vpumax<mode>): Likewise.
4614 (ss_add<mode>_neon): Likewise.
4615 (us_add<mode>_neon): Likewise.
4616 (ss_sub<mode>_neon): Likewise.
4617 (us_sub<mode>_neon): Likewise.
4618 (neon_vadd<mode>_unspec): Likewise.
4619 (neon_vaddl<mode>): Likewise.
4620 (neon_vaddw<mode>): Likewise.
4621 (neon_vhadd<mode>): Likewise.
4622 (neon_vqadd<mode>): Likewise.
4623 (neon_vaddhn<mode>): Likewise.
4624 (neon_vmul<mode>): Likewise.
4625 (neon_vmla<mode>): Likewise.
4626 (neon_vmlal<mode>): Likewise.
4627 (neon_vmls<mode>): Likewise.
4628 (neon_vmlsl<mode>): Likewise.
4629 (neon_vqdmulh<mode>): Likewise.
4630 (neon_vqdmlal<mode>): Likewise.
4631 (neon_vqdmlsl<mode>): Likewise.
4632 (neon_vmull<mode>): Likewise.
4633 (neon_vqdmull<mode>): Likewise.
4634 (neon_vsub<mode>_unspec): Likewise.
4635 (neon_vsubl<mode>): Likewise.
4636 (neon_vsubw<mode>): Likewise.
4637 (neon_vqsub<mode>): Likewise.
4638 (neon_vhsub<mode>): Likewise.
4639 (neon_vsubhn<mode>): Likewise.
4640 (neon_vceq<mode>): Likewise.
4641 (neon_vcge<mode>): Likewise.
4642 (neon_vcgeu<mode>): Likewise.
4643 (neon_vcgt<mode>): Likewise.
4644 (neon_vcgtu<mode>): Likewise.
4645 (neon_vcle<mode>): Likewise.
4646 (neon_vclt<mode>): Likewise.
4647 (neon_vcage<mode>): Likewise.
4648 (neon_vcagt<mode>): Likewise.
4649 (neon_vtst<mode>): Likewise.
4650 (neon_vabd<mode>): Likewise.
4651 (neon_vabdl<mode>): Likewise.
4652 (neon_vaba<mode>): Likewise.
4653 (neon_vabal<mode>): Likewise.
4654 (neon_vmax<mode>): Likewise.
4655 (neon_vmin<mode>): Likewise.
4656 (neon_vpaddl<mode>): Likewise.
4657 (neon_vpadal<mode>): Likewise.
4658 (neon_vpmax<mode>): Likewise.
4659 (neon_vpmin<mode>): Likewise.
4660 (neon_vrecps<mode>): Likewise.
4661 (neon_vrsqrts<mode>): Likewise.
4662 (neon_vqabs<mode>): Likewise.
4663 (neon_vqneg<mode>): Likewise.
4664 (neon_vcls<mode>): Likewise.
4665 (clz<mode>2): Likewise.
4666 (popcount<mode>2): Likewise.
4667 (neon_vrecpe): Likewise.
4668 (neon_vrsqrte): Likewise.
4669 (neon_vget_lane<mode>_sext_internal): Likewise.
4670 (neon_vget_lane<mode>_zext_internal): Likewise.
4671 (neon_vdup_n<mode>): Likewise.
4672 (neon_vdup_nv2di): Likewise.
4673 (neon_vdpu_lane<mode>_internal): Likewise.
4674 (neon_vswp<mode>): Likewise.
4675 (float<mode><V_cvtto>2): Likewise.
4676 (floatuns<mode><V_cvtto>2): Likewise.
4677 (fix_trunc<mode><V_cvtto>)2): Likewise
4678 (fixuns_trunc<mode><V_cvtto)2): Likewise.
4679 (neon_vcvt<mode>): Likewise.
4680 (neon_vcvtv4sfv4hf): Likewise.
4681 (neon_vcvtv4hfv4sf): Likewise.
4682 (neon_vcvt_n<mode>): Likewise.
4683 (neon_vmovn<mode>): Likewise.
4684 (neon_vqmovn<mode>): Likewise.
4685 (neon_vqmovun<mode>): Likewise.
4686 (neon_vmovl<mode>): Likewise.
4687 (neon_vmul_lane<mode>): Likewise.
4688 (neon_vmull_lane<mode>): Likewise.
4689 (neon_vqdmull_lane<mode>): Likewise.
4690 (neon_vqdmulh_lane<mode>): Likewise.
4691 (neon_vmla_lane<mode>): Likewise.
4692 (neon_vmlal_lane<mode>): Likewise.
4693 (neon_vqdmlal_lane<mode>): Likewise.
4694 (neon_vmls_lane<mode>): Likewise.
4695 (neon_vmlsl_lane<mode>): Likewise.
4696 (neon_vqdmlsl_lane<mode>): Likewise.
4697 (neon_vext<mode>): Likewise.
4698 (neon_vrev64<mode>): Likewise.
4699 (neon_vrev32<mode>): Likewise.
4700 (neon_vrev16<mode>): Likewise.
4701 (neon_vbsl<mode>_internal): Likewise.
4702 (neon_vshl<mode>): Likewise.
4703 (neon_vqshl<mode>): Likewise.
4704 (neon_vshr_n<mode>): Likewise.
4705 (neon_vshrn_n<mode>): Likewise.
4706 (neon_vqshrn_n<mode>): Likewise.
4707 (neon_vqshrun_n<mode>): Likewise.
4708 (neon_vshl_n<mode>): Likewise.
4709 (neon_vqshl_n<mode>): Likewise.
4710 (neon_vqshlu_n<mode>): Likewise.
4711 (neon_vshll_n<mode>): Likewise.
4712 (neon_vsra_n<mode>): Likewise.
4713 (neon_vsri_n<mode>): Likewise.
4714 (neon_vsli_n<mode>): Likewise.
4715 (neon_vtbl1v8qi): Likewise.
4716 (neon_vtbl2v8qi): Likewise.
4717 (neon_vtbl3v8qi): Likewise.
4718 (neon_vtbl4v8qi): Likewise.
4719 (neon_vtbx1v8qi): Likewise.
4720 (neon_vtbx2v8qi): Likewise.
4721 (neon_vtbx3v8qi): Likewise.
4722 (neon_vtbx4v8qi): Likewise.
4723 (neon_vtrn<mode>_internal): Likewise.
4724 (neon_vzip<mode>_internal): Likewise.
4725 (neon_vuzp<mode>_internal): Likewise.
4726 (neon_vld1<mode>): Likewise.
4727 (neon_vld1_lane<mode>): Likewise.
4728 (neon_vld1_dup<mode>): Likewise.
4729 (neon_vld1_dupv2di): Likewise.
4730 (neon_vst1<mode>): Likewise.
4731 (neon_vst1_lane<mode>): Likewise.
4732 (neon_vld2<mode>): Likewise.
4733 (neon_vld2_lane<mode>): Likewise.
4734 (neon_vld2_dup<mode>): Likewise.
4735 (neon_vst2<mode>): Likewise.
4736 (neon_vst2_lane<mode>): Likewise.
4737 (neon_vld3<mode>): Likewise.
4738 (neon_vld3qa<mode>): Likewise.
4739 (neon_vld3qb<mode>): Likewise.
4740 (neon_vld3_lane<mode>): Likewise.
4741 (neon_vld3_dup<mode>): Likewise.
4742 (neon_vst3<mode>): Likewise.
4743 (neon_vst3qa<mode>): Likewise.
4744 (neon_vst3qb<mode>): Likewise.
4745 (neon_vst3_lane<mode>): Likewise.
4746 (neon_vld4<mode>): Likewise.
4747 (neon_vld4qa<mode>): Likewise.
4748 (neon_vld4qb<mode>): Likewise.
4749 (neon_vld4_lane<mode>): Likewise.
4750 (neon_vld4_dup<mode>): Likewise.
4751 (neon_vst4<mode>): Likewise.
4752 (neon_vst4qa<mode>): Likewise.
4753 (neon_vst4qb<mode>): Likewise.
4754 (neon_vst4_lane<mode>): Likewise.
4755 (neon_vec_unpack<US>_lo_<mode>): Likewise.
4756 (neon_vec_unpack<US>_hi_<mode>): Likewise.
4757 (neon_vec_<US>mult_lo_<mode>): Likewise.
4758 (neon_vec_<US>mult_hi_<mode>): Likewise.
4759 (neon_vec_<US>shiftl_<mode>): Likewise.
4760 (neon_unpack<US>_<mode>): Likewise.
4761 (neon_vec_<US>mult_<mode>): Likewise.
4762 (vec_pack_trunc_<mode>): Likewise.
4763 (neon_vec_pack_trunk_<mode>): Likewise.
4764 (neon_vabd<mode>_2): Likewise.
4765 (neon_vabd<mode>_3): Likewise.
4766 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
4767 (thumb2_movsi_vfp): Likewise.
4768 (movdi_vfp): Likewise.
4769 (movdi_vfp_cortexa8): Likewise.
4770 (movhf_vfp_neon): Likewise.
4771 (movhf_vfp): Likewiwse.
4772 (movsf_vfp): Likewiwse.
4773 (thumb2_movsf_vfp): Likewiwse.
4774 (movdf_vfp): Likewise.
4775 (thumb2_movdf_vfp): Likewise.
4776 (movsfcc_vfp): Likewise.
4777 (thumb2_movsfcc_vfp): Likewise.
4778 (movdfcc_vfp): Likewise.
4779 (thumb2_movdfcc_vfp): Likewise.
4780 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
4781 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
4782 (v10_v2c): Likewise.
4783 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
4784 attribute change.
4785 (cortex_a15_neon_int_2): Likewise.
4786 (cortex_a15_neon_int_3): Likewise.
4787 (cortex_a15_neon_int_4): Likewise.
4788 (cortex_a15_neon_int_5): Likewise.
4789 (cortex_a15_neon_vqneg_vqabs): Likewise.
4790 (cortex_a15_neon_vmov): Likewise.
4791 (cortex_a15_neon_vaba): Likewise.
4792 (cortex_a15_neon_vaba_qqq): Likewise.
4793 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4794 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
4795 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
4796 scalar_64_32_long_scalar): Likewise.
4797 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4798 (cortex_a15_neon_mla_qqq_8_16): Likewise.
4799 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4800 lotype_qdd_64_32_long): Likewise.
4801 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4802 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4803 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
4804 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4805 (cortex_a15_neon_shift_1): Likewise.
4806 (cortex_a15_neon_shift_2): Likewise.
4807 (cortex_a15_neon_shift_3): Likewise.
4808 (cortex_a15_neon_vshl_ddd): Likewise.
4809 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4810 (cortex_a15_neon_vsra_vrsra): Likewise.
4811 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
4812 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
4813 (cortex_a15_neon_fp_vmul_ddd): Likewise.
4814 (cortex_a15_neon_fp_vmul_qqd): Likewise.
4815 (cortex_a15_neon_fp_vmla_ddd): Likewise.
4816 (cortex_a15_neon_fp_vmla_qqq): Likewise.
4817 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
4818 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
4819 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
4820 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
4821 (cortex_a15_neon_bp_simple): Likewise.
4822 (cortex_a15_neon_bp_2cycle): Likewise.
4823 (cortex_a15_neon_bp_3cycle): Likewise.
4824 (cortex_a15_neon_vld1_1_2_regs): Likewise.
4825 (cortex_a15_neon_vld1_3_4_regs): Likewise.
4826 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
4827 (cortex_a15_neon_vld2_4_regs): Likewise.
4828 (cortex_a15_neon_vld3_vld4): Likewise.
4829 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
4830 (cortex_a15_neon_vst1_3_4_regs): Likewise.
4831 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
4832 (cortex_a15_neon_vst3_vst4): Likewise.
4833 (cortex_a15_neon_vld1_vld2_lane): Likewise.
4834 (cortex_a15_neon_vld3_vld4_lane" 10
4835 (cortex_a15_neon_vst1_vst2_lane): Likewise.
4836 (cortex_a15_neon_vst3_vst4_lane): Likewise.
4837 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
4838 (cortex_a15_neon_ldm_2): Likewise.0
4839 (cortex_a15_neon_stm_2): Likewise.
4840 (cortex_a15_neon_mcr): Likewise.
4841 (cortex_a15_neon_mcr_2_mcrr): Likewise.
4842 (cortex_a15_neon_mrc): Likewise.
4843 (cortex_a15_neon_mrrc): Likewise.
4844 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
4845 change.
4846 (cortex_a15_alu_shift): Likewise.
4847 (cortex_a15_alu_shift_reg): Likewise.
4848 (cortex_a15_mult32): Likewise.
4849 (cortex_a15_mult64): Likewise.
4850 (cortex_a15_block): Likewise.
4851 (cortex_a15_branch): Likewise.
4852 (cortex_a15_load1): Likewise.
4853 (cortex_a15_load3): Likewise.
4854 (cortex_a15_store1): Likewise.
4855 (cortex_a15_store3): Likewise.
4856 (cortex_a15_call): Likewise.
f43245d1 4857 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
4858 (cortex_a5_f2r): Likewise.
4859 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
4860 change.
4861 (cortex_a53_f2r): Likewise.
4862 * config/arm/cortex-a7.md
4863 (cortex_a7_branch): Update for attribute change.
4864 (cortex_a7_call): Likewise.
4865 (cortex_a7_alu_imm): Likewise.
4866 (cortex_a7_alu_reg): Likewise.
4867 (cortex_a7_alu_shift): Likewise.
4868 (cortex_a7_mul): Likewise.
4869 (cortex_a7_load1): Likewise.
4870 (cortex_a7_store1): Likewise.
4871 (cortex_a7_load2): Likewise.
4872 (cortex_a7_store2): Likewise.
4873 (cortex_a7_load3): Likewise.
4874 (cortex_a7_store3): Likewise.
4875 (cortex_a7_load4): Likewise.
4876 (cortex_a7_store4): Likewise.
4877 (cortex_a7_fpalu): Likewise.
4878 (cortex_a7_fconst): Likewise.
4879 (cortex_a7_fpmuls): Likewise.
4880 (cortex_a7_neon_mul): Likewise.
4881 (cortex_a7_fpmacs): Likewise.
4882 (cortex_a7_neon_mla: Likewise.
4883 (cortex_a7_fpmuld: Likewise.
4884 (cortex_a7_fpmacd: Likewise.
4885 (cortex_a7_fpfmad: Likewise.
4886 (cortex_a7_fdivs: Likewise.
4887 (cortex_a7_fdivd: Likewise.
4888 (cortex_a7_r2f: Likewise.
4889 (cortex_a7_f2r: Likewise.
4890 (cortex_a7_f_flags: Likewise.
4891 (cortex_a7_f_loads: Likewise.
4892 (cortex_a7_f_loadd: Likewise.
4893 (cortex_a7_f_stores: Likewise.
4894 (cortex_a7_f_stored: Likewise.
4895 (cortex_a7_neon): Likewise.
4896 * config/arm/cortex-a8-neon.md
4897 (cortex_a8_neon_mrc): Update for attribute change.
4898 (cortex_a8_neon_mrrc): Likewise.
4899 (cortex_a8_neon_int_1): Likewise.
4900 (cortex_a8_neon_int_2): Likewise.
4901 (cortex_a8_neon_int_3): Likewise.
4902 (cortex_a8_neon_int_4): Likewise.
4903 (cortex_a8_neon_int_5): Likewise.
4904 (cortex_a8_neon_vqneg_vqabs): Likewise.
4905 (cortex_a8_neon_vmov): Likewise.
4906 (cortex_a8_neon_vaba): Likewise.
4907 (cortex_a8_neon_vaba_qqq): Likewise.
4908 (cortex_a8_neon_vsma): Likewise.
4909 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4910 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
4911 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
4912 long_scalar): Likewise.
003bb7f3
JG
4913 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4914 (cortex_a8_neon_mla_qqq_8_16): Likewise.
4915 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4916 long_scalar_qdd_64_32_long): Likewise.
4917 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4918 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4919 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
4920 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4921 (cortex_a8_neon_shift_1): Likewise.
4922 (cortex_a8_neon_shift_2): Likewise.
4923 (cortex_a8_neon_shift_3): Likewise.
4924 (cortex_a8_neon_vshl_ddd): Likewise.
4925 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4926 (cortex_a8_neon_vsra_vrsra): Likewise.
4927 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
4928 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
4929 (cortex_a8_neon_fp_vsum): Likewise.
4930 (cortex_a8_neon_fp_vmul_ddd): Likewise.
4931 (cortex_a8_neon_fp_vmul_qqd): Likewise.
4932 (cortex_a8_neon_fp_vmla_ddd): Likewise.
4933 (cortex_a8_neon_fp_vmla_qqq): Likewise.
4934 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
4935 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
4936 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
4937 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
4938 (cortex_a8_neon_bp_simple): Likewise.
4939 (cortex_a8_neon_bp_2cycle): Likewise.
4940 (cortex_a8_neon_bp_3cycle): Likewise.
4941 (cortex_a8_neon_ldr): Likewise.
4942 (cortex_a8_neon_str): Likewise.
4943 (cortex_a8_neon_vld1_1_2_regs): Likewise.
4944 (cortex_a8_neon_vld1_3_4_regs): Likewise.
4945 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
4946 (cortex_a8_neon_vld2_4_regs): Likewise.
4947 (cortex_a8_neon_vld3_vld4): Likewise.
4948 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
4949 (cortex_a8_neon_vst1_3_4_regs): Likewise.
4950 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
4951 (cortex_a8_neon_vst3_vst4): Likewise.
4952 (cortex_a8_neon_vld1_vld2_lane): Likewise.
4953 (cortex_a8_neon_vld3_vld4_lane): Likewise.
4954 (cortex_a8_neon_vst1_vst2_lane): Likewise.
4955 (cortex_a8_neon_vst3_vst4_lane): Likewise.
4956 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
4957 (cortex_a8_neon_mcr): Likewise.
4958 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 4959 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
4960 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
4961 change.
4962 (ca9_neon_mrrc): Likewise.
4963 (cortex_a9_neon_int_1): Likewise.
4964 (cortex_a9_neon_int_2): Likewise.
4965 (cortex_a9_neon_int_3): Likewise.
4966 (cortex_a9_neon_int_4): Likewise.
4967 (cortex_a9_neon_int_5): Likewise.
4968 (cortex_a9_neon_vqneg_vqabs): Likewise.
4969 (cortex_a9_neon_vmov): Likewise.
4970 (cortex_a9_neon_vaba): Likewise.
4971 (cortex_a9_neon_vaba_qqq): Likewise.
4972 (cortex_a9_neon_vsma): Likewise.
4973 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4974 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
4975 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
4976 long_scalar): Likewise.
003bb7f3
JG
4977 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4978 (cortex_a9_neon_mla_qqq_8_16): Likewise.
4979 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4980 long_scalar_qdd_64_32_long): Likewise.
4981 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4982 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4983 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
4984 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4985 (cortex_a9_neon_shift_1): Likewise.
4986 (cortex_a9_neon_shift_2): Likewise.
4987 (cortex_a9_neon_shift_3): Likewise.
4988 (cortex_a9_neon_vshl_ddd): Likewise.
4989 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4990 (cortex_a9_neon_vsra_vrsra): Likewise.
4991 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
4992 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
4993 (cortex_a9_neon_fp_vsum): Likewise.
4994 (cortex_a9_neon_fp_vmul_ddd): Likewise.
4995 (cortex_a9_neon_fp_vmul_qqd): Likewise.
4996 (cortex_a9_neon_fp_vmla_ddd): Likewise.
4997 (cortex_a9_neon_fp_vmla_qqq): Likewise.
4998 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
4999 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
5000 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5001 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5002 (cortex_a9_neon_bp_simple): Likewise.
5003 (cortex_a9_neon_bp_2cycle): Likewise.
5004 (cortex_a9_neon_bp_3cycle): Likewise.
5005 (cortex_a9_neon_ldr): Likewise.
5006 (cortex_a9_neon_str): Likewise.
5007 (cortex_a9_neon_vld1_1_2_regs): Likewise.
5008 (cortex_a9_neon_vld1_3_4_regs): Likewise.
5009 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5010 (cortex_a9_neon_vld2_4_regs): Likewise.
5011 (cortex_a9_neon_vld3_vld4): Likewise.
5012 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5013 (cortex_a9_neon_vst1_3_4_regs): Likewise.
5014 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
5015 (cortex_a9_neon_vst3_vst4): Likewise.
5016 (cortex_a9_neon_vld1_vld2_lane): Likewise.
5017 (cortex_a9_neon_vld3_vld4_lane): Likewise.
5018 (cortex_a9_neon_vst1_vst2_lane): Likewise.
5019 (cortex_a9_neon_vst3_vst4_lane): Likewise.
5020 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
5021 (cortex_a9_neon_mcr): Likewise.
5022 (cortex_a9_neon_mcr_2_mcrr): Likewise.
5023 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
5024 (cortex_a9_fps): Likewise.
5025 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
5026 change.
5027 (cortex_m4_fmuls): Likewise.
5028 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
5029 change.
5030 (cortex_r4_mrc): Likewise.
5031 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 5032 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 5033 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
5034 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
5035 attribute change.
003bb7f3
JG
5036 (pj4_core_to_vfp): Likewise.
5037 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
5038 attribute change.
5039 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
5040 (vfp_fstore): Likewise.
5041 * doc/md.texi: Change references to neon_type to refer to type.
5042
fbe0dc78
DS
50432013-09-04 Dodji Seketeli <dodji@redhat.com>
5044
5045 * tree.h (DECL_BUILT_IN): Fix typo in comment.
5046
c167bc5b
DE
50472013-09-04 David Edelsohn <dje.gcc@gmail.com>
5048
5049 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
5050 lglobl if not weak.
5051
035cb59f
ER
50522013-09-04 Easwaran Raman <eraman@google.com>
5053
5054 PR middle-end/57370
5055 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
5056 (build_and_add_sum): Use it.
5057 (appears_later_in_bb): Simplify code.
5058
71191083
TJ
50592013-09-04 Teresa Johnson <tejohnson@google.com>
5060
5061 * dumpfile.c (dump_finish): Don't close stderr/stdout.
5062
0c488213
JG
50632013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
5064
5065 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
5066
61a74079
JH
50672013-09-04 Jan Hubicka <jh@suse.cz>
5068
5069 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
5070 * ipa-devirt.c: Include diganostic.h
5071 (odr_type_d): Add types and types_set.
5072 (hash_type_name): Work for types with vtables during LTO.
5073 (odr_hasher::remove): Fix comment; destroy types_set.
5074 (add_type_duplicate): New function,
5075 (get_odr_type): Use it.
5076 (dump_type_inheritance_graph): Dump type duplicates.
5077 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
5078 graph.
5079 * tree.c (types_same_for_odr): Give exact answers on types with
5080 virtual tables.
5081
24ba8195
DS
50822013-09-04 Dodji Seketeli <dodji@redhat.com>
5083
5084 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 5085 explaining their differences.
24ba8195 5086
0a04869e
SKS
50872013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
5088
5089 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
5090
3b18bc42
JL
50912013-09-03 Jeff Law <law@redhat.com>
5092
5093 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
5094 when not threading through a joiner block. Pass joiner/no joiner
5095 state to register_jump_thread.
5096 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
5097 state from argument rather than implying on path length.
5098 Dump the entire jump thread path into debugging dump.
5099 * tree-flow.h (register_jump_thread): Update prototype.
5100
ae84e151
XDL
51012013-08-29 Xinliang David Li <davidxl@google.com>
5102
5103 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5104 Remove a trivial gcc_assert.
5105
c716e67f
XDL
51062013-08-29 Xinliang David Li <davidxl@google.com>
5107
5108 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
5109 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
5110 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5111 Delay base decl alignment adjustment.
5112 * tree-vectorizer.c (vect_destroy_datarefs): New function.
5113 * tree-vectorizer.h: New data structure.
5114 (set_dr_misalignment): New function.
5115 (dr_misalignment): Ditto.
5116 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
5117 (vectorizable_load): Ditto.
5118 (ensure_base_align): New function.
5119 (vectorize_loops): Add dbg_cnt support.
5120 (execute_vect_slp): Ditto.
5121 * dbgcnt.def: New debug counter.
5122 * Makefile: New dependency.
5123
db8800bc
MI
51242013-09-03 Meador Inge <meadori@codesourcery.com>
5125
5126 Revert:
5127
5128 2013-08-30 Meador Inge <meadori@codesourcery.com>
5129
5130 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
5131
0d9b4f5c
DE
51322013-09-03 David Edelsohn <dje.gcc@gmail.com>
5133
5134 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
5135 function descriptor.
5136
29e810b9
RB
51372013-09-03 Richard Biener <rguenther@suse.de>
5138
5139 * tree-affine.c (add_elt_to_tree): Fix association issue,
5140 avoid useless converts and make sure to always return a
5141 properly typed result.
5142
dbfc2894
RB
51432013-09-03 Richard Biener <rguenther@suse.de>
5144
5145 PR middle-end/57656
5146 * fold-const.c (negate_expr_p): Fix division case.
5147 (negate_expr): Likewise.
5148
fa3bf4ce
RB
51492013-09-03 Richard Biener <rguenther@suse.de>
5150
5151 PR lto/58285
5152 * tree-streamer-out.c: Include tm.h.
5153 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
5154
a64bbb3f
JH
51552013-09-03 Jan Hubicka <jh@suse.cz>
5156
5157 * tree-profile.c (tree_profiling): Cleanup CFG when done.
5158
93ed07e2
AM
51592013-09-03 Alan Modra <amodra@gmail.com>
5160
5161 * config.gcc (powerpc*-*-linux*): Add support for little-endian
5162 multilibs to big-endian target and vice versa.
5163 * config/rs6000/t-linux64: Use := assignment on all vars.
5164 (MULTILIB_EXTRA_OPTS): Remove fPIC.
5165 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
5166 * config/rs6000/t-linux64le: New file.
5167 * config/rs6000/t-linux64bele: New file.
5168 * config/rs6000/t-linux64lebe: New file.
5169
07d6cd64
JH
51702013-09-02 Jan Hubicka <jh@suse.cz>
5171
5172 * ipa-inline-transform.c (inline_transform): Do not
5173 optimize_inline_calls when not optimizing.
5174
8e4c9a10
JH
51752013-09-02 Jan Hubicka <jh@suse.cz>
5176
5177 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
5178 duplicated nodes for assembler names.
5179 * symtab.c (symtab_unregister_node): Do not attempt to unlink
5180 hard registers from assembler name hash.
5181
c91061e6
JH
51822013-09-02 Jan Hubicka <jh@suse.cz>
5183
5184 * ipa-split.c (execute_split_functions): Split externally visible
5185 functions called once.
5186
2fd0985c
MJ
51872013-09-02 Martin Jambor <mjambor@suse.cz>
5188
5189 PR ipa/58106
5190 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
5191 linked list. When finding the correct duplicate, also consider also
5192 the caller in additon to its inlined_to node.
5193
91bd4114
JG
51942013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
5195
5196 * config/aarch64/aarch64-simd-builtins.def
5197 (dup_lane_scalar): Remove.
5198 * config/aarch64/aarch64-simd.md
5199 (aarch64_simd_dup): Add 'w->w' alternative.
5200 (aarch64_dup_lane<mode>): Allow for VALL.
5201 (aarch64_dup_lane_scalar<mode>): Remove.
5202 (aarch64_dup_lane_<vswap_width_name><mode>): New.
5203 (aarch64_get_lane_signed<mode>): Add w->w altenative.
5204 (aarch64_get_lane_unsigned<mode>): Likewise.
5205 (aarch64_get_lane<mode>): Likewise.
5206 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
5207 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
5208 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
5209 (VCON): Change container of V2SF.
5210 (vswap_width_name): Likewise.
5211 * config/aarch64/arm_neon.h
5212 (__aarch64_vdup_lane_any): New.
5213 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
5214 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
5215 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
5216
d617d2d8
EB
52172013-09-02 Eric Botcazou <ebotcazou@adacore.com>
5218
5219 PR middle-end/56382
5220 * expr.c (emit_move_complex): Do not move complex FP values as parts if
5221 the source or the destination is a single hard register.
5222
63fdb7be
RB
52232013-09-02 Richard Biener <rguenther@suse.de>
5224
5225 PR middle-end/57511
5226 * tree-scalar-evolution.c (instantiate_scev_name): Allow
5227 non-linear SCEVs.
5228
78de2333
RB
52292013-09-02 Richard Biener <rguenther@suse.de>
5230
5231 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
5232 arithmetic to sizetype.
5233
85ff4ec6
BC
52342013-09-02 Bin Cheng <bin.cheng@arm.com>
5235
5236 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
5237 Find auto-increment use both before and after candidate.
5238
576016fe
MP
52392013-09-02 Marek Polacek <polacek@redhat.com>
5240
5241 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
5242
08f835dc
JH
52432013-09-01 Jan Hubicka <jh@suse.cz>
5244
5245 * Makefile.in: Add ipa-profile.o
5246 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
5247 * cgraph.c (struct cgraph_propagate_frequency_data,
5248 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
5249 ipa-profile.c; replace cgraph_ by ipa_ prefix.
5250 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
5251 * ipa-inline-analysis.c: Include ipa-utils.h;
5252 drop duplicated cfgloop.h.
08f835dc
JH
5253 (inline_update_callee_summaries): Update.
5254 * ipa-profile.c: New file.
5255 * ipa-utils.h (ipa_propagate_frequency): Declare.
5256 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 5257 data-streamer.h, value-prof.h.
08f835dc
JH
5258 (symtab_remove_unreachable_nodes): Update profile.
5259 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
5260 account_time_size, cmp_counts, dump_histogram,
5261 ipa_profile_generate_summary, ipa_profile_write_summary,
5262 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
5263 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 5264 Move to ipa-profile.c.
08f835dc 5265
cec8583c
JDA
52662013-09-01 John David Anglin <danglin@gcc.gnu.org>
5267
5268 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
5269
bbc9396b
JH
52702013-09-01 Jan Hubicka <jh@suse.cz>
5271
5272 * common.opt (fdevirtualize-speculatively): New function.
5273 * invoke.texi (fdevirtualize-speculatively): Document.
5274 * ipa-devirt.c: Include ipa-inline.h
5275 (likely_target_p): New function.
5276 (ipa_devirt): New function.
5277 (gate_ipa_devirt): New function.
5278 (pass_data_ipa_devirt): New static var.
5279 (pass_ipa_devirt): Likewise.
5280 (make_pass_ipa_devirt): New function.
5281 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
5282 (common_handle_option): Disable devirtualization when
5283 value range profiling is available.
5284 * passes.def (pass_ipa_devirt): Add.
5285 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 5286 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 5287
0cea211e
IS
52882013-09-01 Iain Sandoe <iain@codesourcery.com>
5289
5290 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
5291 include sanitize(undefined).
5292
5e351e96
DN
52932013-08-31 Diego Novillo <dnovillo@google.com>
5294
5295 * Makefile.in (TREE_CORE_H): Define.
5296 (TREE_H): Use.
5297 (GTFILES): Add tree-core.h.
5298 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
5299 size the array.
5300 * tree-core.h: New file.
5301 Move all data structures, enum, typedefs, global
5302 declarations and constants from ...
5303 * tree.h: ... here.
5304
63bf9a90
JH
53052013-08-31 Jan Hubicka <jh@suse.cz>
5306
5307 * bulitins.c (expand_builtin): Do not early exit for gcov
5308 instrumented functions.
5309
5c0abd6a
MP
53102013-08-31 Marek Polacek <polacek@redhat.com>
5311
5312 * ubsan.c: Include tm_p.h.
5313
4843f032
JH
53142013-08-31 Jan Hubicka <jh@suse.cz>
5315
8356c89c
JH
5316 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
5317 warning.
5318
4843f032
JH
5319 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
5320 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 5321 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
5322 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
5323 (ipa_merge_profiles): New function.
5324 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
5325 (lto_input_function_body): Likewise.
5e581212
JH
5326 * ipa-utils.h (ipa_merge_profiles): Declare.
5327 * lto-streamer.h (lto_input_function_body): Update prototype.
5328 (emit_label_in_global_context_p): Remove.
5329 * lto-symtab.c: Include ipa-utils.h
5330 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 5331
57292ce9
JH
53322013-08-31 Jan Hubicka <jh@suse.cz>
5333
5334 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
5335
b9cbfeeb
JH
53362013-08-31 Jan Hubicka <jh@suse.cz>
5337
5338 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
5339
41dedebd
UB
53402013-08-31 Uros Bizjak <ubizjak@gmail.com>
5341
5342 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
5343 "cmp" RTX before signed_comparison_operator check to account
5344 for "code" changes.
5345
06d65050
JH
53462013-08-30 Jan Hubicka <jh@suse.cz>
5347
41dedebd 5348 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
5349 (detect_type_change_1): Rename to ...
5350 (detect_type_change): ... this one; early return on non-polymorphic
5351 types.
41dedebd 5352 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
5353 use of detect_type_change.
5354 (compute_complex_assign_jump_func): Add param_type parameter;
5355 update use of detect_type_change_ssa.
5356 (compute_complex_ancestor_jump_func): Likewise.
5357 (ipa_get_callee_param_type): New function.
5358 (ipa_compute_jump_functions_for_edge): Compute parameter type;
5359 update calls to the jump function computation functions.
5360
600b5b1d
TJ
53612013-08-30 Teresa Johnson <tejohnson@google.com>
5362 Steven Bosscher <steven@gcc.gnu.org>
5363
5364 * cfgrtl.c (fixup_new_cold_bb): New routine.
5365 (commit_edge_insertions): Invoke fixup_partitions.
5366 (find_partition_fixes): New routine.
5367 (fixup_partitions): Ditto.
5368 (verify_hot_cold_block_grouping): Update comments.
5369 (rtl_verify_edges): Invoke find_partition_fixes.
5370 (rtl_verify_bb_pointers): Update comments.
5371 (rtl_verify_bb_layout): Ditto.
5372 * basic-block.h (probably_never_executed_edge_p): Declare.
5373 (fixup_partitions): Ditto.
5374 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
5375 * bb-reorder.c (sanitize_hot_paths): New function.
5376 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
5377 sanitize_hot_paths.
5378 * predict.c (probably_never_executed_edge_p): New routine.
5379 * cfg.c (check_bb_profile): Add partition insanity warnings.
5380
0a6ea5c9
MI
53812013-08-30 Meador Inge <meadori@codesourcery.com>
5382
5383 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
5384
de5a5fa1
MP
53852013-08-30 Marek Polacek <polacek@redhat.com>
5386
5387 * Makefile.in (ubsan.o): Add.
5388 (c-family/c-ubsan.o): Add.
5389 (builtins.o): Add ubsan.h dependency.
5390 * ubsan.h: New file.
5391 * ubsan.c: New file.
5392 * common.opt: Add -fsanitize=undefined option.
5393 (flag_sanitize): Add variable.
5394 (fsanitize=): Add option. Add Driver.
5395 (fsanitize=thread): Remove option.
5396 (fsanitize=address): Likewise.
5397 (static-libubsan): New option.
5398 * doc/invoke.texi: Document the new flag and -static-libubsan.
5399 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
5400 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
5401 * builtin-attrs.def (ATTR_COLD): Define.
5402 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
5403 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
5404 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
5405 * flag-types.h (sanitize_code): New enum.
5406 * opts.c (common_handle_option): Parse command line arguments
5407 of -fsanitize=. Add -fsanitize=unreachable option.
5408 * varasm.c (get_variable_section): Adjust.
5409 (assemble_noswitch_variable): Likewise.
5410 (assemble_variable): Likewise.
5411 (output_constant_def_contents): Likewise.
5412 (categorize_decl_for_section): Likewise.
5413 (place_block_symbol): Likewise.
5414 (output_object_block): Likewise.
5415 * builtins.def: Likewise.
5416 * toplev.c (compile_file): Likewise.
5417 (process_options): Likewise.
5418 * cppbuiltin.c: Likewise.
5419 * tsan.c (tsan_pass): Likewise.
5420 (tsan_gate): Likewise.
5421 (tsan_gate_O0): Likewise.
5422 * cfgexpand.c (partition_stack_vars): Likewise.
5423 (expand_stack_vars): Likewise.
5424 (defer_stack_allocation): Likewise.
5425 (expand_used_vars): Likewise.
5426 * cfgcleanup.c (old_insns_match_p): Likewise.
5427 * asan.c (asan_finish_file): Likewise.
5428 (asan_instrument): Likewise.
5429 (gate_asan): Likewise.
5430 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
5431 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
5432 (asan_global_struct): Use pointer_sized_int_node instead
5433 calling build_nonstandard_integer_type.
5434 (initialize_sanitizer_builtins): Likewise.
5435 (asan_finish_file): Likewise.
5436 * gcc.c: Document %{%:function(args):X}.
5437 (static_spec_functions): Add sanitize.
5438 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
5439 store funcval != NULL there.
5440 (do_spec_1): Adjust handle_spec_function caller.
5441 (handle_braces): Allow %:function(args) as condition.
5442 (sanitize_spec_function): New function.
5443 (ADD_STATIC_LIBUBSAN_LIBS): Define.
5444 (LIBUBSAN_SPEC): Likewise.
5445 (LIBUBSAN_EARLY_SPEC): Likewise.
5446 (SANITIZER_SPEC): Handle libubsan.
5447 (SANITIZER_EARLY_SPEC): Likewise.
5448 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
5449 instead of fsanitize=address.
5450 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
5451 instead of fsanitize=address*.
5452 * builtins.c: Include ubsan.h.
5453 (fold_builtin_0): Instrument __builtin_unreachable.
5454 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
5455 instead of flag_asan.
5456 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
5457 (pointer_sized_int_node): Define.
41dedebd 5458 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 5459
f07f30cf
MS
54602013-08-30 Mike Stump <mikestump@comcast.net>
5461
5462 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
5463 with RE patterns.
5464
8a41354f
JH
54652013-08-29 Jan Hubicka <jh@suse.cz>
5466
5467 * cgraph.c (cgraph_function_body_availability): Handle weakref
5468 correctly.
5469 * passes.def: Remove pass_fixup_cfg.
5470 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
5471 track when we need to remove functions.
5472 (gate_ipa_inline): Execute inlining always; add comment why.
5473 (pass_data_ipa_inline): Remove TODO_remove_functions.
5474 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
5475 do not produce summaries.
5476 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
5477 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
5478 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
5479 constant pool and vtable.
5480
dc8d7a0f
TB
54812013-08-30 Tejas Belagod <tejas.belagod@arm.com>
5482
41dedebd
UB
5483 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
5484 New arm_neon.h's internal macros to specify 64-bit constants.
5485 Avoid using stdint.h's macros.
dc8d7a0f 5486
ac7eacd2
JR
54872013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
5488
5489 * recog.c (verify_changes): Verify that changes[i].old is non-zero
5490 before applying REG_P.
5491
8b29fd4e
JJ
54922013-08-30 Jakub Jelinek <jakub@redhat.com>
5493
5494 PR tree-optimization/58277
5495 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
5496 after seeing too many stmts with vdef in between dombb and current
5497 bb, invalidate everything.
5498
26d75703
RB
54992013-08-30 Richard Biener <rguenther@suse.de>
5500
5501 * fold-const.c (fold_single_bit_test): Fix overflow test.
5502
f7e088e7
EB
55032013-08-30 Eric Botcazou <ebotcazou@adacore.com>
5504
5505 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
5506 and which can live in a register, always retrieve the value on entry.
5507 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
5508 passed by invisible reference specially.
5509 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
5510 (vt_add_function_parameter): Correctly deal with a parameter passed by
5511 invisible reference.
5512
55132013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
5514
5515 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
5516
6e8dad05
RB
55172013-08-30 Richard Biener <rguenther@suse.de>
5518
5519 PR tree-optimization/58228
5520 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
5521 allow invariant loads in nested loop vectorization.
5522
062ef2c8
RB
55232013-08-30 Richard Biener <rguenther@suse.de>
5524
5525 PR tree-optimization/58223
5526 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
5527 (has_anti_or_output_dependence): ... this and adjust to also
5528 look for output dependences.
5529 (mark_nodes_having_upstream_mem_writes): Adjust.
5530 (rdg_flag_uses): Likewise.
5531
7a764c60
RB
55322013-08-30 Richard Biener <rguenther@suse.de>
5533
5534 PR tree-optimization/58010
5535 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5536 assert that we have a loop-closed PHI.
5537
82e9d642
JH
55382013-08-29 Jan Hubicka <jh@suse.cz>
5539
5540 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
5541 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
5542 * lto-section-in.c (lto_free_function_in_decl_state): New function.
5543 (lto_free_function_in_decl_state_for_node): New function.
5544
9cc1fb4b
XDL
55452013-08-29 Xinliang David Li <davidxl@google.com>
5546
41dedebd 5547 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
5548 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
5549 Emit alignment peeling message with default -fopt-info.
5550 (vect_loop_versioning): Emit loop version info message.
41dedebd 5551 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
5552 (execute_vect_slp): Ditto.
5553
440a5082
EB
55542013-08-29 Eric Botcazou <ebotcazou@adacore.com>
5555
5556 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
5557 of the clone from the DECL_NAME of the original function.
5558
3fa3690d
OE
55592013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
5560
5561 * passes.c (register_pass): Add overload.
5562 * tree-pass.h (register_pass): Forward declare it. Add comment.
5563
0170f33c
JH
55642013-08-29 Jan Hubicka <jh@suse.cz>
5565
41dedebd
UB
5566 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
5567 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
5568 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
5569 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
5570 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
5571 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 5572 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
5573 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
5574
103ff0d6
TJ
55752013-08-29 Teresa Johnson <tejohnson@google.com>
5576
5577 * dumpfile.c (dump_loc): Output column number.
5578 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
5579 * doc/invoke.texi: Document optall -fopt-info flag.
5580 * profile.c (read_profile_edge_counts): Use new dump framework.
5581 (compute_branch_probabilities): Ditto.
5582 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
5583 when pass not in any opt group.
5584 * pass_manager.h (pass_manager::get_pass_profile): New method.
5585 * value-prof.c (check_counter): Use new dump framework.
5586 (check_ic_target): Ditto.
5587 * coverage.c (get_coverage_counts): Ditto.
5588 (coverage_init): Setup new dump framework.
5589
301bbc16
RB
55902013-08-29 Richard Biener <rguenther@suse.de>
5591
5592 PR tree-optimization/58246
5593 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
5594 handle the dominance check inside a basic-block.
5595
1b275000
RB
55962013-08-29 Richard Biener <rguenther@suse.de>
5597
5598 PR middle-end/57287
5599 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
5600 of default defs that appear in abnormal PHI nodes.
5601
6b1184ba
RB
56022013-08-29 Richard Biener <rguenther@suse.de>
5603
5604 PR tree-optimization/57685
5605 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
5606 single-use operands to avoid exponential complexity.
5607
1b08b734
DC
56082013-08-28 Dehao Chen <dehao@google.com>
5609
5610 * ipa-inline.c (edge_badness): Fix integer underflow.
5611
48a3fa69
UB
56122013-08-28 Uros Bizjak <ubizjak@gmail.com>
5613
5614 * gtm-builtins.def (_ITM_free): Declare leaf.
5615
215f73e6
JJ
56162013-08-28 Jakub Jelinek <jakub@redhat.com>
5617
5618 PR target/58067
5619 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
5620 (*tls_local_dynamic_base_64_largepic): Likewise.
5621 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
5622 Remove predicate from call operand.
5623 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
5624 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
5625
34554d1a
JL
56262013-08-28 Jeff Law <law@redhat.com>
5627
5628 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
5629 checks for the number of predecessors and successors allowed.
5630 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
5631 which require copying a joiner block if there is a request which
5632 is a subpath that requires no joiner block copying.
5633
c01c111b
JH
56342013-08-28 Jan Hubicka <jh@suse.cz>
5635
5636 * lto-streamer-out.c (DFS_write_tree_body): Drop
5637 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
5638 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
5639 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
5640 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
5641 Do not read DECL_ERROR_ISSUED.
5642 (unpack_ts_decl_with_vis_value_fields): Do not read
5643 DECL_DEFER_OUTPUT.
48a3fa69
UB
5644 (lto_input_ts_binfo_tree_pointers): Do not read
5645 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
5646 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
5647 write DECL_ERROR_ISSUED..
5648 (pack_ts_decl_with_vis_value_fields): Do not write
5649 DECL_DEFER_OUTPUT.
5650 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 5651 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
5652 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
5653 * tree.h (tree_decl_common): Update comment.
5654 (DECL_ERROR_ISSUED): Remove.
5655
4b128ece
JJ
56562013-08-28 Jakub Jelinek <jakub@redhat.com>
5657
5658 PR middle-end/58257
5659 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
5660
12211b99 56612013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
5662
5663 * builtins.def (free): Declare leaf.
5664
8dce4dbc
DM
56652013-08-27 David Malcolm <dmalcolm@redhat.com>
5666
5667 * gdbhooks.py: New.
5668 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
5669 * configure: Regenerate.
5670
b8f6e610
MJ
56712013-08-27 Martin Jambor <mjambor@suse.cz>
5672
5673 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
5674 (ipa_ancestor_jf_data): Likewise.
5675 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
5676 (ipa_get_jf_pass_through_type_preserved): New function.
5677 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
5678 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 5679 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
5680 (ipa_get_jf_ancestor_result): Likewise.
5681 (propagate_vals_accross_pass_through): Use
5682 ipa_get_jf_pass_through_result to do all the value mappings.
5683 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
5684 type_preserved flag.
5685 (ipa_set_jf_cst_copy): New function.
5686 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
5687 (ipa_set_jf_arith_pass_through): Likewise.
5688 (ipa_set_ancestor_jf): Likewise.
5689 (compute_complex_assign_jump_func): Set type_preserved instead of
5690 punting.
5691 (ipa_compute_jump_functions_for_edge): Likewise.
5692 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
5693 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 5694 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
5695 (ipa_write_jump_function): Stream the type_preserved flags.
5696 (ipa_read_jump_function): Likewise.
5697
74bf76ed
JJ
56982013-08-27 Jakub Jelinek <jakub@redhat.com>
5699 Aldy Hernandez <aldyh@redhat.com>
5700
5701 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
5702 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
5703 * function.h (struct function): Add has_force_vect_loops and
5704 has_simduid_loops.
12211b99 5705 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
5706 * gimple.c (gimple_build_omp_critical): Add KIND argument and
5707 handle it.
5708 * gimple.def: Update CLAUSES comments.
5709 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
5710 (gimple_build_omp_for): Add argument to prototype.
5711 (gimple_omp_for_kind): New.
5712 (gimple_omp_for_set_kind): New.
5713 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
5714 GOVD_DATA_SHARE_CLASS.
5715 (enum omp_region_type): Add ORT_SIMD.
5716 (gimple_add_tmp_var): Handle ORT_SIMD.
5717 (gimplify_var_or_parm_decl): Same.
5718 (is_gimple_stmt): Same.
5719 (omp_firstprivatize_variable): Same.
5720 (omp_add_variable): Only use splay_tree_insert if lookup failed.
5721 (omp_notice_variable): Handle ORT_SIMD.
12211b99 5722 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
5723 (omp_check_private): Handle ORT_SIMD.
5724 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
5725 OMP_CLAUSE_SAFELEN.
5726 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
5727 Handle OMP_CLAUSE_LASTPRIVATE.
5728 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
5729 OMP_CLAUSE_SAFELEN.
5730 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
5731 (gimplify_expr): Handle OMP_SIMD.
5732 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
5733 (expand_GOMP_SIMD_VF): New.
5734 (expand_GOMP_SIMD_LAST_LANE): New.
5735 * internal-fn.def (GOMP_SIMD_LANE): New.
5736 (GOMP_SIMD_VF): New.
5737 (GOMP_SIMD_LAST_LANE): New.
5738 * omp-low.c: Include target.h.
5739 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
5740 OMP_CLAUSE_SAFELEN.
5741 (check_omp_nesting_restrictions): Same.
5742 (omp_max_vf): New.
5743 (lower_rec_simd_input_clauses): New.
5744 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
5745 OMP_CLAUSE_LINEAR.
5746 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
5747 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
5748 (expand_omp_build_assign): New.
5749 (expand_omp_for_init_counts): New.
5750 (expand_omp_for_init_vars): New.
5751 (extract_omp_for_update_vars): New.
5752 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
5753 and rewrite accordingly.
5754 (expand_omp_simd): New.
5755 (expand_omp_for): Use expand_omp_simd.
5756 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
5757 (lower_omp_for): Do not lower the body.
5758 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
5759 in their own loops.
5760 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
5761 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
5762 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
5763 (gate_tree_if_conversion): Similarly.
5764 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
5765 gimple_build_omp_for.
5766 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
5767 * tree-parloops (create_parallel_loop): Pass kind argument to
5768 gimple_build_omp_for.
5769 * tree-pretty-print.c (dump_omp_clause): Add cases for
5770 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
5771 OMP_CLAUSE__SIMDUID_.
5772 (dump_generic_node): Handle OMP_SIMD.
5773 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
5774 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
5775 unroll OMP_SIMD loops here.
12211b99 5776 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 5777 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 5778 loop->safelen.
74bf76ed
JJ
5779 (vect_analyze_data_refs): Handle simd loops.
5780 * tree-vect-loop.c (vectorizable_live_operation): Handle
5781 IFN_GOMP_SIMD*.
12211b99 5782 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
5783 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
5784 (vectorizable_load): Same.
12211b99 5785 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
5786 (struct simduid_to_vf): New.
5787 (simduid_to_vf::hash): New.
5788 (simduid_to-vf::equal): New.
5789 (struct simd_array_to_simduid): New.
5790 (simd_array_to_simduid::hash): New.
5791 (simd_array_to_simduid::equal): New.
5792 (adjust_simduid_builtins): New.
5793 (struct note_simd_array_uses_struct): New.
5794 (note_simd_array_uses_cb): New.
5795 (note_simd_array_uses): New.
5796 (vectorize_loops): Handle simd hints and adjust simd builtins
5797 accordingly.
5798 * tree-vectorizer.h (struct _stmt_vec_info): Add
5799 simd_lane_access_p field.
5800 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
5801 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
5802 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
5803 (omp_clause_code_name): Same.
5804 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
5805 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
5806 * tree.def (OMP_SIMD): New entry.
12211b99
UB
5807 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
5808 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
5809 (OMP_CLAUSE_DECL): Adjust range for new clauses.
5810 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
5811 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
5812 (OMP_CLAUSE_LINEAR_STEP): New.
5813 (OMP_CLAUSE_SAFELEN_EXPR): New.
5814 (OMP_CLAUSE__SIMDUID__DECL): New.
5815 (find_omp_clause): New prototype.
5816
d0cf4e84
L
58172013-08-27 H.J. Lu <hongjiu.lu@intel.com>
5818
5819 * config/i386/driver-i386.c (host_detect_local_cpu): Update
5820 Haswell processor detection.
5821
992592ec
CW
58222013-08-27 Christian Widmer <shadow@umbrox.de>
5823
5824 PR target/57927
5825 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
5826 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
5827 AVX2 capable processors.
5828
9116eb22
TB
58292013-08-27 Tejas Belagod <tejas.belagod@arm.com>
5830
5831 * config/aarch64/arm_neon.h: Replace all inline asm implementations
5832 of vget_low_* with implementations in terms of other intrinsics.
5833
1c5abb53
MG
58342013-08-27 Marc Glisse <marc.glisse@inria.fr>
5835
5836 PR middle-end/57219
5837 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
5838 values to -1, 0 and 1.
5839
2e100703
VP
58402013-08-27 Vidya Praveen <vidyapraveen@arm.com>
5841
5842 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
5843 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
5844 (<optab><mode>3_insn): Remove.
5845 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
5846 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5847 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5848 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
5849 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
5850 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
5851 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
5852 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
5853 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
5854 (ror<mode>3_insn): Likewise.
5855 * config/aarch64/predicates.md (aarch64_simd_register): New.
5856
4ded8276
RB
58572013-08-27 Richard Biener <rguenther@suse.de>
5858
5859 PR tree-optimization/57521
5860 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
5861 one edge is non-critical.
5862 (find_phi_replacement_condition): Make sure to use a non-critical
5863 edge. Cleanup and remove old bug workarounds.
5864 (bb_postdominates_preds): Remove.
5865 (if_convertible_loop_p_1): Do not compute post-dominators.
5866 (combine_blocks): Do not free post-dominators.
5867 (main_tree_if_conversion): Likewise.
5868 (pass_data_if_conversion): Add TODO_verify_ssa.
5869
5aa11061
DD
58702013-08-27 DJ Delorie <dj@redhat.com>
5871
5872 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
5873
fd91cfe3
YZ
58742013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
5875
5876 * function.c (assign_parm_find_data_types): Set passed_mode and
5877 nominal_mode to the TYPE_MODE of nominal_type for the built
5878 pointer type in case of the struct-pass-by-reference.
5879
907555ce
JR
58802013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5881
5882 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
5883 (UINT16_TYPE): Change default to "unsigned int".
5884
67518c93
JR
5885 * config/avr/avr.opt (mfract-convert-truncate): New option.
5886 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
5887 is set, round negative fractional integers according to n1169
5888 when converting to integer types.
5889
d6d989fc
JH
58902013-08-26 Jan Hubicka <jh@suse.cz>
5891
5892 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
5893 methods can not be called indirectly when their address is not taken.
5894
2aa3da06
JH
58952013-08-26 Jan Hubicka <jh@suse.cz>
5896
12211b99
UB
5897 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
5898 ctor_for_folding.
2aa3da06 5899
0987ffe7
JH
59002013-08-26 Jan Hubicka <jh@suse.cz>
5901
5902 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
5903 can be unshared.
5904
befe8647
JR
59052013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5906
5907 * reload.c (find_valid_class): Allow classes that do not include
5908 FIRST_PSEUDO_REGISTER - 1.
5909
a21e735e
JH
59102013-08-26 Jan Hubicka <jh@suse.cz>
5911
5912 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
5913 fix edge count/frequency when speculation failed; fix type check
5914 for the direct call.
5915
e067bd43
JH
59162013-08-26 Jan Hubicka <jh@suse.cz>
5917
5918 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
5919
e8aec975
JH
59202013-08-26 Jan Hubicka <jh@suse.cz>
5921
5922 * ipa-inline-transform.c (inline_transform): Be ready for basic block
5923 to be changed by edge redirection.
5924
d0b66480
JH
59252013-08-26 Jan Hubicka <jh@suse.cz>
5926
12211b99
UB
5927 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
5928 formating; add sanity check.
d0b66480
JH
5929 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
5930 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
5931 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
5932 (resolve_noninline_speculation): Update callee keys, too.
5933
0f9aaac7
JH
59342013-08-26 Jan Hubicka <jh@suse.cz>
5935
5936 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
5937 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
5938
4b37444e
JR
59392013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5940
5941 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
5942 into proper place.
5943
5339fc0c
UB
59442013-08-26 Uros Bizjak <ubizjak@gmail.com>
5945
5946 * config/i386/i386.c (ix86_debug_options): Remove prototype.
5947 (x86_64_elf_select_section): Ditto.
5948 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
5949 arguments.
5950 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
5951 (output_set_got): Ditto.
5952 (ix86_unary_operator_ok): Ditto.
5953 (ix86_expand_builtin): Ditto.
5954
d5c3d3ef
JH
59552013-08-23 Jan Hubicka <jh@suse.cz>
5956
5339fc0c 5957 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 5958
5b1e7435
JH
59592013-08-23 Jan Hubicka <jh@suse.cz>
5960
5961 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
5962 (tree_decl_with_vis): Add FINAL field.
5963
ead69dac
JL
59642013-08-23 Jeff Law <law@redhat.com>
5965
5966 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
5967 the debugging dump when the expression is fully redundant.
5968
025311c4
GDR
59692013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5970
5971 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
5972 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
5973 * pretty-print.c (pp_formatted_text_data): Likewise.
5974 (pp_write_text_to_stream): Likewise.
5975 (pp_write_text_as_dot_label_to_stream): Likewise.
5976 (pp_append_r): Likewise.
5977 (pp_format): Likewise.
5978 (pp_flush): Likewise.
5979 (pp_clear_output_area): Likewise.
5980 (pp_append_text): Likewise.
5981 (pp_formatted_text): Likewise.
5982 (pp_remaining_character_count_for_line): Likewise.
5983 (pp_newline): Likewise.
5984 (pp_character): Likewise.
5985 (output_buffer::~output_buffer): Define.
5986 (pretty_printer::~pretty_printer): Destruct output buffer.
5987 * pretty-print.h (output_buffer::~output_buffer): Declare.
5988 (pretty_printer::~pretty_printer): Declare virtual.
5989
0cadbfaa
MG
59902013-08-24 Marc Glisse <marc.glisse@inria.fr>
5991
5992 PR other/57324
5993 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
5994 HOST_WIDE_INT_M1U): New macros.
5995 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
5996 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
5997 unsigned -1 for lshift.
5998 * cse.c (cse_insn): Likewise.
5999 * double-int.c (rshift_double, lshift_double): Likewise.
6000 * builtins.c (fold_builtin_bitop): Likewise.
6001 * combine.c (force_to_mode): Likewise.
6002 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
6003 * simplify-rtx.c (simplify_const_unary_operation,
6004 simplify_const_binary_operation): Likewise.
6005 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
6006 check_va_list_escapes): Likewise.
6007 * rtlanal.c (nonzero_bits1): Likewise.
6008 * expmed.c (expand_smod_pow2): Likewise.
6009 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
6010
009e5353
JH
60112013-08-23 Jan Hubicka <jh@suse.cz>
6012
6013 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
6014 as having address taken.
6015
c4be6568
JH
60162013-08-23 Jan Hubicka <jh@suse.cz>
6017
64cbf23d
JH
6018 * ipa-utils.h (method_class_type): Declare.
6019 * ipa-devirt.c (method_class_type): Export.
6020
c4be6568
JH
6021 * cgraphunit.c (analyze_functions): Do basic devirtualization;
6022 do not walk base classes of anonymous types.
6023
97aba8e9
KK
60242013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
6025
6026 PR rtl-optimization/58220
6027 PR regression/58221
6028 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
6029 handle SEQUENCE insns properly.
6030
0fc80001
GDR
60312013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
6032
6033 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
6034 definition.
6035 (pp_newline_and_indent): Likewise.
6036 (pp_separate_with): Likewise.
6037 * pretty-print.c (pp_newline_and_flush): Define.
6038 (pp_newline_and_indent): Likewise.
6039 (pp_separate_with): Likewise.
6040
520a5868
JJ
60412013-08-23 Jakub Jelinek <jakub@redhat.com>
6042
6043 PR target/58218
6044 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
6045 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
6046
e500c62a
KY
60472013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
6048
f43245d1
UB
6049 * config/i386/predicates.md (ext_sse_reg_operand): New.
6050 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
6051 predicate to determine if EVEX is needed.
6052 (*movsi_internal): Ditto.
6053 (*movdf_internal): Ditto.
6054 (*movsf_internal): Ditto.
f43245d1 6055 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 6056
6b00d7dd
JJ
60572013-08-23 Jakub Jelinek <jakub@redhat.com>
6058
6059 PR tree-optimization/58209
6060 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
6061 (find_tail_calls): Give up for pointer result types if m is non-NULL.
6062 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
6063 emit POINTER_PLUS_EXPR.
6064 (create_tailcall_accumulator): For pointer result type accumulate in
6065 sizetype type.
6066
4f2a9f90
PC
60672013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
6068
6069 * configure.ac: Add backslashes missing from the last change.
6070 * configure: Regenerate.
6071
7bf4274e
JH
60722013-08-22 Jan Hubicka <jh@susue.cz>
6073
4f2a9f90
PC
6074 * ipa.c (function_and_variable_visibility): First remember function
6075 was global and then make it local.
7bf4274e 6076
1bea243d
JB
60772013-08-22 Julian Brown <julian@codesourcery.com>
6078
6079 * configure.ac: Add aarch64 to list of arches which use "nop" in
6080 debug_line test.
6081 * configure: Regenerate.
6082
bcba7ecc
AK
60832013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6084
6085 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
6086 gnu_libc_has_function.
6087 * config/s390/tpf.h: Likewise.
6088
4c495b0d
JH
60892013-08-22 Jan Hubicka <jh@susue.cz>
6090
6091 * timevar.c (validate_phases): Add cast.
6092
5e302bca
JH
60932013-08-22 Jan Hubicka <jh@susue.cz>
6094
6095 * timevar.c (validate_phases): Use size_t for memory.
6096 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
6097
da6ca2b5
GDR
60982013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
6099
6100 * pretty-print.h (output_buffer::output_buffer): Declare.
6101 (pretty_printer::pretty_printer): Likewise.
6102 (pp_construct): Remove.
6103 * pretty-print.c (output_buffer::output_buffer): Define.
6104 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
6105 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
6106 (print_gimple_expr): Likewise.
6107 (print_gimple_seq): Likewise.
6108 (gimple_dump_bb): Likewise.
6109 * sched-vis.c (dump_value_slim): Likewise.
6110 (dump_insn_slim): Likewise.
6111 (dump_rtl_slim): Likewise.
6112 (str_pattern_slim): Likewise.
6113 * tree-mudflap.c (mf_varname_tree): Likewise.
6114 * graph.c (print_graph_cfg): Likewise.
6115 (start_graph_dump): Likewise.
6116 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
6117 placement-new.
6118 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
6119 pretty printer initialization.
6120 * coretypes.h (diagnostic_context): Remove superflous type alias
6121 declaration.
6122 (pretty_printer): Likewise. Declare directly as a class.
6123 (pretty_print_info): Remove declaration as class.
6124 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
6125 and pp_clear_output_area.
6126 (asan_add_global): Likewise.
6127
0e1474e5
JH
61282013-08-22 Jan Hubicka <jh@suse.cz>
6129
6130 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
6131 * ipa-utils.h (update_type_inheritance_graph): Declare.
6132 (possible_polymorphic_call_target_p): Declare.
6133 (possible_polymorphic_call_target_p): New.
6134 * ipa-devirt.c: Update toplevel comments.
6135 (cached_polymorphic_call_targets): Move up.
6136 (odr_type_d): Move ID down.
6137 (polymorphic_type_binfo_p): Update comment.
6138 (odr_hasher::remove): Likewise;
6139 (get_odr_type): Set anonymous_namespace.
6140 (dump_odr_type): Dump it.
6141 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
6142 (maybe_record_node): Record node in cached_polymorphic_call_targets.
6143 (record_binfo): Add comment.
5339fc0c
UB
6144 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
6145 built.
0e1474e5
JH
6146 (devirt_node_removal_hook): Do not iCE when cache is freed.
6147 (possible_polymorphic_call_target_p): New predicate.
6148 (update_type_inheritance_graph): New function.
6149
3f97cb0b
AI
61502013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
6151 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6152 Sergey Lega <sergey.s.lega@intel.com>
6153 Anna Tikhonova <anna.tikhonova@intel.com>
6154 Ilya Tocar <ilya.tocar@intel.com>
6155 Andrey Turetskiy <andrey.turetskiy@intel.com>
6156 Ilya Verbin <ilya.verbin@intel.com>
6157 Kirill Yukhin <kirill.yukhin@intel.com>
6158 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6159
6160 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
6161 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
6162 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
6163 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
6164 (OPTION_MASK_ISA_AVX2_UNSET): Update.
6165 (OPTION_MASK_ISA_AVX512F_UNSET): New.
6166 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
6167 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
6168 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
6169 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
6170 OPT_mavx512pf, OPT_mavx512er cases.
6171 * config/i386/constraints.md (v): New constraint.
6172 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
6173 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
6174 (bit_AVX512CD): New.
6175 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6176 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
6177 * config/i386/i386-c.c (ix86_target_macros_internal):
6178 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
6179 __AVX512PF__.
6180 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
6181 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
6182 * config/i386/i386.c (regclass_map, dbx_register_map)
6183 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
6184 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
6185 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
6186 -mavx512pf options.
6187 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
6188 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
6189 -mavx512pf options. Fix formatting.
6190 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
6191 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
6192 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
6193 -mavx512cd, -mavx512pf options.
6194 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
6195 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
6196 (ix86_preferred_output_reload_class): Replace SSE_REGS with
6197 ALL_SSE_REGS.
6198 (ix86_hard_regno_mode_ok): Support 512-bit registers.
6199 (ix86_set_reg_reg_cost): Ditto.
6200 (x86_order_regs_for_local_alloc): Ditto.
6201 (MAX_VECT_LEN): Extend to 64-byte.
6202 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
6203 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
6204 (TARGET_AVX512ER, TARGET_AVX512CD): New.
6205 (BIGGEST_ALIGNMENT): Extend to 512-bits.
6206 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
6207 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
6208 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
6209 (SSE_REG_MODE_P): Support new modes.
6210 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
6211 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
6212 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
6213 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
6214 (REG_CLASS_CONTENTS): Add new registers.
6215 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
6216 (EXT_REX_SSE_REGNO_P): New.
6217 (HI_REGISTER_NAMES): Add new registers.
6218 * config/i386/i386.md: Define constants for new registers.
6219 (mode): Add new 512-bit modes.
6220 (prefix): Support evex prefix.
6221 (isa): Support avx512f, noavx512f, fma_avx512f.
6222 (ssemodesuffix): Add new 512-bit modes.
6223 (movxi): New.
6224 (*movxi_internal_avx512f): Ditto.
6225 (*movdi_internal): Replace constraint "x" with the new constraint "v".
6226 Support MODE_XI.
6227 (*movsi_internal): Likewise.
6228 (*movdf_internal): Likewise.
6229 (*movsf_internal): Likewise.
6230 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
6231 (<code><mode>3): Likewise.
5339fc0c
UB
6232 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
6233 New.
3f97cb0b
AI
6234 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
6235 with the new constraint "v".
6236 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
6237 modes.
6238 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
6239 with the new constraint "v".
6240 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
6241 (<sse2>_storedqu<avxsizesuffix>): Likewise.
6242 (*<plusminus_insn><mode>3): Likewise.
6243 (<sse>_vm<plusminus_insn><mode>3): Likewise.
6244 (*mul<mode>3): Likewise.
6245 (<sse>_vmmul<mode>3): Likewise.
6246 (<sse>_div<mode>3): Likewise.
6247 (<sse>_vmdiv<mode>3): Likewise.
6248 (<sse>_sqrt<mode>2): Likewise.
6249 (<sse>_vmsqrt<mode>2): Likewise.
6250 (*<code><mode>3_finite): Likewise.
6251 (*<code><mode>3) <smaxmin>: Likewise.
6252 (<sse>_vm<code><mode>3): Likewise.
6253 (*<code><mode>3) <any_logic>: Likewise.
6254 (*fma_fmadd_<mode>): Likewise.
6255 (*fma_fmsub_<mode>): Likewise.
6256 (*fma_fnmadd_<mode>): Likewise.
6257 (*fma_fnmsub_<mode>): Likewise.
6258 (*fma_fmaddsub_<mode>): Likewise.
6259 (*fma_fmsubadd_<mode>): Likewise.
6260 (*fmai_fmadd_<mode>): Likewise.
6261 (*fmai_fmsub_<mode>): Likewise.
6262 (*fmai_fnmadd_<mode>): Likewise.
6263 (*fmai_fnmsub_<mode>): Likewise.
6264 (sse_cvtsi2ss): Likewise.
6265 (sse_cvtsi2ssq): Likewise.
6266 (sse_cvtss2si): Likewise.
6267 (sse_cvtss2si_2): Likewise.
6268 (sse_cvtss2siq): Likewise.
6269 (sse_cvtss2siq_2): Likewise.
6270 (sse_cvttss2si): Likewise.
6271 (sse_cvtss2siq_2): Likewise.
6272 (float<sseintvecmodelower><mode>2): Likewise.
6273 (sse2_cvtsd2si_2): Likewise.
6274 (sse2_cvtsd2siq_2): Likewise.
6275 (*<plusminus_insn><mode>3): Likewise.
6276 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
6277 (*<sse4_1_avx2>_mul<mode>3): Likewise.
6278 (ashr<mode>3): Likewise.
6279 (<shift_insn><mode>3): Likewise.
6280 (avx2_<code><mode>3): Likewise.
6281 (*avx2_<code><mode>3): Likewise.
6282 (*andnot<mode>3): Likewise.
6283 (*<code><mode>3) <any_logic>: Likewise.
6284 (abs<mode>2): Likewise.
6285 (avx2_permvar<mode>): Likewise.
6286 (avx2_perm<mode>_1): Likewise.
6287 (*avx_vpermilp<mode>): Likewise.
6288 (avx_vpermilvar<mode>3): Likewise.
6289 (avx2_ashrv<mode>): Likewise.
6290 (avx2_<shift_insn>v<mode>): Likewise.
6291 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
6292 -mavx512cd.
6293 * doc/rtl.texi: Document XImode.
6294
dd5e8423
JL
62952013-08-21 Jeff Law <law@redhat.com>
6296
b9ebee5d
JL
6297 * tree-flow.h (register_jump_thread): Pass vector of edges
6298 instead of each important edge.
6299 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
6300 thread path into a vector and pass that to register_jump_thread.
6301 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
6302 passed in edge vector to the current 3-edge form.
6303
dd5e8423
JL
6304 Revert:
6305 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
6306
9bb6628e 6307 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
6308 delete_unmarked_insns removed anything.
6309
445dc8df
JR
63102013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
6311
6312 * reload.h (struct reg_equivs): Rename to ..
6313 (struct reg_equivs_s): .. this.
6314
e0df53dd
ML
63152013-08-20 Martin Liska <marxin.liska@gmail.com>
6316
6317 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
6318
e7d1d3eb
RO
63192013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6320
5339fc0c 6321 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 6322
5562e26e
JL
63232013-08-21 Jeff Law <law@redhat.com>
6324
6325 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
6326 simplify assignments too. If the RHS collapses to a singleton
6327 range, then return the value for the range.
6328
c7ecdec6
KY
63292013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
6330
7a5911d3
UB
6331 * config/i386/sse.md (V16): Rename to...
6332 (VMOVE): this.
6333 (mov<mode>): Update iterator name.
6334 (*mov<mode>_internal): Ditto.
6335 (push<mode>1): Ditto.
6336 (movmisalign<mode>): Ditto.
c7ecdec6 6337
bfa3b50a
JH
63382013-08-20 Jan Hubicka <jh@suse.cz>
6339
6340 PR bootstrap/58186
6341 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
6342 entry for direct edges.
6343 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
6344
6cd4d135
DM
63452013-08-20 David Malcolm <dmalcolm@redhat.com>
6346
6347 Revert my last two changes, r201865 and r201864:
6348
6349 Revert r201865:
6350 2013-08-20 David Malcolm <dmalcolm@redhat.com>
6351
6352 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
6353 instances can own GC refs.
6354
6355 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
6356 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
6357 (gcc::context::gt_pch_nx): Likewise.
6358 (gcc::context::gt_pch_nx): Likewise.
6359 * ggc.h (gt_ggc_mx <T>): New.
6360 (gt_pch_nx_with_op <T>): New.
6361 (gt_pch_nx <T>): New.
6362 * passes.c (opt_pass::gt_ggc_mx): New.
6363 (opt_pass::gt_pch_nx): New.
6364 (opt_pass::gt_pch_nx_with_op): New.
6365 (pass_manager::gt_ggc_mx): New.
6366 (pass_manager::gt_pch_nx): New.
6367 (pass_manager::gt_pch_nx_with_op): New.
6368 (pass_manager::operator new): Use
6369 ggc_internal_cleared_alloc_stat rather than xcalloc.
6370 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
6371 (pass_manager::gt_ggc_mx): New.
6372 (pass_manager::gt_pch_nx): New.
6373 (pass_manager::gt_pch_nx_with_op): New.
6374 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
6375 (opt_pass::operator new): New.
6376 (opt_pass::gt_ggc_mx): New.
6377 (opt_pass::gt_pch_nx): New.
6378 (opt_pass::gt_pch_nx_with_op): New.
6379
6380 Revert r201864:
6381 2013-08-20 David Malcolm <dmalcolm@redhat.com>
6382
6383 * Makefile.in (GTFILES): Add context.h.
6384 * context.c (gcc::context::operator new): New.
6385 (gcc::context::gt_ggc_mx): New.
6386 (gcc::context::gt_pch_nx): New.
6387 (gcc::context::gt_pch_nx): New.
6388 * context.h (gcc::context): Add GTY((user)) marking.
6389 (gcc::context::operator new): New.
6390 (gcc::context::gt_ggc_mx): New.
6391 (gcc::context::gt_pch_nx): New.
6392 (gcc::context::gt_pch_nx): New.
6393 (g): Add GTY marking.
6394 (gt_ggc_mx (gcc::context *)): New.
6395 (gt_pch_nx (gcc::context *)): New.
6396 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
6397 void *cookie)): New.
6398 * gengtype.c (open_base_files) <ifiles>: Add context.h.
6399
a046136a
AM
64002013-08-20 Alexey Makhalov <makhaloff@gmail.com>
6401
6402 * dce.c (fini_dce): Call df_analyze again just in case
6403 delete_unmarked_insns removed anything.
6404
67598720
TJ
64052013-08-20 Teresa Johnson <tejohnson@google.com>
6406
6407 PR rtl-optimizations/57451
6408 * final.c (reemit_insn_block_notes): Prevent lexical blocks
6409 from crossing split section boundaries.
6410
f8693faf
MGD
64112013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
6412
6413 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
6414 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
6415 with MULTLIB_DEFAULTS.
6416
7d0b9a9c
NC
64172013-08-20 Nick Clifton <nickc@redhat.com>
6418
6419 * target.def (narrow_volatile_bitfield): Note that the default
6420 value is false, not !TARGET_STRICT_ALIGN.
6421 * doc/tm.texi: Regenerate.
6422
8edb8dc8
PC
64232013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
6424
6425 Fix LIB_SPEC for systems without libpthread.
6426
6427 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
6428 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
6429 for Android.
6430 * config/i386/linux-common.h: Likewise.
6431 * config/mips/linux-common.h: Likewise.
6432
12211b99 64332013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
6434
6435 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
6436 checks.
6437
e42c64cb
DM
64382013-08-20 David Malcolm <dmalcolm@redhat.com>
6439
6440 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
6441 instances can own GC refs.
6442
6443 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
6444 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
6445 (gcc::context::gt_pch_nx): Likewise.
6446 (gcc::context::gt_pch_nx): Likewise.
6447 * ggc.h (gt_ggc_mx <T>): New.
6448 (gt_pch_nx_with_op <T>): New.
6449 (gt_pch_nx <T>): New.
6450 * passes.c (opt_pass::gt_ggc_mx): New.
6451 (opt_pass::gt_pch_nx): New.
6452 (opt_pass::gt_pch_nx_with_op): New.
6453 (pass_manager::gt_ggc_mx): New.
6454 (pass_manager::gt_pch_nx): New.
6455 (pass_manager::gt_pch_nx_with_op): New.
6456 (pass_manager::operator new): Use
6457 ggc_internal_cleared_alloc_stat rather than xcalloc.
6458 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
6459 (pass_manager::gt_ggc_mx): New.
6460 (pass_manager::gt_pch_nx): New.
6461 (pass_manager::gt_pch_nx_with_op): New.
6462 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
6463 (opt_pass::operator new): New.
6464 (opt_pass::gt_ggc_mx): New.
6465 (opt_pass::gt_pch_nx): New.
6466 (opt_pass::gt_pch_nx_with_op): New.
6467
910c02a0
DM
64682013-08-20 David Malcolm <dmalcolm@redhat.com>
6469
6470 * Makefile.in (GTFILES): Add context.h.
6471 * context.c (gcc::context::operator new): New.
6472 (gcc::context::gt_ggc_mx): New.
6473 (gcc::context::gt_pch_nx): New.
6474 (gcc::context::gt_pch_nx): New.
6475 * context.h (gcc::context): Add GTY((user)) marking.
6476 (gcc::context::operator new): New.
6477 (gcc::context::gt_ggc_mx): New.
6478 (gcc::context::gt_pch_nx): New.
6479 (gcc::context::gt_pch_nx): New.
6480 (g): Add GTY marking.
6481 (gt_ggc_mx (gcc::context *)): New.
6482 (gt_pch_nx (gcc::context *)): New.
6483 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
6484 void *cookie)): New.
6485 * gengtype.c (open_base_files) <ifiles>: Add context.h.
6486
af4b4236
AM
64872013-08-20 Alan Modra <amodra@gmail.com>
6488
6489 PR target/57865
6490 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
6491 (rs6000_emit_epilogue): Likewise.
6492
12211b99 64932013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
6494
6495 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
6496
e2323f5b
PB
64972013-08-19 Peter Bergner <bergner@vnet.ibm.com>
6498 Jakub Jelinek <jakub@redhat.com>
6499
6500 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
6501 (BUILT_IN_FABSD64): Likewise.
6502 (BUILT_IN_FABSD128): Likewise.
6503 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
6504 (fold_builtin_1): Likewise.
5339fc0c
UB
6505 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
6506 destination and source operands.
e2323f5b
PB
6507 (*abstd2_fpr): Likewise.
6508 (*nabstd2_fpr): Likewise.
6509
cfbf3ee8
RS
65102013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
6511
6512 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
6513 JUMP_P and INSN_P.
6514
d3136aeb
AH
65152013-08-19 Aldy Hernandez <aldyh@redhat.com>
6516
6517 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
6518 incomplete.
6519
d33d9e47
AI
65202013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
6521
6522 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
6523 * builtins.c (default_libc_has_function): New.
6524 (gnu_libc_has_function): Ditto.
6525 (no_c99_libc_has_function): Ditto.
6526 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
6527 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
6528 (fold_builtin_sincos): Likewise.
6529 (fold_builtin_cexp): Likewise.
6530 * builtins.def (DEF_C94_BUILTIN): Likewise.
6531 (DEF_C99_BUILTIN): Likewise.
6532 (DEF_C99_C90RES_BUILTIN): Likewise.
6533 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
6534 definitions to using this define.
6535 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 6536 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
6537 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
6538 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
6539 * config/darwin.h: Ditto.
6540 * config/elfos.h: Ditto.
6541 * config/freebsd.h: Ditto.
6542 * config/i386/cygming.h: Ditto.
6543 * config/i386/djgpp.h: Ditto.
6544 * config/i386/i386-interix.h: Ditto.
6545 * config/microblaze/microblaze.h: Ditto.
6546 * config/mmix/mmix.h: Ditto.
6547 * config/gnu-user.h: Ditto.
6548 * config/ia64/hpux.h: Ditto.
6549 * config/pa/pa-hpux.h: Ditto.
6550 * config/pdp11/pdp11.h: Ditto.
6551 * config/picochip/picochip.h: Ditto.
6552 * config/linux.h: Ditto.
6553 * config/netbsd.h: Ditto.
6554 * config/openbsd.h: Ditto.
6555 * config/rs6000/aix43.h: Ditto.
6556 * config/rs6000/aix51.h: Ditto.
6557 * config/rs6000/aix52.h: Ditto.
6558 * config/rs6000/aix53.h: Ditto.
6559 * config/rs6000/aix61.h: Ditto.
6560 * config/rs6000/darwin.h: Ditto.
6561 * config/rs6000/linux.h: Ditto.
6562 * config/rs6000/linux64.h: Ditto.
6563 * config/s390/tpf.h: Ditto.
6564 * config/sol2-10.h: Ditto.
6565 * config/sol2.h: Ditto.
6566 * config/vms/vms.h: Ditto.
6567 * config/vxworks.h: Ditto.
6568 * config/linux-android.c (linux_android_libc_has_function):
6569 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
6570 * config/linux-protos.h (linux_android_libc_has_function):
6571 New declaration.
6572 * config/i386/i386.c (ix86_libc_has_function): New.
6573 * config/i386/i386-protos.h
6574 (ix86_libc_has_function): New declaration.
6575 * config/i386/i386.md
6576 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
6577 ("isinf<mode>2): Likewise.
6578 * convert.c (convert_to_integer): Using new target hook
6579 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
6580 TARGET_C99_FUNCTIONS.
6581 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
6582 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
6583 * coretypes.h (function_class): New enum for different
6584 classes of functions.
6585 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
6586 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
6587 (TARGET_HAS_SINCOS): Likewise.
6588 (TARGET_LIBC_HAS_FUNCTION): New.
6589 * doc/tm.texi: Regenerated.
6590 * targhooks.h (default_libc_has_function): New declaration.
6591 (no_c99_libc_has_function): Ditto.
6592 (gnu_libc_has_function): Ditto.
6593 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
6594 and TARGET_HAS_SINCOS.
6595
eefe9a99
JH
65962013-08-18 Jan Hubicka <jh@suse.cz>
6597
6598 * Makeifle-in (ipa-devirt.o): New.
6599 (GTFILES): Add ipa-utils.h and ipa-devirt.c
6600 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
6601 (analyze_functions): Look into possible targets of polymorphic call.
6602 * dumpfile.c (dump_files): Add type-inheritance dump.
6603 * dumpfile.h (TDI_inheritance): New.
6604 * ipa-devirt.c: New file.
6605 * ipa-utils.h (odr_type_d): Forward declare.
6606 (odr_type): New type.
6607 (build_type_inheritance_graph): Declare.
6608 (possible_polymorphic_call_targets): Declare and introduce inline
6609 variant when only edge is pased.
6610 (dump_possible_polymorphic_call_targets): Likewise.
6611 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
6612 * tree.c (type_in_anonymous_namespace_p): Break out from ...
6613 (types_same_for_odr): ... here.
6614 * tree.h (type_in_anonymous_namespace_p): Declare.
6615
29b89442
JJ
66162013-08-18 Jakub Jelinek <jakub@redhat.com>
6617
6618 PR tree-optimization/58006
6619 * tree-parloops.c (take_address_of): Don't ICE if get_name
6620 returns NULL.
6621 (eliminate_local_variables_stmt): Remove clobber stmts.
6622
4f219961
EB
66232013-08-18 Eric Botcazou <ebotcazou@adacore.com>
6624
6625 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
6626 error message is issued for an alias to undefined symbol.
6627
1d5755ef
JH
66282013-08-18 Jan Hubicka <jh@suse.cz>
6629
6630 * cgraph.c (cgraph_create_indirect_edge): Discover
6631 polymorphic calls and record basic info into indirect_info.
6632 * gimple-fold.c (gimple_fold_call): When doing BINFO based
6633 devirtualization, ignore objc function calls.
6634 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
6635 call with no parm index info.
6636 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
6637 * tree.c (virtual_method_call_p): New function.
6638 * tree.h (virtual_method_call_p): Declare.
6639
5945bebf
JH
66402013-08-16 Jan Hubicka <jh@suse.cz>
6641
6642 PR middle-end/58179
6643 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
6644
47fa5d23
DE
66452013-08-16 David Edelsohn <dje.gcc@gmail.com>
6646
6647 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
6648 attribute.
6649
c74f54a0
DM
66502013-08-16 David Malcolm <dmalcolm@redhat.com>
6651
6652 * gengtype.c (type_for_name): Add special-case support for
6653 locating types within the "gcc::" namespace.
6654 (open_base_files): Emit a "using namespace gcc" directive.
6655
f758f299
MM
66562013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
6657
6658 PR target/58160
6659 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
6660 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
6661
6662 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
6663 array instead of each individual operand as a separate argument.
6664 (emit_fusion_gpr_load): Likewise.
6665 (expand_fusion_gpr_load): Add new function declaration.
6666
6667 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
6668 signature to have the operands passed as an array, instead of as
6669 separate arguments. Allow ZERO_EXTEND to be in the memory
6670 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
6671 depend on the register live/dead flags when peepholes are run.
6672 (expand_fusion_gpr_load): New function to be called from the
6673 peephole2 pass, to change the register that addis sets to be the
6674 target register.
6675 (emit_fusion_gpr_load): Change the calling signature to have the
6676 operands passed as an array, instead of as separate arguments.
6677 Allow ZERO_EXTEND to be in the memory address, and also
6678 SIGN_EXTEND if -mpower8-fusion-sign.
6679
6680 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
6681 unspec enumeration.
6682 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
6683 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 6684 depend on the register live/dead state when the peephole pass is done.
f758f299 6685
158f4e4f
DM
66862013-08-16 David Malcolm <dmalcolm@redhat.com>
6687
6688 * gengtype.c (create_user_defined_type): Ensure that the kind
6689 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
6690 declaration is seen before the GTY((user)) marking.
6691
22f8cea5
BE
66922013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
6693
6694 PR target/58105
6695 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
6696
c49bdb2e
JH
66972013-08-16 Jan Hubicka <jh@suse.cz>
6698
6699 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
6700 arugment expected_type.
6701 (gimple_fold_call): Use it.
6702 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
6703 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 6704 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
6705 (try_make_edge_direct_virtual_call): Likewise.
6706 * tree.c (obj_type_ref_class): New.
6707 * tree.h (obj_type_ref_class): Use it.
6708
4042dca9
GDR
67092013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
6710
6711 * sched-vis.c (rtl_slim_pp_initialized): Remove.
6712 (rtl_slim_pp): Likewise.
6713 (init_rtl_slim_pretty_print): Likewise.
6714 (dump_value_slim): Don't call it. Use local pretty printer.
6715 (dump_insn_slim): Likewise.
6716 (dump_rtl_slim): Likewise.
6717 (str_pattern_slim): Likewise.
6718 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
6719 Simplify.
6720
7a460594
JJ
67212013-08-16 Jakub Jelinek <jakub@redhat.com>
6722
639dc669
JJ
6723 PR tree-optimization/58164
6724 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
6725 walk gimple_goto_dest of GIMPLE_GOTO.
6726
7a460594
JJ
6727 PR tree-optimization/58165
6728 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
6729 bi_call must be the last stmt in a bb, don't split_block, instead
6730 use fallthru edge from it and give up if there is none.
6731 Release conds vector when returning early.
6732
e3c02cc7
XDL
67332013-08-14 Xinliang David Li <davidxl@google.com>
6734
6735 * config/i386/i386.c (ix86_option_override_internal):
6736 Remove unused variable and field.
6737
6469da2c
BS
67382013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6739
6740 PR target/57949
22f8cea5 6741 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
6742 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
6743 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
6744 and Linux, correct BLKmode alignment when 128-bit alignment is
6745 required and compatibility flag is not set.
22f8cea5
BE
6746 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
6747 for zero-size arguments when compatibility flag is not set.
6469da2c 6748
4ca890e2
JJ
67492013-08-14 Jakub Jelinek <jakub@redhat.com>
6750
6751 PR tree-optimization/58145
6752 * tree-sra.c (build_ref_for_offset): If prev_base has
6753 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
6754
daec1759 67552013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 6756
daec1759 6757 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 6758 Fix uninitialized variable error.
daec1759 6759
3ad20bd4
XDL
67602013-08-14 Xinliang David Li <davidxl@google.com>
6761
6762 * config/i386/i386.opt: Define two new options.
6763 * config/i386/x86-tune.def: Add arch selector field in macros.
6764 * config/i386/i386.h: Adjust macro definition.
6765 * config/i386/i386.c (ix86_option_override_internal):
6766 Refactor the code.
6767 (parse_mtune_ctrl_str): New function.
6768 (set_ix86_tune_features): New function.
6769 (ix86_function_specific_restore): Call the new helper function.
6770
e839e2a9
AB
67712013-08-14 Andrey Belevantsev <abel@ispras.ru>
6772
6773 PR rtl-optimization/57662
6774 * sel-sched.c (code_motion_process_successors): When the current insn
6775 is removed after the recursive traversal, break from the loop.
6776 Add comments and debug printouts.
6777
27ed665f
JJ
67782013-08-14 Jakub Jelinek <jakub@redhat.com>
6779 Alexandre Oliva <aoliva@redhat.com>
6780
6781 PR target/58067
6782 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
6783 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
6784 there also UNSPEC_PLTOFF.
6785
61c1a609
MP
67862013-08-14 Marek Polacek <polacek@redhat.com>
6787
6788 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
6789 NUM_CONDITIONS bit positions.
6790
0e901c67
CC
67912013-08-13 Cary Coutant <ccoutant@google.com>
6792
6793 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
6794 (attr_checksum): Hash vector contents instead of pointer.
6795 (attr_checksum_ordered): Likewise.
6796
061eff6d
UB
67972013-08-13 Uros Bizjak <ubizjak@gmail.com>
6798
6799 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
6800 when Pmode != word_mode. Add length_address attribute.
6801 (sse3_monitor_<mode>): Merge from sse3_monitor and
6802 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
6803 Pmode != word_mode. Update insn length attribute.
6804 * config/i386/i386.c (ix86_option_override_internal): Update
6805 ix86_gen_monitor selection for merged sse3_monitor insn.
6806
8ec9249b
JB
68072013-08-13 Julian Brown <julian@codesourcery.com>
6808
6809 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
6810 perform invalid legitimization on greater-than-word-size modes for
6811 TARGET_E500_DOUBLE.
6812
761a8eb7
VM
68132013-08-13 Vladimir Makarov <vmakarov@redhat.com>
6814
6815 * ira.c (setup_class_translate_array): Use aclass instead of cl
6816 for classes not fully covered by allocno classes.
6817
99c2bd54
JJ
68182013-08-13 Jakub Jelinek <jakub@redhat.com>
6819
4029a5e0
JJ
6820 PR tree-optimization/57661
6821 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
6822 * tree-inline.c (tree_function_versioning): Initialize it.
6823 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
6824 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
6825 that is not being copied.
6826
99c2bd54
JJ
6827 PR sanitizer/56417
6828 * asan.c (instrument_strlen_call): Fix typo in comment.
6829 Use char * type even for the lhs of POINTER_PLUS_EXPR.
6830
b5f8f063
SE
68312013-08-13 Steve Ellcey <sellcey@mips.com>
6832
6833 * config/mips/mips.md (prefetch): Use lw instead of ld on
6834 loongson in 32bit mode.
6835
4de80584
NC
68362013-08-13 Nick Clifton <nickc@redhat.com>
6837
6838 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
6839
09ce3660
JH
68402013-08-13 Jan Hubicka <jh@suse.cz>
6841
6842 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
6843 introduced edge; fix typo in sanity check.
6844 (cgraph_resolve_speculation): Export; improve diagnostic.
6845 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
6846 speculation at type mismatch.
6847 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
6848 (cgraph_resolve_speculation): Declare.
6849 (symtab_can_be_discarded): New function.
6850 * value-prof.c (gimple_ic_transform): Remove actual transform code.
6851 * ipa-inline-transform.c (speculation_removed): New global var.
6852 (clone_inlined_nodes): See if speculation can be removed.
6853 (inline_call): If speculations was removed, we growths may not match.
6854 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
6855 (speculation_useful_p): New function.
6856 (resolve_noninline_speculation): New function.
6857 (inline_small_functions): Resolve useless speculations.
6858 * ipa-inline.h (speculation_useful_p): Declare
6859 * ipa.c (can_replace_by_local_alias): Simplify.
6860 (ipa_profile): Produce speculative calls in non-lto, too;
6861 add simple cost model; produce local aliases.
6862
f971dc24
DM
68632013-08-13 David Malcolm <dmalcolm@redhat.com>
6864
6865 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 6866 PASS_MANAGER_H.
f971dc24 6867
2e507b9a
PC
68682013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
6869
6870 * config/i386/i386.c (ix86_function_versions): Use error + inform.
6871
c97fd4b8
UB
68722013-08-12 Uros Bizjak <ubizjak@gmail.com>
6873
6874 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
6875 iterator instead of X87MODEF.
6876
68772013-08-12 Perez Read <netfirewall@gmail.com>
6878
6879 PR target/58132
6880 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
6881 operand 0 for intel asm alternative.
6882 (*movabs<mode>_2): Ditto for operand 1.
6883
f4f4204c
JG
68842013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
6885
6886 * config/aarch64/arm_none.h
6887 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
6888
133b1a8e
NC
68892013-08-12 Nick Clifton <nickc@redhat.com>
6890
6891 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
6892
15dd8b3a
YR
68932013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
6894
6895 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
6896 expand for QI/HImode operand to produce more effictive code for
6897 unsigned char(short) --> float(double) conversion.
6898
94109a6a
AM
68992013-08-12 Alexander Monakov <amonakov@ispras.ru>
6900
6901 * doc/invoke.texi: Mention that -ftls-model does not force the final
6902 model.
6903
4e115102
MP
69042013-08-12 Marek Polacek <polacek@redhat.com>
6905 Marc Glisse <marc.glisse@inria.fr>
6906
6907 PR tree-optimization/57980
6908 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
6909 when creating -1 constant.
6910
748d71f3
JH
69112013-08-10 Jan Hubicka <jh@suse.cz>
6912
1f97e193 6913 Workaround binutils PR14342.
748d71f3
JH
6914 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
6915 (gimple_init_edge_profiler): Likewise.
6916 (gimple_gen_ic_func_profiler): Likewise.
6917
5979aa54
JH
69182013-08-09 Jan Hubicka <jh@suse.cz>
6919
6920 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
6921
ad83025e
XDL
69222013-08-09 Xinliang David Li <davidxl@google.com>
6923
6924 * config/i386/stringop.def: New file.
6925 * config/i386/stringop.opt: New file.
6926 * config/i386/i386-opts.h: Include stringopt.def.
6927 * config/i386/i386.opt: Include stringopt.opt.
6928 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 6929 Override default size based stringop inline strategies with options.
ad83025e
XDL
6930 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
6931 New function.
6932
e59df5fd
JH
69332013-08-09 Jan Hubicka <jh@suse.cz>
6934
c97fd4b8 6935 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 6936
634ab819
JH
69372013-08-09 Jan Hubicka <jh@suse.cz>
6938
6939 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
6940 CGRAPH_FREQ_MAX.
6941 (dump_cgraph_node): Dump profile-id.
6942 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
6943 and common_target_probability.
6944 * lto-cgraph.c (lto_output_edge): Stream common targets.
6945 (lto_output_node): Stream profile ids.
6946 (input_node): Stream profile ids.
6947 (input_edge): Stream common targets.
6948 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
6949 * ipa.c: Include value-prof.h
6950 (ipa_profile_generate_summary): Turn indirect call statement histograms
6951 into common targets.
6952 (ipa_profile): Turn common targets into speculative edges.
6953
2fa3d31b
JH
69542013-08-09 Jan Hubicka <jh@suse.cz>
6955
6956 * cgraph.h (cgraph_node): Add profile_id.
6957 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 6958 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
6959 (del_node_map): Update.
6960 (find_func_by_funcdef_no): Replace by ...
6961 (find_func_by_profile_id): ... this one.
6962 (gimple_ic_transform): Do not remove useful histograms when
6963 speculation is not done; dump info when indirect call removal
6964 can happen at LTO.
6965 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
6966 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
6967 (__gcov_indirect_call_profiler_v2): .. this one.
6968 * profile.h (init_node_map): Update.
6969 * coverage.c (coverage_compute_profile_id): New function.
6970 * coverage.h (coverage_compute_profile_id): Declare.
6971 * tree-profile.c (init_ic_make_global_vars): Make
6972 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
6973 (gimple_init_edge_profiler): Update prototype of
6974 __gcov_indirect_call_profiler.
6975 (gimple_gen_ic_func_profiler): Simplify.
6976 (tree_profiling): Use init_node_map
6977
042ae7d2
JH
69782013-08-09 Jan Hubicka <jh@suse.cz>
6979
c97fd4b8
UB
6980 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
6981 non-speculative refs.
042ae7d2
JH
6982 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
6983 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
6984 (cgraph_set_call_stmt): Likewise.
6985 (cgraph_create_edge_1): Fix release checking compilatoin;
6986 clear lto_stmt_uid.
6987 (cgraph_free_edge): Free indirect info.
6988 (cgraph_turn_edge_to_speculative): New function.
6989 (cgraph_speculative_call_info): New function.
6990 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 6991 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
6992 (dump_cgraph_node): Dump speculation.
6993 (verify_edge_count_and_frequency): Accept speculative edges.
6994 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
6995 (verify_cgraph_node): Handle speculation.
6996 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
6997 (cgraph_set_call_stmt): Update prototype.
6998 (cgraph_make_edge_direct): Update prototype.
6999 (cgraph_speculative_call_info): Declare.
7000 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
7001 to change; update call of ipa_find_references.
7002 * ipa-ref.c (ipa_record_reference): Fix return value; clear
7003 lto_stmt_uid and speculative flags.
7004 (ipa_dump_references): Dump speculation.
7005 (ipa_clone_references): Clone speculative flag.
7006 (ipa_clone_referring): Likewise.
7007 (ipa_clone_ref): New function.
7008 (ipa_find_reference): Look into lto_stmt_uids
7009 (ipa_clear_stmts_in_references): Do not clear speculative calls.
7010 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
7011 (ipa_find_reference): Update declaration.
7012 (ipa_clone_ref): Declare.
7013 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
7014 stream speculative flag.
7015 (lto_output_ref): Stream statements uids and speculation.
7016 (input_ref): Likewise.
7017 (input_edge): Stream speuclation.
7018 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
7019 (cgraph_set_call_stmt_including_clones): Handle speculation.
7020 * ipa-inline.c (heap_edge_removal_hook): New function.
7021 (inline_small_functions): Register it.
7022 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
7023 also initialize refs.
7024 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
7025 edge to change.
7026 (try_make_edge_direct_simple_call): Likewise.
7027 (try_make_edge_direct_simple_call): Likewise.
7028 (update_indirect_edges_after_inlining): Likewise.
7029 (remove_described_reference): Look proper lto_stmt_uid.
7030 (propagate_controlled_uses): Likewise.
7031 (propagate_controlled_uses): Liekwise.
7032 * tree-inline.c (copy_bb): Copy speculative edges.
7033 (redirect_all_calls): New function.
c97fd4b8
UB
7034 (copy_cfg_body): Do redirection after loop info is updated.
7035 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 7036
aa1e10cc
JH
70372013-08-09 Jan Hubicka <jh@suse.cz>
7038
7039 * lto-streamer-out.c (output_function): Renumber PHIs.
7040 * lto-streamer-in.c (input_function): Likewise.
7041
66adb8eb
JG
70422013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
7043
7044 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
7045 (get_lane_unsigned): Likewise.
7046 (dup_lane_scalar): Likewise.
7047 (get_lane): enable for VALL.
7048 * config/aarch64/aarch64-simd.md
7049 (aarch64_dup_lane_scalar<mode>): Remove.
7050 (aarch64_get_lane_signed<mode>): Likewise.
7051 (aarch64_get_lane_unsigned<mode>): Likewise.
7052 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
7053 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
7054 (aarch64_get_lane<mode>): Enable for all vector modes.
7055 (aarch64_get_lanedi): Remove misleading constraints.
7056 * config/aarch64/arm_neon.h
7057 (__aarch64_vget_lane_any): Define.
7058 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
7059 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
7060 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
7061 * config/aarch64/iterators.md (VDQQH): New.
7062 (VDQQHS): Likewise.
7063 (vwcore): Likewise.
7064
1f65ae7a
EB
70652013-08-09 Eric Botcazou <ebotcazou@adacore.com>
7066
7067 * configure.ac: Add GAS check for LEON instructions on SPARC.
7068 * configure: Regenerate.
7069 * config.in: Likewise.
7070 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
7071 sparc*-*-* block.
7072 * config/sparc/sparc.opt (LEON, LEON3): New masks.
7073 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
7074 for LEON or LEON3.
7075 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
7076 (AS_LEON_FLAG): New macro.
7077 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
7078 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
7079 Deal with LEON and LEON3 for the memory model.
23a6cb78 7080 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
7081 (atomic_compare_and_swap<mode>_1): Likewise.
7082 (*atomic_compare_and_swap<mode>_1): Likewise.
7083
ff522f7f
ZC
70842013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7085
7086 * config/arm/neon.md (vcond): Fix floating-point vector
7087 comparisons against 0.
7088
cb1cca12
VM
70892013-08-08 Vladimir Makarov <vmakarov@redhat.com>
7090
7091 * lra-constraints.c (emit_spill_move): Remove assert.
7092 (process_alt_operands): Add more debugging
7093 output. Increase reject for spilling into memory. Decrease
7094 reject for reloading scratch.
7095 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
7096
a3719e31
SE
70972013-08-08 Steve Ellcey <sellcey@mips.com>
7098
7099 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
7100 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
7101 micromips incompatible. Add nan2008.
7102 (MULTILIB_DIRNAMES): Add nan2008.
7103 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
7104 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
7105 and micromips incompatible. Add nan2008.
7106 (MULTILIB_DIRNAMES): Add nan2008.
7107 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
7108
f40423e2
RS
71092013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
7110
7111 PR rtl-optimization/58079
7112 * combine.c (combine_simplify_rtx): Avoid using SUBST if
7113 simplify_comparison has widened a comparison with an integer.
7114
869b9125
KT
71152013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7116
7117 * config/arm/neon.md (movmisalign<mode>): Disable when we
7118 don't allow unaligned accesses.
7119 (*movmisalign<mode>_neon_store): Likewise.
7120 (*movmisalign<mode>_neon_load): Likewise.
7121 (*movmisalign<mode>_neon_store): Likewise.
7122 (*movmisalign<mode>_neon_load): Likewise.
7123
71cafea9
JH
71242013-08-08 Jan Hubicka <jh@suse.cz>
7125
7126 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
7127 (make_pass_rebuild_cgraph_edges): Also clear references.
7128 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
7129 * ipa-inline-transform.c (inline_transform): Remove all references
7130 after inlining.
c97fd4b8
UB
7131 * cgraphunit.c (expand_function): Remove all references after
7132 expansion.
71cafea9
JH
7133 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
7134 (ipa_find_reference): Rewrite to iterator.
7135 (remove_stmt_references): Likewise.
7136 (ipa_clear_stmts_in_references): New function.
7137 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
7138 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
7139 clear references.
71cafea9
JH
7140 * ipa-split.c (split_function): Remove references in split function.
7141
27d2e612
RE
71422013-08-08 Richard Earnshaw <rearnsha@arm.com>
7143
7144 PR target/57431
1f65ae7a 7145 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
7146 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
7147
5efc661c
RE
71482013-08-08 Richard Earnshaw <rearnsha@arm.com>
7149
7150 PR target/56979
1f65ae7a 7151 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
7152 suggested mode for the assignment isn't compatible with the
7153 registers required.
7154
f276d31d
BE
71552013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
7156
7157 PR target/58065
7158 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
7159
4b8bc035
XDL
71602013-08-07 Xinliang David Li <davidxl@google.com>
7161
7162 * config/i386/i386.opt: New option -mtune-ctrl=.
7163 * config/i386/x86-tune.def: New file.
7164 * config/i386/i386.h: include x86-tune.def.
7165 * config/i386/i386.c (ix86_option_override_internal):
7166 Parsing -mtune-ctrl= option and set tune features.
7167
12211b99 71682013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
7169
7170 PR other/12081
03b0ee0a 7171 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
7172 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
7173 to gen_2arg_fn_t.
7174
5cf6635b
EB
71752013-08-07 Eric Botcazou <ebotcazou@adacore.com>
7176
7177 * rtl.h (update_alignments): Declare.
7178 * final.c (grow_label_align): New function extracted from...
7179 (shorten_branches): ...here. Call it.
7180 (update_alignments): New function.
7181 * reorg.c (sibling_labels): New variable.
7182 (get_label_before): Add SIBLING parameter. If it is non-zero, push
7183 the new label along with it onto the sibling_labels vector.
7184 (fill_simple_delay_slots): Adjust call to get_label_before.
7185 (fill_slots_from_thread): Likewise.
7186 (relax_delay_slots): Likewise.
7187 (make_return_insns): Likewise.
7188 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
7189
3c8ca1ab
EB
71902013-08-07 Eric Botcazou <ebotcazou@adacore.com>
7191
7192 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
7193 document its semantics.
7194 (diagnostic_report_diagnostic): Adjust accordingly.
7195
5ee5b32c
DM
71962013-08-07 David Malcolm <dmalcolm@redhat.com>
7197
03b0ee0a 7198 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
7199 (sparc_option_override): ...and port to new C++ pass API.
7200 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
7201
abd566fa
PB
72022013-08-07 Peter Bergner <bergner@vnet.ibm.com>
7203
7204 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
7205
2077db1b
CT
72062013-08-06 Caroline Tice <cmtice@google.com>
7207
7208 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
7209 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
7210 * tree-pass.h: Add pass_vtable_verify.
7211 * varasm.c (assemble_variable): Add code to properly set the comdat
7212 section and name for the .vtable_map_vars section.
7213 (assemble_vtyv_preinit_initializer): New function.
7214 (default_sectin_type_flags): Make sure .vtable_map_vars section has
7215 LINK_ONCE flag.
7216 * output.h: Add function decl for assemble_vtv_preinit_initializer.
7217 * vtable-verify.c: New file.
7218 * vtable-verify.h: New file.
7219 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
7220 initialiation levels.
7221 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
7222 * passes.def: Insert pass_vtable_verify.
7223 * aclocal.m4: Reorder includes.
7224 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
7225 -fvtv-counts options.
7226 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
7227 as appropriate, if -fvtable-verify=... is used.
7228 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
7229 -fvtable-verify=... is used.
7230 * Makefile.in (OBJS): Add vtable-verify.o to list.
7231 (vtable-verify.o): Add new build rule.
7232 (GTFILES): Add vtable-verify.c to list.
7233 * common.opt (fvtable-verify=): New flag.
7234 (vtv_priority): Values for fvtable-verify= flag.
7235 (fvtv-counts): New flag.
7236 (fvtv-debug): New flag.
7237 * tree.h (save_vtable_map_decl): New extern function decl.
7238
03085d1c
DM
72392013-08-07 David Malcolm <dmalcolm@redhat.com>
7240
7241 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
7242 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
7243 (pass_data_rl78_devirt): ...new pass_data instance and...
7244 (make_pass_rl78_devirt): ...new function.
7245 (rl78_asm_file_start): Port pass registration to new C++ API.
7246
05555c4a
DM
72472013-08-07 David Malcolm <dmalcolm@redhat.com>
7248
7249 * coretypes.h (rtl_opt_pass): Add.
7250 (gcc::context): Add.
7251 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
7252 (epiphany_init): Port to new C++ pass API.
7253 (epiphany_optimize_mode_switching): Likewise.
7254 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
7255 (pass_manager::get_pass_mode_switching): New.
7256 (pass_manager::get_pass_peephole2): New.
7257 * mode-switching.c (pass_mode_switching): Add clone method.
7258 * recog.c (pass_peephole2): Add clone method.
7259 (pass_split_all_insns): Add clone method.
7260
c5a12e26
DM
72612013-08-06 David Malcolm <dmalcolm@redhat.com>
7262
03b0ee0a
UB
7263 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
7264 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 7265
a2e2a668
JH
72662013-08-06 Jan Hubicka <jh@suse.cz>
7267
7268 * cgraph.c (cgraph_get_body): New function based on lto.c
7269 implementation.
7270 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
7271 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
7272 LTO paths.
a2e2a668
JH
7273 * cgraphunit.c (expand_function): Get body prior expanding.
7274 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
7275 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
7276 really need.
a2e2a668
JH
7277 * passes.c (do_per_function_toporder): Get body.
7278 * tree-inline.c (expand_call_inline): Get body prior inlining it.
7279 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
7280
15682f24
MJ
72812013-08-06 Martin Jambor <mjambor@suse.cz>
7282
7283 PR fortran/57987
7284 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
7285 is not re-finalized. Rename second parameter to no_collect.
7286
78f6dd68
MJ
72872013-08-06 Martin Jambor <mjambor@suse.cz>
7288
7289 PR middle-end/58041
7290 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
7291 MEM_REF has proper alignment information.
7292
12211b99 72932013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
7294
7295 PR other/12081
7296 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
7297 class insn_gen_fn.
7298 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
7299 rtx (*) (rtx, ...) with insn_gen_fn.
7300 * genoutput.c (output_insn_data): Cast gen_? function pointers to
7301 insn_gen_fn::stored_funcptr. Add initializer braces.
7302
8ac69a6c
DM
73032013-08-05 David Malcolm <dmalcolm@redhat.com>
7304
7305 Rewrite how instances of passes are cloned to remove assumptions
7306 about their sizes (thus allowing pass subclasses to have
7307 additional data fields, albeit non-GC-managed ones at this point).
7308
7309 * passes.c (make_pass_instance): Now that passes have clone
7310 methods, rewrite this function to eliminate XNEW and memcpy
7311 calls that used hardcoded sizes. Since this function no longer
7312 creates pass instances, rename it to...
03b0ee0a
UB
7313 (add_pass_instance): ...this. Document the old way that passes were
7314 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
7315 (next_pass_1): Add an initial_pass argument for use by
7316 add_pass_instance.
7317 (position_pass): When adding multiple instances of a pass, use
7318 the pass's clone method, rather than relying on the XNEW/memcpy
7319 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
7320 (pass_manager::pass_manager): When invoking next_pass_1, also supply
7321 the initial instance of the current pass within the pass manager.
8ac69a6c 7322
27a4cd48
DM
73232013-08-05 David Malcolm <dmalcolm@redhat.com>
7324
7325 This is the automated part of the conversion of passes from C
7326 structs to C++ classes.
7327
7328 Patch autogenerated by refactor_passes.py from
7329 https://github.com/davidmalcolm/gcc-refactoring-scripts
7330 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
7331
7332 * asan.c (pass_asan): Convert from a global struct to a subclass of
7333 gimple_opt_pass along with...
7334 (pass_data_asan): ...new pass_data instance and...
7335 (make_pass_asan): ...new function.
7336 (pass_asan_O0): Convert from a global struct to a subclass of
7337 gimple_opt_pass along with...
7338 (pass_data_asan_O0): ...new pass_data instance and...
7339 (make_pass_asan_O0): ...new function.
7340 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
7341 subclass of rtl_opt_pass along with...
7342 (pass_data_inc_dec): ...new pass_data instance and...
7343 (make_pass_inc_dec): ...new function.
7344 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
7345 a subclass of rtl_opt_pass along with...
7346 (pass_data_reorder_blocks): ...new pass_data instance and...
7347 (make_pass_reorder_blocks): ...new function.
7348 (pass_duplicate_computed_gotos): Convert from a global struct to a
7349 subclass of rtl_opt_pass along with...
7350 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
7351 (make_pass_duplicate_computed_gotos): ...new function.
7352 (pass_partition_blocks): Convert from a global struct to a subclass of
7353 rtl_opt_pass along with...
7354 (pass_data_partition_blocks): ...new pass_data instance and...
7355 (make_pass_partition_blocks): ...new function.
7356 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
7357 struct to a subclass of rtl_opt_pass along with...
7358 (pass_data_branch_target_load_optimize1): ...new pass_data instance
7359 and...
7360 (make_pass_branch_target_load_optimize1): ...new function.
7361 (pass_branch_target_load_optimize2): Convert from a global struct to a
7362 subclass of rtl_opt_pass along with...
7363 (pass_data_branch_target_load_optimize2): ...new pass_data instance
7364 and...
7365 (make_pass_branch_target_load_optimize2): ...new function.
7366 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
7367 of rtl_opt_pass along with...
7368 (pass_data_jump): ...new pass_data instance and...
7369 (make_pass_jump): ...new function.
7370 (pass_jump2): Convert from a global struct to a subclass of
7371 rtl_opt_pass along with...
7372 (pass_data_jump2): ...new pass_data instance and...
7373 (make_pass_jump2): ...new function.
7374 * cfgexpand.c (pass_expand): Convert from a global struct to a
7375 subclass of rtl_opt_pass along with...
7376 (pass_data_expand): ...new pass_data instance and...
7377 (make_pass_expand): ...new function.
7378 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
7379 of rtl_opt_pass along with...
7380 (pass_data_free_cfg): ...new pass_data instance and...
7381 (make_pass_free_cfg): ...new function.
7382 (pass_into_cfg_layout_mode): Convert from a global struct to a
7383 subclass of rtl_opt_pass along with...
7384 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
7385 (make_pass_into_cfg_layout_mode): ...new function.
7386 (pass_outof_cfg_layout_mode): Convert from a global struct to a
7387 subclass of rtl_opt_pass along with...
7388 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
7389 (make_pass_outof_cfg_layout_mode): ...new function.
7390 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
7391 struct to a subclass of gimple_opt_pass along with...
7392 (pass_data_build_cgraph_edges): ...new pass_data instance and...
7393 (make_pass_build_cgraph_edges): ...new function.
7394 (pass_rebuild_cgraph_edges): Convert from a global struct to a
7395 subclass of gimple_opt_pass along with...
7396 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
7397 (make_pass_rebuild_cgraph_edges): ...new function.
7398 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
7399 subclass of gimple_opt_pass along with...
7400 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
7401 and...
7402 (make_pass_remove_cgraph_callee_edges): ...new function.
7403 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
7404 struct to a subclass of rtl_opt_pass along with...
7405 (pass_data_stack_adjustments): ...new pass_data instance and...
7406 (make_pass_stack_adjustments): ...new function.
7407 * combine.c (pass_combine): Convert from a global struct to a subclass
7408 of rtl_opt_pass along with...
7409 (pass_data_combine): ...new pass_data instance and...
7410 (make_pass_combine): ...new function.
7411 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
7412 global struct to a subclass of rtl_opt_pass along with...
7413 (pass_data_compare_elim_after_reload): ...new pass_data instance
7414 and...
7415 (make_pass_compare_elim_after_reload): ...new function.
7416 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
7417 of rtl_opt_pass along with...
7418 (pass_data_rtl_cprop): ...new pass_data instance and...
7419 (make_pass_rtl_cprop): ...new function.
7420 * cse.c (pass_cse): Convert from a global struct to a subclass of
7421 rtl_opt_pass along with...
7422 (pass_data_cse): ...new pass_data instance and...
7423 (make_pass_cse): ...new function.
7424 (pass_cse2): Convert from a global struct to a subclass of
7425 rtl_opt_pass along with...
7426 (pass_data_cse2): ...new pass_data instance and...
7427 (make_pass_cse2): ...new function.
7428 (pass_cse_after_global_opts): Convert from a global struct to a
7429 subclass of rtl_opt_pass along with...
7430 (pass_data_cse_after_global_opts): ...new pass_data instance and...
7431 (make_pass_cse_after_global_opts): ...new function.
7432 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
7433 of rtl_opt_pass along with...
7434 (pass_data_ud_rtl_dce): ...new pass_data instance and...
7435 (make_pass_ud_rtl_dce): ...new function.
7436 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
7437 rtl_opt_pass along with...
7438 (pass_data_fast_rtl_dce): ...new pass_data instance and...
7439 (make_pass_fast_rtl_dce): ...new function.
7440 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
7441 a subclass of rtl_opt_pass along with...
7442 (pass_data_df_initialize_opt): ...new pass_data instance and...
7443 (make_pass_df_initialize_opt): ...new function.
7444 (pass_df_initialize_no_opt): Convert from a global struct to a
7445 subclass of rtl_opt_pass along with...
7446 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
7447 (make_pass_df_initialize_no_opt): ...new function.
7448 (pass_df_finish): Convert from a global struct to a subclass of
7449 rtl_opt_pass along with...
7450 (pass_data_df_finish): ...new pass_data instance and...
7451 (make_pass_df_finish): ...new function.
7452 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
7453 rtl_opt_pass along with...
7454 (pass_data_rtl_dse1): ...new pass_data instance and...
7455 (make_pass_rtl_dse1): ...new function.
7456 (pass_rtl_dse2): Convert from a global struct to a subclass of
7457 rtl_opt_pass along with...
7458 (pass_data_rtl_dse2): ...new pass_data instance and...
7459 (make_pass_rtl_dse2): ...new function.
7460 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
7461 subclass of rtl_opt_pass along with...
7462 (pass_data_dwarf2_frame): ...new pass_data instance and...
7463 (make_pass_dwarf2_frame): ...new function.
7464 * except.c (pass_set_nothrow_function_flags): Convert from a global
7465 struct to a subclass of rtl_opt_pass along with...
7466 (pass_data_set_nothrow_function_flags): ...new pass_data instance
7467 and...
7468 (make_pass_set_nothrow_function_flags): ...new function.
7469 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
7470 subclass of rtl_opt_pass along with...
7471 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
7472 and...
7473 (make_pass_convert_to_eh_region_ranges): ...new function.
7474 * final.c (pass_compute_alignments): Convert from a global struct to a
7475 subclass of rtl_opt_pass along with...
7476 (pass_data_compute_alignments): ...new pass_data instance and...
7477 (make_pass_compute_alignments): ...new function.
7478 (pass_final): Convert from a global struct to a subclass of
7479 rtl_opt_pass along with...
7480 (pass_data_final): ...new pass_data instance and...
7481 (make_pass_final): ...new function.
7482 (pass_shorten_branches): Convert from a global struct to a subclass of
7483 rtl_opt_pass along with...
7484 (pass_data_shorten_branches): ...new pass_data instance and...
7485 (make_pass_shorten_branches): ...new function.
7486 (pass_clean_state): Convert from a global struct to a subclass of
7487 rtl_opt_pass along with...
7488 (pass_data_clean_state): ...new pass_data instance and...
7489 (make_pass_clean_state): ...new function.
7490 * function.c (pass_instantiate_virtual_regs): Convert from a global
7491 struct to a subclass of rtl_opt_pass along with...
7492 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
7493 (make_pass_instantiate_virtual_regs): ...new function.
7494 (pass_leaf_regs): Convert from a global struct to a subclass of
7495 rtl_opt_pass along with...
7496 (pass_data_leaf_regs): ...new pass_data instance and...
7497 (make_pass_leaf_regs): ...new function.
7498 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
7499 subclass of rtl_opt_pass along with...
7500 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
7501 and...
7502 (make_pass_thread_prologue_and_epilogue): ...new function.
7503 (pass_match_asm_constraints): Convert from a global struct to a
7504 subclass of rtl_opt_pass along with...
7505 (pass_data_match_asm_constraints): ...new pass_data instance and...
7506 (make_pass_match_asm_constraints): ...new function.
7507 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
7508 subclass of rtl_opt_pass along with...
7509 (pass_data_rtl_fwprop): ...new pass_data instance and...
7510 (make_pass_rtl_fwprop): ...new function.
7511 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
7512 rtl_opt_pass along with...
7513 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
7514 (make_pass_rtl_fwprop_addr): ...new function.
7515 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
7516 rtl_opt_pass along with...
7517 (pass_data_rtl_pre): ...new pass_data instance and...
7518 (make_pass_rtl_pre): ...new function.
7519 (pass_rtl_hoist): Convert from a global struct to a subclass of
7520 rtl_opt_pass along with...
7521 (pass_data_rtl_hoist): ...new pass_data instance and...
7522 (make_pass_rtl_hoist): ...new function.
7523 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
7524 subclass of gimple_opt_pass along with...
7525 (pass_data_lower_cf): ...new pass_data instance and...
7526 (make_pass_lower_cf): ...new function.
7527 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
7528 from a global struct to a subclass of gimple_opt_pass along with...
7529 (pass_data_strength_reduction): ...new pass_data instance and...
7530 (make_pass_strength_reduction): ...new function.
7531 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
7532 of rtl_opt_pass along with...
7533 (pass_data_rtl_ifcvt): ...new pass_data instance and...
7534 (make_pass_rtl_ifcvt): ...new function.
7535 (pass_if_after_combine): Convert from a global struct to a subclass of
7536 rtl_opt_pass along with...
7537 (pass_data_if_after_combine): ...new pass_data instance and...
7538 (make_pass_if_after_combine): ...new function.
7539 (pass_if_after_reload): Convert from a global struct to a subclass of
7540 rtl_opt_pass along with...
7541 (pass_data_if_after_reload): ...new pass_data instance and...
7542 (make_pass_if_after_reload): ...new function.
7543 * init-regs.c (pass_initialize_regs): Convert from a global struct to
7544 a subclass of rtl_opt_pass along with...
7545 (pass_data_initialize_regs): ...new pass_data instance and...
7546 (make_pass_initialize_regs): ...new function.
7547 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
7548 of ipa_opt_pass_d along with...
7549 (pass_data_ipa_cp): ...new pass_data instance and...
7550 (make_pass_ipa_cp): ...new function.
7551 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
7552 global struct to a subclass of gimple_opt_pass along with...
7553 (pass_data_inline_parameters): ...new pass_data instance and...
7554 (make_pass_inline_parameters): ...new function.
7555 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
7556 subclass of gimple_opt_pass along with...
7557 (pass_data_early_inline): ...new pass_data instance and...
7558 (make_pass_early_inline): ...new function.
7559 (pass_ipa_inline): Convert from a global struct to a subclass of
7560 ipa_opt_pass_d along with...
7561 (pass_data_ipa_inline): ...new pass_data instance and...
7562 (make_pass_ipa_inline): ...new function.
7563 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
7564 struct to a subclass of gimple_opt_pass along with...
7565 (pass_data_local_pure_const): ...new pass_data instance and...
7566 (make_pass_local_pure_const): ...new function.
7567 (pass_ipa_pure_const): Convert from a global struct to a subclass of
7568 ipa_opt_pass_d along with...
7569 (pass_data_ipa_pure_const): ...new pass_data instance and...
7570 (make_pass_ipa_pure_const): ...new function.
7571 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
7572 to a subclass of ipa_opt_pass_d along with...
7573 (pass_data_ipa_reference): ...new pass_data instance and...
7574 (make_pass_ipa_reference): ...new function.
7575 * ipa-split.c (pass_split_functions): Convert from a global struct to
7576 a subclass of gimple_opt_pass along with...
7577 (pass_data_split_functions): ...new pass_data instance and...
7578 (make_pass_split_functions): ...new function.
7579 (pass_feedback_split_functions): Convert from a global struct to a
7580 subclass of gimple_opt_pass along with...
7581 (pass_data_feedback_split_functions): ...new pass_data instance and...
7582 (make_pass_feedback_split_functions): ...new function.
7583 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
7584 global struct to a subclass of simple_ipa_opt_pass along with...
7585 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
7586 instance and...
7587 (make_pass_ipa_function_and_variable_visibility): ...new function.
7588 (pass_ipa_free_inline_summary): Convert from a global struct to a
7589 subclass of simple_ipa_opt_pass along with...
7590 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
7591 (make_pass_ipa_free_inline_summary): ...new function.
7592 (pass_ipa_whole_program_visibility): Convert from a global struct to a
7593 subclass of ipa_opt_pass_d along with...
7594 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
7595 and...
7596 (make_pass_ipa_whole_program_visibility): ...new function.
7597 (pass_ipa_profile): Convert from a global struct to a subclass of
7598 ipa_opt_pass_d along with...
7599 (pass_data_ipa_profile): ...new pass_data instance and...
7600 (make_pass_ipa_profile): ...new function.
7601 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
7602 ipa_opt_pass_d along with...
7603 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
7604 (make_pass_ipa_cdtor_merge): ...new function.
7605 * ira.c (pass_ira): Convert from a global struct to a subclass of
7606 rtl_opt_pass along with...
7607 (pass_data_ira): ...new pass_data instance and...
7608 (make_pass_ira): ...new function.
7609 (pass_reload): Convert from a global struct to a subclass of
7610 rtl_opt_pass along with...
7611 (pass_data_reload): ...new pass_data instance and...
7612 (make_pass_reload): ...new function.
7613 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
7614 subclass of rtl_opt_pass along with...
7615 (pass_data_cleanup_barriers): ...new pass_data instance and...
7616 (make_pass_cleanup_barriers): ...new function.
7617 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
7618 of rtl_opt_pass along with...
7619 (pass_data_loop2): ...new pass_data instance and...
7620 (make_pass_loop2): ...new function.
7621 (pass_rtl_loop_init): Convert from a global struct to a subclass of
7622 rtl_opt_pass along with...
7623 (pass_data_rtl_loop_init): ...new pass_data instance and...
7624 (make_pass_rtl_loop_init): ...new function.
7625 (pass_rtl_loop_done): Convert from a global struct to a subclass of
7626 rtl_opt_pass along with...
7627 (pass_data_rtl_loop_done): ...new pass_data instance and...
7628 (make_pass_rtl_loop_done): ...new function.
7629 (pass_rtl_move_loop_invariants): Convert from a global struct to a
7630 subclass of rtl_opt_pass along with...
7631 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
7632 (make_pass_rtl_move_loop_invariants): ...new function.
7633 (pass_rtl_unswitch): Convert from a global struct to a subclass of
7634 rtl_opt_pass along with...
7635 (pass_data_rtl_unswitch): ...new pass_data instance and...
7636 (make_pass_rtl_unswitch): ...new function.
7637 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
7638 subclass of rtl_opt_pass along with...
7639 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
7640 and...
7641 (make_pass_rtl_unroll_and_peel_loops): ...new function.
7642 (pass_rtl_doloop): Convert from a global struct to a subclass of
7643 rtl_opt_pass along with...
7644 (pass_data_rtl_doloop): ...new pass_data instance and...
7645 (make_pass_rtl_doloop): ...new function.
7646 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
7647 a subclass of rtl_opt_pass along with...
7648 (pass_data_lower_subreg): ...new pass_data instance and...
7649 (make_pass_lower_subreg): ...new function.
7650 (pass_lower_subreg2): Convert from a global struct to a subclass of
7651 rtl_opt_pass along with...
7652 (pass_data_lower_subreg2): ...new pass_data instance and...
7653 (make_pass_lower_subreg2): ...new function.
7654 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
7655 struct to a subclass of ipa_opt_pass_d along with...
7656 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
7657 (make_pass_ipa_lto_gimple_out): ...new function.
7658 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
7659 of ipa_opt_pass_d along with...
7660 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
7661 (make_pass_ipa_lto_finish_out): ...new function.
7662 * mode-switching.c (pass_mode_switching): Convert from a global struct
7663 to a subclass of rtl_opt_pass along with...
7664 (pass_data_mode_switching): ...new pass_data instance and...
7665 (make_pass_mode_switching): ...new function.
7666 * modulo-sched.c (pass_sms): Convert from a global struct to a
7667 subclass of rtl_opt_pass along with...
7668 (pass_data_sms): ...new pass_data instance and...
7669 (make_pass_sms): ...new function.
7670 * omp-low.c (pass_expand_omp): Convert from a global struct to a
7671 subclass of gimple_opt_pass along with...
7672 (pass_data_expand_omp): ...new pass_data instance and...
7673 (make_pass_expand_omp): ...new function.
7674 (pass_lower_omp): Convert from a global struct to a subclass of
7675 gimple_opt_pass along with...
7676 (pass_data_lower_omp): ...new pass_data instance and...
7677 (make_pass_lower_omp): ...new function.
7678 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
7679 of gimple_opt_pass along with...
7680 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
7681 (make_pass_diagnose_omp_blocks): ...new function.
7682 * passes.c (pass_early_local_passes): Convert from a global struct to
7683 a subclass of simple_ipa_opt_pass along with...
7684 (pass_data_early_local_passes): ...new pass_data instance and...
7685 (make_pass_early_local_passes): ...new function.
7686 (pass_all_early_optimizations): Convert from a global struct to a
7687 subclass of gimple_opt_pass along with...
7688 (pass_data_all_early_optimizations): ...new pass_data instance and...
7689 (make_pass_all_early_optimizations): ...new function.
7690 (pass_all_optimizations): Convert from a global struct to a subclass
7691 of gimple_opt_pass along with...
7692 (pass_data_all_optimizations): ...new pass_data instance and...
7693 (make_pass_all_optimizations): ...new function.
7694 (pass_all_optimizations_g): Convert from a global struct to a subclass
7695 of gimple_opt_pass along with...
7696 (pass_data_all_optimizations_g): ...new pass_data instance and...
7697 (make_pass_all_optimizations_g): ...new function.
7698 (pass_rest_of_compilation): Convert from a global struct to a subclass
7699 of rtl_opt_pass along with...
7700 (pass_data_rest_of_compilation): ...new pass_data instance and...
7701 (make_pass_rest_of_compilation): ...new function.
7702 (pass_postreload): Convert from a global struct to a subclass of
7703 rtl_opt_pass along with...
7704 (pass_data_postreload): ...new pass_data instance and...
7705 (make_pass_postreload): ...new function.
7706 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
7707 subclass of rtl_opt_pass along with...
7708 (pass_data_gcse2): ...new pass_data instance and...
7709 (make_pass_gcse2): ...new function.
7710 * postreload.c (pass_postreload_cse): Convert from a global struct to
7711 a subclass of rtl_opt_pass along with...
7712 (pass_data_postreload_cse): ...new pass_data instance and...
7713 (make_pass_postreload_cse): ...new function.
7714 * predict.c (pass_profile): Convert from a global struct to a subclass
7715 of gimple_opt_pass along with...
7716 (pass_data_profile): ...new pass_data instance and...
7717 (make_pass_profile): ...new function.
7718 (pass_strip_predict_hints): Convert from a global struct to a subclass
7719 of gimple_opt_pass along with...
7720 (pass_data_strip_predict_hints): ...new pass_data instance and...
7721 (make_pass_strip_predict_hints): ...new function.
7722 * recog.c (pass_peephole2): Convert from a global struct to a subclass
7723 of rtl_opt_pass along with...
7724 (pass_data_peephole2): ...new pass_data instance and...
7725 (make_pass_peephole2): ...new function.
7726 (pass_split_all_insns): Convert from a global struct to a subclass of
7727 rtl_opt_pass along with...
7728 (pass_data_split_all_insns): ...new pass_data instance and...
7729 (make_pass_split_all_insns): ...new function.
7730 (pass_split_after_reload): Convert from a global struct to a subclass
7731 of rtl_opt_pass along with...
7732 (pass_data_split_after_reload): ...new pass_data instance and...
7733 (make_pass_split_after_reload): ...new function.
7734 (pass_split_before_regstack): Convert from a global struct to a
7735 subclass of rtl_opt_pass along with...
7736 (pass_data_split_before_regstack): ...new pass_data instance and...
7737 (make_pass_split_before_regstack): ...new function.
7738 (pass_split_before_sched2): Convert from a global struct to a subclass
7739 of rtl_opt_pass along with...
7740 (pass_data_split_before_sched2): ...new pass_data instance and...
7741 (make_pass_split_before_sched2): ...new function.
7742 (pass_split_for_shorten_branches): Convert from a global struct to a
7743 subclass of rtl_opt_pass along with...
7744 (pass_data_split_for_shorten_branches): ...new pass_data instance
7745 and...
7746 (make_pass_split_for_shorten_branches): ...new function.
7747 * ree.c (pass_ree): Convert from a global struct to a subclass of
7748 rtl_opt_pass along with...
7749 (pass_data_ree): ...new pass_data instance and...
7750 (make_pass_ree): ...new function.
7751 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
7752 subclass of rtl_opt_pass along with...
7753 (pass_data_stack_regs): ...new pass_data instance and...
7754 (make_pass_stack_regs): ...new function.
7755 (pass_stack_regs_run): Convert from a global struct to a subclass of
7756 rtl_opt_pass along with...
7757 (pass_data_stack_regs_run): ...new pass_data instance and...
7758 (make_pass_stack_regs_run): ...new function.
7759 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
7760 subclass of rtl_opt_pass along with...
7761 (pass_data_cprop_hardreg): ...new pass_data instance and...
7762 (make_pass_cprop_hardreg): ...new function.
7763 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
7764 subclass of rtl_opt_pass along with...
7765 (pass_data_reginfo_init): ...new pass_data instance and...
7766 (make_pass_reginfo_init): ...new function.
7767 * regmove.c (pass_regmove): Convert from a global struct to a subclass
7768 of rtl_opt_pass along with...
7769 (pass_data_regmove): ...new pass_data instance and...
7770 (make_pass_regmove): ...new function.
7771 * regrename.c (pass_regrename): Convert from a global struct to a
7772 subclass of rtl_opt_pass along with...
7773 (pass_data_regrename): ...new pass_data instance and...
7774 (make_pass_regrename): ...new function.
7775 * reorg.c (pass_delay_slots): Convert from a global struct to a
7776 subclass of rtl_opt_pass along with...
7777 (pass_data_delay_slots): ...new pass_data instance and...
7778 (make_pass_delay_slots): ...new function.
7779 (pass_machine_reorg): Convert from a global struct to a subclass of
7780 rtl_opt_pass along with...
7781 (pass_data_machine_reorg): ...new pass_data instance and...
7782 (make_pass_machine_reorg): ...new function.
7783 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
7784 of rtl_opt_pass along with...
7785 (pass_data_sched): ...new pass_data instance and...
7786 (make_pass_sched): ...new function.
7787 (pass_sched2): Convert from a global struct to a subclass of
7788 rtl_opt_pass along with...
7789 (pass_data_sched2): ...new pass_data instance and...
7790 (make_pass_sched2): ...new function.
7791 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
7792 to a subclass of rtl_opt_pass along with...
7793 (pass_data_stack_ptr_mod): ...new pass_data instance and...
7794 (make_pass_stack_ptr_mod): ...new function.
7795 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
7796 to a subclass of rtl_opt_pass along with...
7797 (pass_data_rtl_store_motion): ...new pass_data instance and...
7798 (make_pass_rtl_store_motion): ...new function.
7799 * tracer.c (pass_tracer): Convert from a global struct to a subclass
7800 of gimple_opt_pass along with...
7801 (pass_data_tracer): ...new pass_data instance and...
7802 (make_pass_tracer): ...new function.
7803 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
7804 to a subclass of gimple_opt_pass along with...
7805 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
7806 (make_pass_diagnose_tm_blocks): ...new function.
7807 (pass_lower_tm): Convert from a global struct to a subclass of
7808 gimple_opt_pass along with...
7809 (pass_data_lower_tm): ...new pass_data instance and...
7810 (make_pass_lower_tm): ...new function.
7811 (pass_tm_init): Convert from a global struct to a subclass of
7812 gimple_opt_pass along with...
7813 (pass_data_tm_init): ...new pass_data instance and...
7814 (make_pass_tm_init): ...new function.
7815 (pass_tm_mark): Convert from a global struct to a subclass of
7816 gimple_opt_pass along with...
7817 (pass_data_tm_mark): ...new pass_data instance and...
7818 (make_pass_tm_mark): ...new function.
7819 (pass_tm_edges): Convert from a global struct to a subclass of
7820 gimple_opt_pass along with...
7821 (pass_data_tm_edges): ...new pass_data instance and...
7822 (make_pass_tm_edges): ...new function.
7823 (pass_tm_memopt): Convert from a global struct to a subclass of
7824 gimple_opt_pass along with...
7825 (pass_data_tm_memopt): ...new pass_data instance and...
7826 (make_pass_tm_memopt): ...new function.
7827 (pass_ipa_tm): Convert from a global struct to a subclass of
7828 simple_ipa_opt_pass along with...
7829 (pass_data_ipa_tm): ...new pass_data instance and...
7830 (make_pass_ipa_tm): ...new function.
7831 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
7832 subclass of gimple_opt_pass along with...
7833 (pass_data_call_cdce): ...new pass_data instance and...
7834 (make_pass_call_cdce): ...new function.
7835 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
7836 subclass of gimple_opt_pass along with...
7837 (pass_data_build_cfg): ...new pass_data instance and...
7838 (make_pass_build_cfg): ...new function.
7839 (pass_split_crit_edges): Convert from a global struct to a subclass of
7840 gimple_opt_pass along with...
7841 (pass_data_split_crit_edges): ...new pass_data instance and...
7842 (make_pass_split_crit_edges): ...new function.
7843 (pass_warn_function_return): Convert from a global struct to a
7844 subclass of gimple_opt_pass along with...
7845 (pass_data_warn_function_return): ...new pass_data instance and...
7846 (make_pass_warn_function_return): ...new function.
7847 (pass_warn_function_noreturn): Convert from a global struct to a
7848 subclass of gimple_opt_pass along with...
7849 (pass_data_warn_function_noreturn): ...new pass_data instance and...
7850 (make_pass_warn_function_noreturn): ...new function.
7851 (pass_warn_unused_result): Convert from a global struct to a subclass
7852 of gimple_opt_pass along with...
7853 (pass_data_warn_unused_result): ...new pass_data instance and...
7854 (make_pass_warn_unused_result): ...new function.
7855 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
7856 a subclass of gimple_opt_pass along with...
7857 (pass_data_merge_phi): ...new pass_data instance and...
7858 (make_pass_merge_phi): ...new function.
7859 * tree-complex.c (pass_lower_complex): Convert from a global struct to
7860 a subclass of gimple_opt_pass along with...
7861 (pass_data_lower_complex): ...new pass_data instance and...
7862 (make_pass_lower_complex): ...new function.
7863 (pass_lower_complex_O0): Convert from a global struct to a subclass of
7864 gimple_opt_pass along with...
7865 (pass_data_lower_complex_O0): ...new pass_data instance and...
7866 (make_pass_lower_complex_O0): ...new function.
7867 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
7868 subclass of gimple_opt_pass along with...
7869 (pass_data_lower_eh): ...new pass_data instance and...
7870 (make_pass_lower_eh): ...new function.
7871 (pass_refactor_eh): Convert from a global struct to a subclass of
7872 gimple_opt_pass along with...
7873 (pass_data_refactor_eh): ...new pass_data instance and...
7874 (make_pass_refactor_eh): ...new function.
7875 (pass_lower_resx): Convert from a global struct to a subclass of
7876 gimple_opt_pass along with...
7877 (pass_data_lower_resx): ...new pass_data instance and...
7878 (make_pass_lower_resx): ...new function.
7879 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
7880 of gimple_opt_pass along with...
7881 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
7882 (make_pass_lower_eh_dispatch): ...new function.
7883 (pass_cleanup_eh): Convert from a global struct to a subclass of
7884 gimple_opt_pass along with...
7885 (pass_data_cleanup_eh): ...new pass_data instance and...
7886 (make_pass_cleanup_eh): ...new function.
7887 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
7888 to a subclass of simple_ipa_opt_pass along with...
7889 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
7890 (make_pass_ipa_lower_emutls): ...new function.
7891 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
7892 a subclass of gimple_opt_pass along with...
7893 (pass_data_if_conversion): ...new pass_data instance and...
7894 (make_pass_if_conversion): ...new function.
7895 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
7896 subclass of gimple_opt_pass along with...
7897 (pass_data_build_ssa): ...new pass_data instance and...
7898 (make_pass_build_ssa): ...new function.
7899 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
7900 global struct to a subclass of gimple_opt_pass along with...
7901 (pass_data_loop_distribution): ...new pass_data instance and...
7902 (make_pass_loop_distribution): ...new function.
7903 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
7904 subclass of gimple_opt_pass along with...
7905 (pass_data_mudflap_1): ...new pass_data instance and...
7906 (make_pass_mudflap_1): ...new function.
7907 (pass_mudflap_2): Convert from a global struct to a subclass of
7908 gimple_opt_pass along with...
7909 (pass_data_mudflap_2): ...new pass_data instance and...
7910 (make_pass_mudflap_2): ...new function.
7911 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
7912 subclass of gimple_opt_pass along with...
7913 (pass_data_mudflap_1): ...new pass_data instance and...
7914 (make_pass_mudflap_1): ...new function.
7915 (pass_mudflap_2): Convert from a global struct to a subclass of
7916 gimple_opt_pass along with...
7917 (pass_data_mudflap_2): ...new pass_data instance and...
7918 (make_pass_mudflap_2): ...new function.
7919 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
7920 gimple_opt_pass along with...
7921 (pass_data_nrv): ...new pass_data instance and...
7922 (make_pass_nrv): ...new function.
7923 (pass_return_slot): Convert from a global struct to a subclass of
7924 gimple_opt_pass along with...
7925 (pass_data_return_slot): ...new pass_data instance and...
7926 (make_pass_return_slot): ...new function.
7927 * tree-object-size.c (pass_object_sizes): Convert from a global struct
7928 to a subclass of gimple_opt_pass along with...
7929 (pass_data_object_sizes): ...new pass_data instance and...
7930 (make_pass_object_sizes): ...new function.
7931 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
7932 global struct to a subclass of gimple_opt_pass along with...
7933 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
7934 and...
7935 (make_pass_cleanup_cfg_post_optimizing): ...new function.
7936 (pass_fixup_cfg): Convert from a global struct to a subclass of
7937 gimple_opt_pass along with...
7938 (pass_data_fixup_cfg): ...new pass_data instance and...
7939 (make_pass_fixup_cfg): ...new function.
7940 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
7941 (make_pass_mudflap_1): ...new function.
7942 (pass_mudflap_2): Replace declaration with that of...
7943 (make_pass_mudflap_2): ...new function.
7944 (pass_asan): Replace declaration with that of...
7945 (make_pass_asan): ...new function.
7946 (pass_asan_O0): Replace declaration with that of...
7947 (make_pass_asan_O0): ...new function.
7948 (pass_tsan): Replace declaration with that of...
7949 (make_pass_tsan): ...new function.
7950 (pass_tsan_O0): Replace declaration with that of...
7951 (make_pass_tsan_O0): ...new function.
7952 (pass_lower_cf): Replace declaration with that of...
7953 (make_pass_lower_cf): ...new function.
7954 (pass_refactor_eh): Replace declaration with that of...
7955 (make_pass_refactor_eh): ...new function.
7956 (pass_lower_eh): Replace declaration with that of...
7957 (make_pass_lower_eh): ...new function.
7958 (pass_lower_eh_dispatch): Replace declaration with that of...
7959 (make_pass_lower_eh_dispatch): ...new function.
7960 (pass_lower_resx): Replace declaration with that of...
7961 (make_pass_lower_resx): ...new function.
7962 (pass_build_cfg): Replace declaration with that of...
7963 (make_pass_build_cfg): ...new function.
7964 (pass_early_tree_profile): Replace declaration with that of...
7965 (make_pass_early_tree_profile): ...new function.
7966 (pass_cleanup_eh): Replace declaration with that of...
7967 (make_pass_cleanup_eh): ...new function.
7968 (pass_sra): Replace declaration with that of...
7969 (make_pass_sra): ...new function.
7970 (pass_sra_early): Replace declaration with that of...
7971 (make_pass_sra_early): ...new function.
7972 (pass_early_ipa_sra): Replace declaration with that of...
7973 (make_pass_early_ipa_sra): ...new function.
7974 (pass_tail_recursion): Replace declaration with that of...
7975 (make_pass_tail_recursion): ...new function.
7976 (pass_tail_calls): Replace declaration with that of...
7977 (make_pass_tail_calls): ...new function.
7978 (pass_tree_loop): Replace declaration with that of...
7979 (make_pass_tree_loop): ...new function.
7980 (pass_tree_loop_init): Replace declaration with that of...
7981 (make_pass_tree_loop_init): ...new function.
7982 (pass_lim): Replace declaration with that of...
7983 (make_pass_lim): ...new function.
7984 (pass_tree_unswitch): Replace declaration with that of...
7985 (make_pass_tree_unswitch): ...new function.
7986 (pass_predcom): Replace declaration with that of...
7987 (make_pass_predcom): ...new function.
7988 (pass_iv_canon): Replace declaration with that of...
7989 (make_pass_iv_canon): ...new function.
7990 (pass_scev_cprop): Replace declaration with that of...
7991 (make_pass_scev_cprop): ...new function.
7992 (pass_empty_loop): Replace declaration with that of...
7993 (make_pass_empty_loop): ...new function.
7994 (pass_record_bounds): Replace declaration with that of...
7995 (make_pass_record_bounds): ...new function.
7996 (pass_graphite): Replace declaration with that of...
7997 (make_pass_graphite): ...new function.
7998 (pass_graphite_transforms): Replace declaration with that of...
7999 (make_pass_graphite_transforms): ...new function.
8000 (pass_if_conversion): Replace declaration with that of...
8001 (make_pass_if_conversion): ...new function.
8002 (pass_loop_distribution): Replace declaration with that of...
8003 (make_pass_loop_distribution): ...new function.
8004 (pass_vectorize): Replace declaration with that of...
8005 (make_pass_vectorize): ...new function.
8006 (pass_slp_vectorize): Replace declaration with that of...
8007 (make_pass_slp_vectorize): ...new function.
8008 (pass_complete_unroll): Replace declaration with that of...
8009 (make_pass_complete_unroll): ...new function.
8010 (pass_complete_unrolli): Replace declaration with that of...
8011 (make_pass_complete_unrolli): ...new function.
8012 (pass_parallelize_loops): Replace declaration with that of...
8013 (make_pass_parallelize_loops): ...new function.
8014 (pass_loop_prefetch): Replace declaration with that of...
8015 (make_pass_loop_prefetch): ...new function.
8016 (pass_iv_optimize): Replace declaration with that of...
8017 (make_pass_iv_optimize): ...new function.
8018 (pass_tree_loop_done): Replace declaration with that of...
8019 (make_pass_tree_loop_done): ...new function.
8020 (pass_ch): Replace declaration with that of...
8021 (make_pass_ch): ...new function.
8022 (pass_ccp): Replace declaration with that of...
8023 (make_pass_ccp): ...new function.
8024 (pass_phi_only_cprop): Replace declaration with that of...
8025 (make_pass_phi_only_cprop): ...new function.
8026 (pass_build_ssa): Replace declaration with that of...
8027 (make_pass_build_ssa): ...new function.
8028 (pass_build_alias): Replace declaration with that of...
8029 (make_pass_build_alias): ...new function.
8030 (pass_build_ealias): Replace declaration with that of...
8031 (make_pass_build_ealias): ...new function.
8032 (pass_dominator): Replace declaration with that of...
8033 (make_pass_dominator): ...new function.
8034 (pass_dce): Replace declaration with that of...
8035 (make_pass_dce): ...new function.
8036 (pass_dce_loop): Replace declaration with that of...
8037 (make_pass_dce_loop): ...new function.
8038 (pass_cd_dce): Replace declaration with that of...
8039 (make_pass_cd_dce): ...new function.
8040 (pass_call_cdce): Replace declaration with that of...
8041 (make_pass_call_cdce): ...new function.
8042 (pass_merge_phi): Replace declaration with that of...
8043 (make_pass_merge_phi): ...new function.
8044 (pass_split_crit_edges): Replace declaration with that of...
8045 (make_pass_split_crit_edges): ...new function.
8046 (pass_pre): Replace declaration with that of...
8047 (make_pass_pre): ...new function.
8048 (pass_profile): Replace declaration with that of...
8049 (make_pass_profile): ...new function.
8050 (pass_strip_predict_hints): Replace declaration with that of...
8051 (make_pass_strip_predict_hints): ...new function.
8052 (pass_lower_complex_O0): Replace declaration with that of...
8053 (make_pass_lower_complex_O0): ...new function.
8054 (pass_lower_complex): Replace declaration with that of...
8055 (make_pass_lower_complex): ...new function.
8056 (pass_lower_vector): Replace declaration with that of...
8057 (make_pass_lower_vector): ...new function.
8058 (pass_lower_vector_ssa): Replace declaration with that of...
8059 (make_pass_lower_vector_ssa): ...new function.
8060 (pass_lower_omp): Replace declaration with that of...
8061 (make_pass_lower_omp): ...new function.
8062 (pass_diagnose_omp_blocks): Replace declaration with that of...
8063 (make_pass_diagnose_omp_blocks): ...new function.
8064 (pass_expand_omp): Replace declaration with that of...
8065 (make_pass_expand_omp): ...new function.
8066 (pass_expand_omp_ssa): Replace declaration with that of...
8067 (make_pass_expand_omp_ssa): ...new function.
8068 (pass_object_sizes): Replace declaration with that of...
8069 (make_pass_object_sizes): ...new function.
8070 (pass_strlen): Replace declaration with that of...
8071 (make_pass_strlen): ...new function.
8072 (pass_fold_builtins): Replace declaration with that of...
8073 (make_pass_fold_builtins): ...new function.
8074 (pass_stdarg): Replace declaration with that of...
8075 (make_pass_stdarg): ...new function.
8076 (pass_early_warn_uninitialized): Replace declaration with that of...
8077 (make_pass_early_warn_uninitialized): ...new function.
8078 (pass_late_warn_uninitialized): Replace declaration with that of...
8079 (make_pass_late_warn_uninitialized): ...new function.
8080 (pass_cse_reciprocals): Replace declaration with that of...
8081 (make_pass_cse_reciprocals): ...new function.
8082 (pass_cse_sincos): Replace declaration with that of...
8083 (make_pass_cse_sincos): ...new function.
8084 (pass_optimize_bswap): Replace declaration with that of...
8085 (make_pass_optimize_bswap): ...new function.
8086 (pass_optimize_widening_mul): Replace declaration with that of...
8087 (make_pass_optimize_widening_mul): ...new function.
8088 (pass_warn_function_return): Replace declaration with that of...
8089 (make_pass_warn_function_return): ...new function.
8090 (pass_warn_function_noreturn): Replace declaration with that of...
8091 (make_pass_warn_function_noreturn): ...new function.
8092 (pass_cselim): Replace declaration with that of...
8093 (make_pass_cselim): ...new function.
8094 (pass_phiopt): Replace declaration with that of...
8095 (make_pass_phiopt): ...new function.
8096 (pass_forwprop): Replace declaration with that of...
8097 (make_pass_forwprop): ...new function.
8098 (pass_phiprop): Replace declaration with that of...
8099 (make_pass_phiprop): ...new function.
8100 (pass_tree_ifcombine): Replace declaration with that of...
8101 (make_pass_tree_ifcombine): ...new function.
8102 (pass_dse): Replace declaration with that of...
8103 (make_pass_dse): ...new function.
8104 (pass_nrv): Replace declaration with that of...
8105 (make_pass_nrv): ...new function.
8106 (pass_rename_ssa_copies): Replace declaration with that of...
8107 (make_pass_rename_ssa_copies): ...new function.
8108 (pass_sink_code): Replace declaration with that of...
8109 (make_pass_sink_code): ...new function.
8110 (pass_fre): Replace declaration with that of...
8111 (make_pass_fre): ...new function.
8112 (pass_check_data_deps): Replace declaration with that of...
8113 (make_pass_check_data_deps): ...new function.
8114 (pass_copy_prop): Replace declaration with that of...
8115 (make_pass_copy_prop): ...new function.
8116 (pass_vrp): Replace declaration with that of...
8117 (make_pass_vrp): ...new function.
8118 (pass_uncprop): Replace declaration with that of...
8119 (make_pass_uncprop): ...new function.
8120 (pass_return_slot): Replace declaration with that of...
8121 (make_pass_return_slot): ...new function.
8122 (pass_reassoc): Replace declaration with that of...
8123 (make_pass_reassoc): ...new function.
8124 (pass_rebuild_cgraph_edges): Replace declaration with that of...
8125 (make_pass_rebuild_cgraph_edges): ...new function.
8126 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
8127 (make_pass_remove_cgraph_callee_edges): ...new function.
8128 (pass_build_cgraph_edges): Replace declaration with that of...
8129 (make_pass_build_cgraph_edges): ...new function.
8130 (pass_local_pure_const): Replace declaration with that of...
8131 (make_pass_local_pure_const): ...new function.
8132 (pass_tracer): Replace declaration with that of...
8133 (make_pass_tracer): ...new function.
8134 (pass_warn_unused_result): Replace declaration with that of...
8135 (make_pass_warn_unused_result): ...new function.
8136 (pass_diagnose_tm_blocks): Replace declaration with that of...
8137 (make_pass_diagnose_tm_blocks): ...new function.
8138 (pass_lower_tm): Replace declaration with that of...
8139 (make_pass_lower_tm): ...new function.
8140 (pass_tm_init): Replace declaration with that of...
8141 (make_pass_tm_init): ...new function.
8142 (pass_tm_mark): Replace declaration with that of...
8143 (make_pass_tm_mark): ...new function.
8144 (pass_tm_memopt): Replace declaration with that of...
8145 (make_pass_tm_memopt): ...new function.
8146 (pass_tm_edges): Replace declaration with that of...
8147 (make_pass_tm_edges): ...new function.
8148 (pass_split_functions): Replace declaration with that of...
8149 (make_pass_split_functions): ...new function.
8150 (pass_feedback_split_functions): Replace declaration with that of...
8151 (make_pass_feedback_split_functions): ...new function.
8152 (pass_strength_reduction): Replace declaration with that of...
8153 (make_pass_strength_reduction): ...new function.
8154 (pass_ipa_lower_emutls): Replace declaration with that of...
8155 (make_pass_ipa_lower_emutls): ...new function.
8156 (pass_ipa_function_and_variable_visibility): Replace declaration with
8157 that of...
8158 (make_pass_ipa_function_and_variable_visibility): ...new function.
8159 (pass_ipa_tree_profile): Replace declaration with that of...
8160 (make_pass_ipa_tree_profile): ...new function.
8161 (pass_early_local_passes): Replace declaration with that of...
8162 (make_pass_early_local_passes): ...new function.
8163 (pass_ipa_whole_program_visibility): Replace declaration with that
8164 of...
8165 (make_pass_ipa_whole_program_visibility): ...new function.
8166 (pass_ipa_lto_gimple_out): Replace declaration with that of...
8167 (make_pass_ipa_lto_gimple_out): ...new function.
8168 (pass_ipa_increase_alignment): Replace declaration with that of...
8169 (make_pass_ipa_increase_alignment): ...new function.
8170 (pass_ipa_inline): Replace declaration with that of...
8171 (make_pass_ipa_inline): ...new function.
8172 (pass_ipa_free_lang_data): Replace declaration with that of...
8173 (make_pass_ipa_free_lang_data): ...new function.
8174 (pass_ipa_free_inline_summary): Replace declaration with that of...
8175 (make_pass_ipa_free_inline_summary): ...new function.
8176 (pass_ipa_cp): Replace declaration with that of...
8177 (make_pass_ipa_cp): ...new function.
8178 (pass_ipa_reference): Replace declaration with that of...
8179 (make_pass_ipa_reference): ...new function.
8180 (pass_ipa_pure_const): Replace declaration with that of...
8181 (make_pass_ipa_pure_const): ...new function.
8182 (pass_ipa_pta): Replace declaration with that of...
8183 (make_pass_ipa_pta): ...new function.
8184 (pass_ipa_lto_finish_out): Replace declaration with that of...
8185 (make_pass_ipa_lto_finish_out): ...new function.
8186 (pass_ipa_tm): Replace declaration with that of...
8187 (make_pass_ipa_tm): ...new function.
8188 (pass_ipa_profile): Replace declaration with that of...
8189 (make_pass_ipa_profile): ...new function.
8190 (pass_ipa_cdtor_merge): Replace declaration with that of...
8191 (make_pass_ipa_cdtor_merge): ...new function.
8192 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
8193 of...
8194 (make_pass_cleanup_cfg_post_optimizing): ...new function.
8195 (pass_init_datastructures): Replace declaration with that of...
8196 (make_pass_init_datastructures): ...new function.
8197 (pass_fixup_cfg): Replace declaration with that of...
8198 (make_pass_fixup_cfg): ...new function.
8199 (pass_expand): Replace declaration with that of...
8200 (make_pass_expand): ...new function.
8201 (pass_instantiate_virtual_regs): Replace declaration with that of...
8202 (make_pass_instantiate_virtual_regs): ...new function.
8203 (pass_rtl_fwprop): Replace declaration with that of...
8204 (make_pass_rtl_fwprop): ...new function.
8205 (pass_rtl_fwprop_addr): Replace declaration with that of...
8206 (make_pass_rtl_fwprop_addr): ...new function.
8207 (pass_jump): Replace declaration with that of...
8208 (make_pass_jump): ...new function.
8209 (pass_jump2): Replace declaration with that of...
8210 (make_pass_jump2): ...new function.
8211 (pass_lower_subreg): Replace declaration with that of...
8212 (make_pass_lower_subreg): ...new function.
8213 (pass_cse): Replace declaration with that of...
8214 (make_pass_cse): ...new function.
8215 (pass_fast_rtl_dce): Replace declaration with that of...
8216 (make_pass_fast_rtl_dce): ...new function.
8217 (pass_ud_rtl_dce): Replace declaration with that of...
8218 (make_pass_ud_rtl_dce): ...new function.
8219 (pass_rtl_dce): Replace declaration with that of...
8220 (make_pass_rtl_dce): ...new function.
8221 (pass_rtl_dse1): Replace declaration with that of...
8222 (make_pass_rtl_dse1): ...new function.
8223 (pass_rtl_dse2): Replace declaration with that of...
8224 (make_pass_rtl_dse2): ...new function.
8225 (pass_rtl_dse3): Replace declaration with that of...
8226 (make_pass_rtl_dse3): ...new function.
8227 (pass_rtl_cprop): Replace declaration with that of...
8228 (make_pass_rtl_cprop): ...new function.
8229 (pass_rtl_pre): Replace declaration with that of...
8230 (make_pass_rtl_pre): ...new function.
8231 (pass_rtl_hoist): Replace declaration with that of...
8232 (make_pass_rtl_hoist): ...new function.
8233 (pass_rtl_store_motion): Replace declaration with that of...
8234 (make_pass_rtl_store_motion): ...new function.
8235 (pass_cse_after_global_opts): Replace declaration with that of...
8236 (make_pass_cse_after_global_opts): ...new function.
8237 (pass_rtl_ifcvt): Replace declaration with that of...
8238 (make_pass_rtl_ifcvt): ...new function.
8239 (pass_into_cfg_layout_mode): Replace declaration with that of...
8240 (make_pass_into_cfg_layout_mode): ...new function.
8241 (pass_outof_cfg_layout_mode): Replace declaration with that of...
8242 (make_pass_outof_cfg_layout_mode): ...new function.
8243 (pass_loop2): Replace declaration with that of...
8244 (make_pass_loop2): ...new function.
8245 (pass_rtl_loop_init): Replace declaration with that of...
8246 (make_pass_rtl_loop_init): ...new function.
8247 (pass_rtl_move_loop_invariants): Replace declaration with that of...
8248 (make_pass_rtl_move_loop_invariants): ...new function.
8249 (pass_rtl_unswitch): Replace declaration with that of...
8250 (make_pass_rtl_unswitch): ...new function.
8251 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
8252 (make_pass_rtl_unroll_and_peel_loops): ...new function.
8253 (pass_rtl_doloop): Replace declaration with that of...
8254 (make_pass_rtl_doloop): ...new function.
8255 (pass_rtl_loop_done): Replace declaration with that of...
8256 (make_pass_rtl_loop_done): ...new function.
8257 (pass_web): Replace declaration with that of...
8258 (make_pass_web): ...new function.
8259 (pass_cse2): Replace declaration with that of...
8260 (make_pass_cse2): ...new function.
8261 (pass_df_initialize_opt): Replace declaration with that of...
8262 (make_pass_df_initialize_opt): ...new function.
8263 (pass_df_initialize_no_opt): Replace declaration with that of...
8264 (make_pass_df_initialize_no_opt): ...new function.
8265 (pass_reginfo_init): Replace declaration with that of...
8266 (make_pass_reginfo_init): ...new function.
8267 (pass_inc_dec): Replace declaration with that of...
8268 (make_pass_inc_dec): ...new function.
8269 (pass_stack_ptr_mod): Replace declaration with that of...
8270 (make_pass_stack_ptr_mod): ...new function.
8271 (pass_initialize_regs): Replace declaration with that of...
8272 (make_pass_initialize_regs): ...new function.
8273 (pass_combine): Replace declaration with that of...
8274 (make_pass_combine): ...new function.
8275 (pass_if_after_combine): Replace declaration with that of...
8276 (make_pass_if_after_combine): ...new function.
8277 (pass_ree): Replace declaration with that of...
8278 (make_pass_ree): ...new function.
8279 (pass_partition_blocks): Replace declaration with that of...
8280 (make_pass_partition_blocks): ...new function.
8281 (pass_match_asm_constraints): Replace declaration with that of...
8282 (make_pass_match_asm_constraints): ...new function.
8283 (pass_regmove): Replace declaration with that of...
8284 (make_pass_regmove): ...new function.
8285 (pass_split_all_insns): Replace declaration with that of...
8286 (make_pass_split_all_insns): ...new function.
8287 (pass_fast_rtl_byte_dce): Replace declaration with that of...
8288 (make_pass_fast_rtl_byte_dce): ...new function.
8289 (pass_lower_subreg2): Replace declaration with that of...
8290 (make_pass_lower_subreg2): ...new function.
8291 (pass_mode_switching): Replace declaration with that of...
8292 (make_pass_mode_switching): ...new function.
8293 (pass_sms): Replace declaration with that of...
8294 (make_pass_sms): ...new function.
8295 (pass_sched): Replace declaration with that of...
8296 (make_pass_sched): ...new function.
8297 (pass_ira): Replace declaration with that of...
8298 (make_pass_ira): ...new function.
8299 (pass_reload): Replace declaration with that of...
8300 (make_pass_reload): ...new function.
8301 (pass_clean_state): Replace declaration with that of...
8302 (make_pass_clean_state): ...new function.
8303 (pass_branch_prob): Replace declaration with that of...
8304 (make_pass_branch_prob): ...new function.
8305 (pass_value_profile_transformations): Replace declaration with that
8306 of...
8307 (make_pass_value_profile_transformations): ...new function.
8308 (pass_postreload_cse): Replace declaration with that of...
8309 (make_pass_postreload_cse): ...new function.
8310 (pass_gcse2): Replace declaration with that of...
8311 (make_pass_gcse2): ...new function.
8312 (pass_split_after_reload): Replace declaration with that of...
8313 (make_pass_split_after_reload): ...new function.
8314 (pass_branch_target_load_optimize1): Replace declaration with that
8315 of...
8316 (make_pass_branch_target_load_optimize1): ...new function.
8317 (pass_thread_prologue_and_epilogue): Replace declaration with that
8318 of...
8319 (make_pass_thread_prologue_and_epilogue): ...new function.
8320 (pass_stack_adjustments): Replace declaration with that of...
8321 (make_pass_stack_adjustments): ...new function.
8322 (pass_peephole2): Replace declaration with that of...
8323 (make_pass_peephole2): ...new function.
8324 (pass_if_after_reload): Replace declaration with that of...
8325 (make_pass_if_after_reload): ...new function.
8326 (pass_regrename): Replace declaration with that of...
8327 (make_pass_regrename): ...new function.
8328 (pass_cprop_hardreg): Replace declaration with that of...
8329 (make_pass_cprop_hardreg): ...new function.
8330 (pass_reorder_blocks): Replace declaration with that of...
8331 (make_pass_reorder_blocks): ...new function.
8332 (pass_branch_target_load_optimize2): Replace declaration with that
8333 of...
8334 (make_pass_branch_target_load_optimize2): ...new function.
8335 (pass_leaf_regs): Replace declaration with that of...
8336 (make_pass_leaf_regs): ...new function.
8337 (pass_split_before_sched2): Replace declaration with that of...
8338 (make_pass_split_before_sched2): ...new function.
8339 (pass_compare_elim_after_reload): Replace declaration with that of...
8340 (make_pass_compare_elim_after_reload): ...new function.
8341 (pass_sched2): Replace declaration with that of...
8342 (make_pass_sched2): ...new function.
8343 (pass_stack_regs): Replace declaration with that of...
8344 (make_pass_stack_regs): ...new function.
8345 (pass_stack_regs_run): Replace declaration with that of...
8346 (make_pass_stack_regs_run): ...new function.
8347 (pass_df_finish): Replace declaration with that of...
8348 (make_pass_df_finish): ...new function.
8349 (pass_compute_alignments): Replace declaration with that of...
8350 (make_pass_compute_alignments): ...new function.
8351 (pass_duplicate_computed_gotos): Replace declaration with that of...
8352 (make_pass_duplicate_computed_gotos): ...new function.
8353 (pass_variable_tracking): Replace declaration with that of...
8354 (make_pass_variable_tracking): ...new function.
8355 (pass_free_cfg): Replace declaration with that of...
8356 (make_pass_free_cfg): ...new function.
8357 (pass_machine_reorg): Replace declaration with that of...
8358 (make_pass_machine_reorg): ...new function.
8359 (pass_cleanup_barriers): Replace declaration with that of...
8360 (make_pass_cleanup_barriers): ...new function.
8361 (pass_delay_slots): Replace declaration with that of...
8362 (make_pass_delay_slots): ...new function.
8363 (pass_split_for_shorten_branches): Replace declaration with that of...
8364 (make_pass_split_for_shorten_branches): ...new function.
8365 (pass_split_before_regstack): Replace declaration with that of...
8366 (make_pass_split_before_regstack): ...new function.
8367 (pass_convert_to_eh_region_ranges): Replace declaration with that
8368 of...
8369 (make_pass_convert_to_eh_region_ranges): ...new function.
8370 (pass_shorten_branches): Replace declaration with that of...
8371 (make_pass_shorten_branches): ...new function.
8372 (pass_set_nothrow_function_flags): Replace declaration with that of...
8373 (make_pass_set_nothrow_function_flags): ...new function.
8374 (pass_dwarf2_frame): Replace declaration with that of...
8375 (make_pass_dwarf2_frame): ...new function.
8376 (pass_final): Replace declaration with that of...
8377 (make_pass_final): ...new function.
8378 (pass_rtl_seqabstr): Replace declaration with that of...
8379 (make_pass_rtl_seqabstr): ...new function.
8380 (pass_release_ssa_names): Replace declaration with that of...
8381 (make_pass_release_ssa_names): ...new function.
8382 (pass_early_inline): Replace declaration with that of...
8383 (make_pass_early_inline): ...new function.
8384 (pass_inline_parameters): Replace declaration with that of...
8385 (make_pass_inline_parameters): ...new function.
8386 (pass_update_address_taken): Replace declaration with that of...
8387 (make_pass_update_address_taken): ...new function.
8388 (pass_convert_switch): Replace declaration with that of...
8389 (make_pass_convert_switch): ...new function.
8390 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
8391 to a subclass of simple_ipa_opt_pass along with...
8392 (pass_data_ipa_tree_profile): ...new pass_data instance and...
8393 (make_pass_ipa_tree_profile): ...new function.
8394 * tree-sra.c (pass_sra_early): Convert from a global struct to a
8395 subclass of gimple_opt_pass along with...
8396 (pass_data_sra_early): ...new pass_data instance and...
8397 (make_pass_sra_early): ...new function.
8398 (pass_sra): Convert from a global struct to a subclass of
8399 gimple_opt_pass along with...
8400 (pass_data_sra): ...new pass_data instance and...
8401 (make_pass_sra): ...new function.
8402 (pass_early_ipa_sra): Convert from a global struct to a subclass of
8403 gimple_opt_pass along with...
8404 (pass_data_early_ipa_sra): ...new pass_data instance and...
8405 (make_pass_early_ipa_sra): ...new function.
8406 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
8407 subclass of gimple_opt_pass along with...
8408 (pass_data_ccp): ...new pass_data instance and...
8409 (make_pass_ccp): ...new function.
8410 (pass_fold_builtins): Convert from a global struct to a subclass of
8411 gimple_opt_pass along with...
8412 (pass_data_fold_builtins): ...new pass_data instance and...
8413 (make_pass_fold_builtins): ...new function.
8414 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
8415 subclass of gimple_opt_pass along with...
8416 (pass_data_copy_prop): ...new pass_data instance and...
8417 (make_pass_copy_prop): ...new function.
8418 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
8419 global struct to a subclass of gimple_opt_pass along with...
8420 (pass_data_rename_ssa_copies): ...new pass_data instance and...
8421 (make_pass_rename_ssa_copies): ...new function.
8422 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
8423 subclass of gimple_opt_pass along with...
8424 (pass_data_dce): ...new pass_data instance and...
8425 (make_pass_dce): ...new function.
8426 (pass_dce_loop): Convert from a global struct to a subclass of
8427 gimple_opt_pass along with...
8428 (pass_data_dce_loop): ...new pass_data instance and...
8429 (make_pass_dce_loop): ...new function.
8430 (pass_cd_dce): Convert from a global struct to a subclass of
8431 gimple_opt_pass along with...
8432 (pass_data_cd_dce): ...new pass_data instance and...
8433 (make_pass_cd_dce): ...new function.
8434 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
8435 subclass of gimple_opt_pass along with...
8436 (pass_data_dominator): ...new pass_data instance and...
8437 (make_pass_dominator): ...new function.
8438 (pass_phi_only_cprop): Convert from a global struct to a subclass of
8439 gimple_opt_pass along with...
8440 (pass_data_phi_only_cprop): ...new pass_data instance and...
8441 (make_pass_phi_only_cprop): ...new function.
8442 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
8443 subclass of gimple_opt_pass along with...
8444 (pass_data_dse): ...new pass_data instance and...
8445 (make_pass_dse): ...new function.
8446 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
8447 a subclass of gimple_opt_pass along with...
8448 (pass_data_forwprop): ...new pass_data instance and...
8449 (make_pass_forwprop): ...new function.
8450 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
8451 struct to a subclass of gimple_opt_pass along with...
8452 (pass_data_tree_ifcombine): ...new pass_data instance and...
8453 (make_pass_tree_ifcombine): ...new function.
8454 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
8455 subclass of gimple_opt_pass along with...
8456 (pass_data_ch): ...new pass_data instance and...
8457 (make_pass_ch): ...new function.
8458 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
8459 subclass of gimple_opt_pass along with...
8460 (pass_data_tree_loop): ...new pass_data instance and...
8461 (make_pass_tree_loop): ...new function.
8462 (pass_tree_loop_init): Convert from a global struct to a subclass of
8463 gimple_opt_pass along with...
8464 (pass_data_tree_loop_init): ...new pass_data instance and...
8465 (make_pass_tree_loop_init): ...new function.
8466 (pass_lim): Convert from a global struct to a subclass of
8467 gimple_opt_pass along with...
8468 (pass_data_lim): ...new pass_data instance and...
8469 (make_pass_lim): ...new function.
8470 (pass_tree_unswitch): Convert from a global struct to a subclass of
8471 gimple_opt_pass along with...
8472 (pass_data_tree_unswitch): ...new pass_data instance and...
8473 (make_pass_tree_unswitch): ...new function.
8474 (pass_predcom): Convert from a global struct to a subclass of
8475 gimple_opt_pass along with...
8476 (pass_data_predcom): ...new pass_data instance and...
8477 (make_pass_predcom): ...new function.
8478 (pass_vectorize): Convert from a global struct to a subclass of
8479 gimple_opt_pass along with...
8480 (pass_data_vectorize): ...new pass_data instance and...
8481 (make_pass_vectorize): ...new function.
8482 (pass_graphite): Convert from a global struct to a subclass of
8483 gimple_opt_pass along with...
8484 (pass_data_graphite): ...new pass_data instance and...
8485 (make_pass_graphite): ...new function.
8486 (pass_graphite_transforms): Convert from a global struct to a subclass
8487 of gimple_opt_pass along with...
8488 (pass_data_graphite_transforms): ...new pass_data instance and...
8489 (make_pass_graphite_transforms): ...new function.
8490 (pass_check_data_deps): Convert from a global struct to a subclass of
8491 gimple_opt_pass along with...
8492 (pass_data_check_data_deps): ...new pass_data instance and...
8493 (make_pass_check_data_deps): ...new function.
8494 (pass_iv_canon): Convert from a global struct to a subclass of
8495 gimple_opt_pass along with...
8496 (pass_data_iv_canon): ...new pass_data instance and...
8497 (make_pass_iv_canon): ...new function.
8498 (pass_scev_cprop): Convert from a global struct to a subclass of
8499 gimple_opt_pass along with...
8500 (pass_data_scev_cprop): ...new pass_data instance and...
8501 (make_pass_scev_cprop): ...new function.
8502 (pass_record_bounds): Convert from a global struct to a subclass of
8503 gimple_opt_pass along with...
8504 (pass_data_record_bounds): ...new pass_data instance and...
8505 (make_pass_record_bounds): ...new function.
8506 (pass_complete_unroll): Convert from a global struct to a subclass of
8507 gimple_opt_pass along with...
8508 (pass_data_complete_unroll): ...new pass_data instance and...
8509 (make_pass_complete_unroll): ...new function.
8510 (pass_complete_unrolli): Convert from a global struct to a subclass of
8511 gimple_opt_pass along with...
8512 (pass_data_complete_unrolli): ...new pass_data instance and...
8513 (make_pass_complete_unrolli): ...new function.
8514 (pass_parallelize_loops): Convert from a global struct to a subclass
8515 of gimple_opt_pass along with...
8516 (pass_data_parallelize_loops): ...new pass_data instance and...
8517 (make_pass_parallelize_loops): ...new function.
8518 (pass_loop_prefetch): Convert from a global struct to a subclass of
8519 gimple_opt_pass along with...
8520 (pass_data_loop_prefetch): ...new pass_data instance and...
8521 (make_pass_loop_prefetch): ...new function.
8522 (pass_iv_optimize): Convert from a global struct to a subclass of
8523 gimple_opt_pass along with...
8524 (pass_data_iv_optimize): ...new pass_data instance and...
8525 (make_pass_iv_optimize): ...new function.
8526 (pass_tree_loop_done): Convert from a global struct to a subclass of
8527 gimple_opt_pass along with...
8528 (pass_data_tree_loop_done): ...new pass_data instance and...
8529 (make_pass_tree_loop_done): ...new function.
8530 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
8531 struct to a subclass of gimple_opt_pass along with...
8532 (pass_data_cse_reciprocals): ...new pass_data instance and...
8533 (make_pass_cse_reciprocals): ...new function.
8534 (pass_cse_sincos): Convert from a global struct to a subclass of
8535 gimple_opt_pass along with...
8536 (pass_data_cse_sincos): ...new pass_data instance and...
8537 (make_pass_cse_sincos): ...new function.
8538 (pass_optimize_bswap): Convert from a global struct to a subclass of
8539 gimple_opt_pass along with...
8540 (pass_data_optimize_bswap): ...new pass_data instance and...
8541 (make_pass_optimize_bswap): ...new function.
8542 (pass_optimize_widening_mul): Convert from a global struct to a
8543 subclass of gimple_opt_pass along with...
8544 (pass_data_optimize_widening_mul): ...new pass_data instance and...
8545 (make_pass_optimize_widening_mul): ...new function.
8546 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
8547 subclass of gimple_opt_pass along with...
8548 (pass_data_phiopt): ...new pass_data instance and...
8549 (make_pass_phiopt): ...new function.
8550 (pass_cselim): Convert from a global struct to a subclass of
8551 gimple_opt_pass along with...
8552 (pass_data_cselim): ...new pass_data instance and...
8553 (make_pass_cselim): ...new function.
8554 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
8555 subclass of gimple_opt_pass along with...
8556 (pass_data_phiprop): ...new pass_data instance and...
8557 (make_pass_phiprop): ...new function.
8558 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
8559 subclass of gimple_opt_pass along with...
8560 (pass_data_pre): ...new pass_data instance and...
8561 (make_pass_pre): ...new function.
8562 (pass_fre): Convert from a global struct to a subclass of
8563 gimple_opt_pass along with...
8564 (pass_data_fre): ...new pass_data instance and...
8565 (make_pass_fre): ...new function.
8566 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
8567 subclass of gimple_opt_pass along with...
8568 (pass_data_reassoc): ...new pass_data instance and...
8569 (make_pass_reassoc): ...new function.
8570 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
8571 subclass of gimple_opt_pass along with...
8572 (pass_data_sink_code): ...new pass_data instance and...
8573 (make_pass_sink_code): ...new function.
8574 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
8575 subclass of gimple_opt_pass along with...
8576 (pass_data_strlen): ...new pass_data instance and...
8577 (make_pass_strlen): ...new function.
8578 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
8579 struct to a subclass of gimple_opt_pass along with...
8580 (pass_data_build_alias): ...new pass_data instance and...
8581 (make_pass_build_alias): ...new function.
8582 (pass_build_ealias): Convert from a global struct to a subclass of
8583 gimple_opt_pass along with...
8584 (pass_data_build_ealias): ...new pass_data instance and...
8585 (make_pass_build_ealias): ...new function.
8586 (pass_ipa_pta): Convert from a global struct to a subclass of
8587 simple_ipa_opt_pass along with...
8588 (pass_data_ipa_pta): ...new pass_data instance and...
8589 (make_pass_ipa_pta): ...new function.
8590 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
8591 subclass of gimple_opt_pass along with...
8592 (pass_data_uncprop): ...new pass_data instance and...
8593 (make_pass_uncprop): ...new function.
8594 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
8595 global struct to a subclass of gimple_opt_pass along with...
8596 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
8597 (make_pass_late_warn_uninitialized): ...new function.
8598 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
8599 to a subclass of gimple_opt_pass along with...
8600 (pass_data_init_datastructures): ...new pass_data instance and...
8601 (make_pass_init_datastructures): ...new function.
8602 (pass_early_warn_uninitialized): Convert from a global struct to a
8603 subclass of gimple_opt_pass along with...
8604 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
8605 (make_pass_early_warn_uninitialized): ...new function.
8606 (pass_update_address_taken): Convert from a global struct to a
8607 subclass of gimple_opt_pass along with...
8608 (pass_data_update_address_taken): ...new pass_data instance and...
8609 (make_pass_update_address_taken): ...new function.
8610 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
8611 struct to a subclass of gimple_opt_pass along with...
8612 (pass_data_release_ssa_names): ...new pass_data instance and...
8613 (make_pass_release_ssa_names): ...new function.
8614 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
8615 subclass of gimple_opt_pass along with...
8616 (pass_data_stdarg): ...new pass_data instance and...
8617 (make_pass_stdarg): ...new function.
8618 * tree-switch-conversion.c (pass_convert_switch): Convert from a
8619 global struct to a subclass of gimple_opt_pass along with...
8620 (pass_data_convert_switch): ...new pass_data instance and...
8621 (make_pass_convert_switch): ...new function.
8622 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
8623 to a subclass of gimple_opt_pass along with...
8624 (pass_data_tail_recursion): ...new pass_data instance and...
8625 (make_pass_tail_recursion): ...new function.
8626 (pass_tail_calls): Convert from a global struct to a subclass of
8627 gimple_opt_pass along with...
8628 (pass_data_tail_calls): ...new pass_data instance and...
8629 (make_pass_tail_calls): ...new function.
8630 * tree-vect-generic.c (pass_lower_vector): Convert from a global
8631 struct to a subclass of gimple_opt_pass along with...
8632 (pass_data_lower_vector): ...new pass_data instance and...
8633 (make_pass_lower_vector): ...new function.
8634 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
8635 gimple_opt_pass along with...
8636 (pass_data_lower_vector_ssa): ...new pass_data instance and...
8637 (make_pass_lower_vector_ssa): ...new function.
8638 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
8639 to a subclass of gimple_opt_pass along with...
8640 (pass_data_slp_vectorize): ...new pass_data instance and...
8641 (make_pass_slp_vectorize): ...new function.
8642 (pass_ipa_increase_alignment): Convert from a global struct to a
8643 subclass of simple_ipa_opt_pass along with...
8644 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
8645 (make_pass_ipa_increase_alignment): ...new function.
8646 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
8647 gimple_opt_pass along with...
8648 (pass_data_vrp): ...new pass_data instance and...
8649 (make_pass_vrp): ...new function.
8650 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
8651 subclass of simple_ipa_opt_pass along with...
8652 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
8653 (make_pass_ipa_free_lang_data): ...new function.
8654 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
8655 gimple_opt_pass along with...
8656 (pass_data_tsan): ...new pass_data instance and...
8657 (make_pass_tsan): ...new function.
8658 (pass_tsan_O0): Convert from a global struct to a subclass of
8659 gimple_opt_pass along with...
8660 (pass_data_tsan_O0): ...new pass_data instance and...
8661 (make_pass_tsan_O0): ...new function.
8662 * var-tracking.c (pass_variable_tracking): Convert from a global
8663 struct to a subclass of rtl_opt_pass along with...
8664 (pass_data_variable_tracking): ...new pass_data instance and...
8665 (make_pass_variable_tracking): ...new function.
8666 * web.c (pass_web): Convert from a global struct to a subclass of
8667 rtl_opt_pass along with...
8668 (pass_data_web): ...new pass_data instance and...
8669 (make_pass_web): ...new function.
8670 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
8671 declaration with that of...
8672 (make_pass_mode_switch_use): ...new function.
8673 (pass_resolve_sw_modes): Replace declaration with that of...
8674 (make_pass_resolve_sw_modes): ...new function.
8675 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
8676 from a global struct to a subclass of rtl_opt_pass along with...
8677 (pass_data_mode_switch_use): ...new pass_data instance and...
8678 (make_pass_mode_switch_use): ...new function.
8679 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
8680 from a global struct to a subclass of rtl_opt_pass along with...
8681 (pass_data_resolve_sw_modes): ...new pass_data instance and...
8682 (make_pass_resolve_sw_modes): ...new function.
8683 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
8684 struct to a subclass of rtl_opt_pass along with...
8685 (pass_data_insert_vzeroupper): ...new pass_data instance and...
8686 (make_pass_insert_vzeroupper): ...new function.
8687 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
8688 global struct to a subclass of rtl_opt_pass along with...
8689 (pass_data_work_around_errata): ...new pass_data instance and...
8690 (make_pass_work_around_errata): ...new function.
8691 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
8692 struct to a subclass of rtl_opt_pass along with...
8693 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
8694 (make_pass_mips_machine_reorg2): ...new function.
8695
6a389ed5
DM
86962013-08-05 David Malcolm <dmalcolm@redhat.com>
8697
8698 * passes.c (pass_manager::operator new): New.
8699
f7695dbf
DM
87002013-08-05 David Malcolm <dmalcolm@redhat.com>
8701
8702 Handwritten part of conversion of passes to C++ classes.
8703
8704 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
8705 (toplev.o): Add dep on PASS_MANAGER_H.
8706 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
8707 of early local pases to reflect this moving from a global to a
8708 member of gcc::pass_manager.
8709 (cgraph_add_new_function): Likewise.
8710 * lto-cgraph.c (lto_output_node): Update for conversion of
8711 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
8712 * passes.c (opt_pass::clone): New.
8713 (opt_pass::gate): New.
8714 (opt_pass::execute): New.
8715 (opt_pass::opt_pass): New.
8716 (pass_manager::execute_early_local_passes): New.
8717 (pass_manager::execute_pass_mode_switching): new.
8718 (finish_optimization_passes): Convert to...
8719 (pass_manager::finish_optimization_passes): ...this.
8720 (finish_optimization_passes): Update for conversion of passes to
8721 C++ classes.
8722 (register_dump_files_1): Use has_gate since we cannot portably
8723 check a vtable entry against NULL.
8724 (dump_one_pass): Likewise.
8725 (ipa_write_summaries_2): Likewise.
8726 (ipa_write_optimization_summaries_1): Likewise.
8727 (ipa_read_summaries_1): Likewise.
8728 (ipa_read_optimization_summaries_1): Likewise.
8729 (execute_ipa_stmt_fixups): Likewise.
8730 (pass_manager::pass_manager): Rewrite pass-creation, invoking
8731 pass-creation functions rather than wiring up globals, and
8732 storing the results in fields of pass_manager generated using
8733 pass-instances.def.
8734 (pass_manager::dump_profile_report): Update for conversion of
8735 passes to C++ classes.
8736 (pass_manager::execute_ipa_summary_passes): Likewise.
8737 (execute_one_ipa_transform_pass): Likewise.
8738 (execute_one_pass): Use has_gate and has_execute since we cannot
8739 portably check a vtable entry against NULL.
8740 * pass_manager.h (pass_manager::finish_optimization_passes): New.
8741 (pass_manager): Use pass-instances.def to add fields for the
8742 various pass instances.
8743 * toplev.c (finalize): Update for move of
8744 finish_optimization_passes to a method of gcc::pass_manager.
8745 * toplev.h (finish_optimization_passes): Move to method of class
8746 pass_manager.
8747 * tree-pass.h (struct pass_data): New.
03b0ee0a 8748 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
8749 (opt_pass::gate): Convert to virtual function.
8750 (opt_pass::~opt_pass): New.
8751 (opt_pass::clone): New.
8752 (opt_pass::execute): Convert to virtual function.
8753 (opt_pass::opt_pass): New.
8754 (opt_pass::ctxt_): new.
8755 (gimple_opt_pass): Convert to subclass of opt_pass.
8756 (gimple_opt_pass::gimple_opt_pass): New.
8757 (rtl_opt_pass): Convert to subclass of opt_pass.
8758 (rtl_opt_pass::rtl_opt_pass): New.
8759 (ipa_opt_pass_d): Convert to subclass of opt_pass.
8760 (ipa_opt_pass_d::ipa_opt_pass_d): New.
8761 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
8762 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
8763 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
8764 invocation of pass_mode_switching to reflect this moving from a
8765 global to a member of gcc::pass_manager.
8766 (ix86_option_override): Rework how pass_insert_vzeroupper is
8767 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 8768 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 8769
d0b2f831
RE
87702013-08-05 Richard Earnshaw <rearnsha@arm.com>
8771
8772 PR rtl-optimization/57708
8773 * recog.c (peep2_find_free_register): Validate all regs in a
8774 multi-reg mode.
8775
51a5c0c2
JH
87762013-08-05 Jan Hubicka <jh@suse.cz>
8777
8778 PR lto/57602
03b0ee0a
UB
8779 * cgraph.c (verify_cgraph_node): Accept local flags from other
8780 partitions.
51a5c0c2
JH
8781 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
8782 (function_and_variable_visibility): Likewise.
8783 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
8784
65f0a120
GDR
87852013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8786
8787 * graph.c (init_graph_slim_pretty_print): Remove.
8788 (print_graph_cfg): Do not call it. Use local pretty printer.
8789 (start_graph_dump): Likewise.
8790
b3f80694
GDR
87912013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8792
8793 * gimple-pretty-print.c (buffer): Remove.
8794 (initialized): Likewise.
8795 (maybe_init_pretty_print): Likewise.
8796 (print_gimple_stmt): Do not call it. Use non-static local
8797 pretty_printer variable.
8798 (print_gimple_expr): Likewise.
8799 (print_gimple_seq): Likewise.
8800 (gimple_dump_bb): Likewise.
8801
11a877b3
GDR
88022013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8803
8804 * asan.c (asan_pp): Remove.
8805 (asan_pp_initialized): Likewise.
8806 (asan_pp_initialize): Likewise.
8807 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
8808 (asan_emit_stack_protection): Tidy. Use local pretty printer.
8809 (asan_add_global): Likewise.
8810
b066401f
GDR
88112013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
8812
8813 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
8814 * diagnostic.h (diagnostic_flush_buffer): Adjust.
8815 * pretty-print.c (pp_formatted_text_data): Likewise.
8816 (pp_indent): Rename from pp_base_indent.
8817 (pp_format): Rename from pp_base_format.
8818 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
8819 (pp_format_verbatim): Rename from pp_base_format_verbatim.
8820 (pp_flush): Rename from pp_base_flush.
8821 (pp_set_line_maximum_length): Rename from
8822 pp_base_set_line_maximum_length.
8823 (pp_clear_output_area): Rename from pp_base_clear_output_area.
8824 (pp_set_prefix): Rename from pp_base_set_prefix.
8825 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
8826 (pp_emit_prefix): Rename from pp_base_emit_prefix.
8827 (pp_append_text): Rename from pp_base_append_text.
8828 (pp_formatted_text): Rename from pp_base_formatted_text.
8829 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
8830 (pp_remaining_character_count_for_line): Rename from
8831 pp_base_remaining_character_count_for_line.
8832 (pp_newline): Rename from pp_base_newline.
8833 (pp_character): Rename from pp_base_character.
8834 (pp_string): Rename from pp_base_string.
8835 (pp_maybe_space): Rename from pp_base_maybe_space.
8836 * asan.c (asan_pp_string): Adjust.
8837 (asan_emit_stack_protection): Likewise.
8838 (asan_add_global): Likewise.
8839 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
8840 * tree-mudflap.c (mf_varname_tree): Likewise.
8841 * tree-pretty-print.c (pp_tree_identifier): Rename from
8842 pp_base_tree_identifier.
8843 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
8844 Declare as function.
8845
137a1a27
GDR
88462013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
8847
8848 * pretty-print.h (pp_bar_bar): New.
8849 (pp_ampersand_ampersand): Likewise.
8850 (pp_less_equal): Likewise.
8851 (pp_greater_equal): Likewise.
8852 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
8853 printer functions instead of pp_string or operators and punctuators.
8854 (dump_gimple_call): Likewise.
8855 (dump_gimple_omp_for): Likewise.
8856 (dump_gimple_transaction): Likewise.
8857 (dump_gimple_phi): Likewise.
8858 (pp_gimple_stmt_1): Likewise.
8859 * sched-vis.c (print_insn): Likewise.
8860 * tree-mudflap.c (mf_varname_tree): Likewise.
8861 * tree-pretty-print.c (dump_block_node): Likewise.
8862 (dump_generic_node): Likewise.
8863
815effe1
JH
88642013-08-02 Jan Hubicka <jh@suse.cz>
8865
8866 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
8867 boundaries.
8868 * lto-streamer-out.c (tree_is_indexable): Results decls and
8869 parm decls are not indexable.
8870 (DFS_write_tree_body): Do not follow args and results.
8871 (hash_tree): Likewise.
8872 (output_functions): Rearrange so struct function is needed
8873 only when real body is output; be able to also ouptut abstract
8874 functions; output DECL_ARGUMENTS and DECL_RESULT.
8875 (lto_output): When not in WPA, ale store abstract functions.
8876 (write_symbol): Do not care about RESULT_DECL.
8877 (output_symbol_p): Handle correctly sbtract decls.
8878 * lto-streamer-in.c (input_function): Rearrange so struct
8879 function can be NULL at entry; allow streaming of
8880 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
8881 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
8882 sanity check during LTO.
8883 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
8884 RESULT_DECl and DECL_ARGUMENTS.
8885 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
8886 Likewise.
8887
07838b13
GDR
88882013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
8889
8890 * pretty-print.h (pp_underscore): New.
8891 (pp_comma): Tidy.
8892 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
8893 printer functions instead of pp_character.
8894 (dump_binary_rhs): Likewise.
8895 (dump_ternary_rhs): Likewise.
8896 (dump_gimple_call_args): Likewise.
8897 (pp_points_to_solution): Likewise.
8898 (dump_gimple_call): Likewise.
8899 (dump_gimple_switch): Likewise.
8900 (dump_gimple_cond): Likewise.
8901 (dump_gimple_bind): Likewise.
8902 (dump_gimple_try): Likewise.
8903 (dump_gimple_omp_for): Likewise.
8904 (dump_gimple_omp_continue): Likewise.
8905 (dump_gimple_omp_single): Likewise.
8906 (dump_gimple_omp_sections): Likewise.
8907 (dump_gimple_omp_block): Likewise.
8908 (dump_gimple_omp_critical): Likewise.
8909 (dump_gimple_transaction): Likewise.
8910 (dump_gimple_asm): Likewise.
8911 (dump_gimple_phi): Likewise.
8912 (dump_gimple_omp_parallel): Likewise.
8913 (dump_gimple_omp_task): Likewise.
8914 (dump_gimple_omp_atomic_load): Likewise.
8915 (dump_gimple_omp_atomic_store): Likewise.
8916 (dump_gimple_mem_ops): Likewise.
8917 (pp_gimple_stmt_1): Likewise.
8918 (pp_cfg_jump): Likewise.
8919 (dump_implicit_edges): Likewise.
8920 (gimple_dump_bb_for_graph): Likewise.
8921 * graph.c (draw_cfg_node): Likewise.
8922 * langhooks.c (lhd_print_error_function): Likewise.
8923 * sched-vis.c (print_exp): Likewise.
8924 (print_value): Likewise.
8925 (print_pattern): Likewise.
8926 (print_insn): Likewise.
8927 (rtl_dump_bb_for_graph): Likewise.
8928 * tree-pretty-print.c (dump_function_declaration): Likewise.
8929 (dump_array_domain): Likewise.
8930 (dump_omp_clause): Likewise.
8931 (dump_location): Likewise.
8932 (dump_generic_node): Likewise.
8933 (print_struct_decl): Likewise.
8934 * diagnostic.c (diagnostic_show_locus): Use pp_space.
8935
bb0d2039
BS
89362013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
8937
8938 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
8939 candidate table when replacing a candidate statement.
8940 (replace_rhs_if_not_dup): Likewise.
8941 (replace_one_candidate): Likewise.
8942
bc0ec027 89432013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 8944 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
8945
8946 * cgraphunit.c (add_new_function): Fix logic when adding from
8947 late IPA pass.
8948 (assemble_thunk): Rename to ...
03b0ee0a
UB
8949 (expand_thunk); .. this one; export; get it working with
8950 general functions; make produced gimple valid.
bc0ec027
JH
8951 * cgraph.h (expand_thunk): Declare.
8952
0e8853ee
JH
89532013-08-02 Jan Hubicka <jh@suse.cz>
8954
03b0ee0a
UB
8955 * ipa-cp.c (gather_context_independent_values): Use
8956 ipa_get_param_move_cost.
8957 (get_replacement_map): Remove PARAM; move parameter folding
8958 into tree-inline.c
0e8853ee
JH
8959 (create_specialized_node): Update.
8960 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
8961 assert that we have gimple body; update move_cost.
8962 (count_formal_params): Assert that we have gimple body.
8963 (ipa_dump_param): New function.
8964 (ipa_alloc_node_params): Break out from ...
8965 (ipa_initialize_node_params): ... here.
8966 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
8967 (ipa_write_node_info): Stream move costs.
8968 (ipa_read_node_info): Read move costs.
8969 (ipa_update_after_lto_read): Do not recompute node params.
8970 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
8971 (ipa_get_param): Check we are not in WPA.
8972 (ipa_get_param_move_cost): New.
8973 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
8974 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
8975 parm numbers to be present.
8976
ecee672b
VM
89772013-08-02 Vladimir Makarov <vmakarov@redhat.com>
8978
8979 PR rtl-optimization/58048
8980 * lra-constraints.c (process_alt_operands): Don't check asm
8981 operand on register.
8982
13ec0527
EB
89832013-08-02 Eric Botcazou <ebotcazou@adacore.com>
8984
8985 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
8986 the implied StoreLoad barrier for atomic operations if before.
8987
af15184a
JH
89882013-08-02 Jan Hubicka <jh@suse.cz>
8989 Martin Liska <marxin.liska@gmail.com>
8990
03b0ee0a
UB
8991 * cgraph.c (cgraph_function_body_availability): Do not check
8992 cgraph flags.
af15184a
JH
8993 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
8994 symtab_node_availability): Declare.
8995 * ipa.c (can_replace_by_local_alias): New.
8996 (function_and_variable_visibility): Use it.
03b0ee0a
UB
8997 * symtab.c (symtab_for_node_and_aliases,
8998 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 8999
01e54ef8
VM
90002013-08-02 Vladimir Makarov <vmakarov@redhat.com>
9001
9002 PR rtl-optimization/57963
03b0ee0a 9003 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
9004 (lra_constraints): Use them.
9005
e2fd7ca7
SN
90062013-08-02 Sofiane Naci <sofiane.naci@arm.com>
9007
03b0ee0a
UB
9008 * config/arm/types.md (define_attr "type"): Add "load_acq"
9009 and "store_rel".
e2fd7ca7
SN
9010 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
9011 changes.
9012 (cortex_a53_store1): Likewise.
9013
0dcc26c3
JH
90142013-08-01 Jan Hubicka <jh@suse.cz>
9015
03b0ee0a
UB
9016 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
9017 partitions are not needed.
0dcc26c3 9018
0bd72901
UB
90192013-08-01 Uros Bizjak <ubizjak@gmail.com>
9020
9021 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
9022 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
9023 MAYBE_NON_Q_CLASS_P where appropriate.
9024
12123452
JH
90252013-08-01 Jan Hubicka <jh@suse.cz>
9026
9027 * cgraph.h (release_function_body): Declare.
9028 * tree.c (free_lang_data_in_decl): Free, parameters and return values
9029 of unused delcarations.
9030
ce852f9c
KT
90312013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9032
03b0ee0a
UB
9033 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
9034 RTL form when subtracting a constant.
ce852f9c 9035
c743b246
KT
90362013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9037
9038 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
9039 Generate canonical plus rtx with negated immediate instead of minus
9040 where appropriate.
9041 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
9042
c0c123ef
JH
90432013-08-01 Jan Hubicka <jh@suse.cz>
9044
9045 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
9046 (cgraph_release_function_body): Likewise.
9047 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
9048 * cgraph.h (cgrpah_node): Rename abstract_and_needed
9049 to used_as_abstract_origin.
9050 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
9051 symbols used as abstract origins.
9052 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
9053 * ipa.c (symtab_remove_unreachable_nodes): Recompute
9054 used_as_abstract_origin.
c0c123ef 9055 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
9056 used_as_abstract_origin; be ready for DECL_RESULT and
9057 DECL_ARGUMENTS to be NULL.
c0c123ef 9058
0bd72901
UB
9059 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
9060 for abstract functions.
9061 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
9062 real symbols.
c0c123ef 9063
1f029433
JH
90642013-08-01 Jan Hubicka <jh@suse.cz>
9065
9066 * profile.c (compute_value_histograms): Fix thinko.
9067
c451f4d6
SN
90682013-08-01 Sofiane Naci <sofiane.naci@arm.com>
9069
9070 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
9071 aarch-common-protos.h to extra_headers.
9072 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
9073 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
9074 * config/aarch64/t-aarch64 (aarch-common.o): Define.
9075
34b512f5
SN
90762013-08-01 Sofiane Naci <sofiane.naci@arm.com>
9077
9078 * config/aarch64/aarch64.md (define_attr "type"): Delete.
9079 Include "../arm/types.md". Define "type" attribute for all patterns.
9080 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
9081 attribute changes.
9082
d86e633a
MM
90832013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
9084
9085 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
9086 to support power8 load fusion.
9087 (fusion_gpr_mem_load): Likewise.
9088
9089 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
9090
9091 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
9092 declarations for power8 load fusion.
9093 (emit_fusion_gpr_load): Likewise.
9094
9095 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9096 tuning for power8, turn on fusion mode by default. Turn on sign
9097 extending fusion mode if normal fusion mode is on, and we are at
9098 -O2 or -O3.
9099 (fusion_gpr_load_p): New function, return true if we can fuse an
9100 addis instruction with a dependent load to a GPR.
9101 (emit_fusion_gpr_load): Emit the instructions for power8 load
9102 fusion to GPRs.
9103
0bd72901 9104 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
9105 (VSX load fusion peepholes): New peepholes to fuse together an
9106 addi instruction with a VSX load instruction.
9107
9108 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
9109 peepholes to fuse an addis instruction with a load to a GPR base
9110 register. If we are supporting sign extending fusions, convert
9111 sign extending loads to zero extending loads and add an explicit
9112 sign extension.
9113
c3f35647
SN
91142013-07-31 Sofiane Naci <sofiane.naci@arm.com>
9115
9116 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
9117 aarch-common-protos.h to extra_headers.
9118 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
9119 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
9120 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
9121 (arm_no_early_alu_shift_dep): Likewise.
9122 (arm_no_early_alu_shift_value_dep): Likewise.
9123 (arm_no_early_mul_dep): Likewise.
9124 (arm_no_early_store_addr_dep): Likewise.
9125 (arm_mac_accumulator_is_mul_result): Likewise.
9126 (arm_mac_accumulator_is_result): Likewise.
c3f35647 9127 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
9128 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
9129 here to ...
c3f35647 9130 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
9131 (arm_no_early_alu_shift_dep): Likewise.
9132 (arm_no_early_alu_shift_value_dep): Likewise.
9133 (arm_no_early_mul_dep): Likewise.
9134 (arm_no_early_store_addr_dep): Likewise.
9135 (arm_mac_accumulator_is_mul_result): Likewise.
9136 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
9137 * config/arm/aarch-common-protos.h: ... here. New file.
9138 * config/arm/t-arm (aarch-common.o): Define.
9139
91402013-07-31 Sofiane Naci <sofiane.naci@arm.com>
9141
9142 * config/arm/arm.md: Include new file "types.md".
9143 (define_attr "type"): Move from here to ...
9144 (define_attr "mul32"): Likewise.
9145 (define_attr "mul64"): Likewise.
9146 * config/arm/types.md: ... here. New file.
9147
228c1313
SH
91482013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
9149
9150 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
9151 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
9152
d6e9046d 91532013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
9154
9155 * gen-pass-instances.awk: Fix offset of substr().
9156
a167b052
DM
91572013-07-31 David Malcolm <dmalcolm@redhat.com>
9158
9159 * Makefile.in (pass-instances.def): New.
9160 (passes.o): Replace dependency on passes.def with one on
9161 pass-instances.def
9162
9163 * gen-pass-instances.awk: New.
9164
9165 * passes.c (pass_manager::pass_manager): Use pass-instances.def
9166 rather than passes.def, updating local definition of NEXT_PASS
9167 macro to add an extra NUM parameter (currently unused).
9168
315f8c0e
DM
91692013-07-30 David Malcolm <dmalcolm@redhat.com>
9170
9171 * Makefile.in (PASS_MANAGER_H): New.
9172 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
9173 (passes.o): Likewise.
9174 (statistics.o): Likewise.
9175 (cgraphunit.o): Likewise.
9176 (context.o): Depend on PASS_MANAGER_H.
9177
9178 * pass_manager.h: New.
9179
9180 * cgraphunit.c (cgraph_add_new_function): Update for moves
9181 of globals to fields of pass_manager.
9182 (analyze_function): Likewise.
9183 (expand_function): Likewise.
9184 (ipa_passes): Likewise.
9185 (compile): Likewise.
9186
9187 * context.c (context::context): New.
9188 * context.h (context::context): New.
9189 (context::get_passes): New.
9190 (context::passes_): New.
9191
9192 * lto-cgraph.c (input_node): Update for moves of globals to
9193 fields of pass_manager.
9194
9195 * passes.c (all_passes): Remove, in favor of a field of the
9196 same name within the new class pass_manager.
9197 (all_small_ipa_passes): Likewise.
9198 (all_lowering_passes): Likewise.
9199 (all_regular_ipa_passes): Likewise.
9200 (all_late_ipa_passes): Likewise.
9201 (all_lto_gen_passes): Likewise.
9202 (passes_by_id): Likewise.
9203 (passes_by_id_size): Likewise.
9204 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
9205 the new class pass_manager.
9206 (set_pass_for_id): Convert to...
9207 (pass_manager::set_pass_for_id): ...method.
9208 (get_pass_for_id): Convert to...
9209 (pass_manager::get_pass_for_id): ...method.
9210 (register_one_dump_file): Move body of implementation into...
9211 (pass_manager::register_one_dump_file): ...here.
9212 (register_dump_files_1): Convert to...
9213 (pass_manager::register_dump_files_1): ...method.
9214 (register_dump_files): Convert to...
9215 (pass_manager::register_dump_files): ...method.
9216 (create_pass_tab): Update for moves of globals to fields of
9217 pass_manager.
9218 (dump_passes): Move body of implementation into...
9219 (pass_manager::dump_passes): ...here.
9220 (register_pass): Move body of implementation into...
9221 (pass_manager::register_pass): ...here.
9222 (init_optimization_passes): Convert into...
9223 (pass_manager::pass_manager): ...constructor for new
9224 pass_manager class, and initialize the pass_lists array.
9225 (check_profile_consistency): Update for moves of globals to
9226 fields of pass_manager.
9227 (dump_profile_report): Move body of implementation into...
9228 (pass_manager::dump_profile_report): ...here.
9229 (ipa_write_summaries_1): Update for moves of pass lists from
9230 being globals to fields of pass_manager.
9231 (ipa_write_optimization_summaries): Likewise.
9232 (ipa_read_summaries): Likewise.
9233 (ipa_read_optimization_summaries): Likewise.
9234 (execute_all_ipa_stmt_fixups): Likewise.
9235
9236 * statistics.c (statistics_fini): Update for moves of globals to
9237 fields of pass_manager.
9238
9239 * toplev.c (general_init): Replace call to
9240 init_optimization_passes with construction of the pass_manager
9241 instance.
9242
9243 * tree-pass.h (all_passes): Remove, in favor of a field of the
9244 same name within the new class pass_manager.
9245 (all_small_ipa_passes): Likewise.
9246 (all_lowering_passes): Likewise.
9247 (all_regular_ipa_passes): Likewise.
9248 (all_lto_gen_passes): Likewise.
9249 (all_late_ipa_passes): Likewise.
9250 (passes_by_id): Likewise.
9251 (passes_by_id_size): Likewise.
9252 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
9253 the new class pass_manager.
9254 (get_pass_for_id): Remove.
9255
02cab1c1
RE
92562013-07-30 Richard Earnshaw <rearnsha@arm.com>
9257
9258 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
9259 configs.
9260
b2d3f886
RE
92612013-07-30 Richard Earnshaw <rearnsha@arm.com>
9262
9263 * arm.md (mulhi3): New expand pattern.
9264
605e86fa
JH
92652013-07-30 Jan Hubicka <jh@suse.cz>
9266 Martin Liska <marxin.liska@gmail.com>
9267
9268 * profile.c (compute_value_histograms): Do not ICE when
9269 there is mismatch only on some counters.
9270
14a87636
ZC
92712013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9272
9273 PR rtl-optimization/57637
9274 * function.c (move_insn_for_shrink_wrap): Also check the
9275 GEN set of the LIVE problem for the liveness analysis
9276 if it exists, otherwise give up.
9277
0100cd3f
BS
92782013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9279
9280 PR tree-optimization/57993
9281 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
9282 replaced statement in the candidate table.
9283 (phi_add_costs): Return infinite cost when the hidden basis does
9284 not dominate all phis on which the candidate is dependent.
9285 (replace_one_candidate): Record replaced statement in the
9286 candidate table.
9287
f0d811f7
JR
92882013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
9289
9290 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
9291 (ashlv2si3): New expander.
9292 (*ashlv2si3_i): New define_insn_and_split.
9293 * predicates.md (float_operation): Allow patterns with three
9294 basic sub-patterns.
9295
bba33211
JR
9296 PR rtl-optimization/58021
9297 * mode-switching.c (create_pre_exit): Always split off preceding
9298 insns if we are not at the basic block head.
9299
ff3f3951
MR
93002013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
9301
9302 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
9303 (UCLIBC_DYNAMIC_LINKER): New macro.
9304 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
9305 `-mnan=2008'.
9306 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
9307 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
9308 `-mnan=2008'.
9309 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
9310 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
9311 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
9312 for SF and DF modes. Use ieee_quad_format for TF mode.
9313 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
9314 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
9315 (mips_option_override): Handle `-mnan=legacy'.
9316 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
9317 `-mabs=2008' and `-mnan=2008'.
9318 (OPTION_DEFAULT_SPECS): Add "nan" default.
9319 (ASM_SPEC): Handle `-mnan='.
9320 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
9321 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
9322 comment accordingly.
9323 (neg<mode>2): Likewise.
9324 * config/mips/mips.opt (mabs, mnan): New options.
9325 * doc/install.texi (Configuration): Document `--with-nan=' option.
9326 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
9327 `-mnan=' options.
9328 (MIPS Options): Document them.
9329 * config.gcc <mips*-*-*>: Handle `--with-nan='.
9330 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
9331 * configure: Regenerate.
9332 * config.in: Regenerate.
9333
576e2f37
UB
93342013-07-29 Uros Bizjak <ubizjak@gmail.com>
9335
9336 * config/i386/i386.md (float post-reload splitters): Do not check
9337 for subregs of SSE registers.
9338
93392013-07-29 Uros Bizjak <ubizjak@gmail.com>
9340 H.J. Lu <hongjiu.lu@intel.com>
9341
9342 PR target/57954
9343 PR target/57988
9344 * config/i386/i386.md (post-reload splitter
9345 to avoid partial SSE reg dependency stalls): New pattern.
9346
a71f0749
DV
93472013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9348
9349 * config/s390/s390.md ("movcc"): Swap load and store instructions.
9350
4c97f1cc
JR
93512013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
9352
9353 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
9354 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
9355
b0c733d8
CC
93562013-07-26 Cary Coutant <ccoutant@google.com>
9357
9358 * dwarf2out.c (die_checksum_ordered): Don't include template
9359 instantiations in signature.
9360 (is_template_parameter): New function.
9361 (is_template_instantiation): New function.
9362 (generate_skeleton_bottom_up): Don't include template instantiations
9363 in type unit DIE.
9364 (generate_skeleton): Likewise.
9365 (break_out_comdat_types): Move recursive call to break out nested
9366 types earlier.
9367 (prune_unused_types_mark_generic_parms_dies): Call
9368 is_template_parameter.
9369
040d8a1c
IB
93702013-07-26 Ian Bolton <ian.bolton@arm.com>
9371
9372 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
9373 uses vector registers.
89fdc743 9374 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 9375
85bd4ac6 93762013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 9377 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
9378
9379 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 9380 where appropriate.
85bd4ac6
KT
9381 * config/arm/arm.md (movcond_addsi): New splitter.
9382
b6051207
SA
93832013-07-25 Sterling Augustine <saugustine@google.com>
9384
9385 * dwarf2out.c (size_of_pubnames): Move code to...
9386 (include_pubname_in_output): ...here. New.
9387 (want_pubnames): Rearrange.
9388 (output_pubnames): Call include_pubname_in_output. Move assertion.
9389
41a7c215
CM
93902013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
9391
9392 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
9393
93942013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
9395
9396 PR target/38836
9397 * doc/extend.texi: Remove obsolete builtins. Fix
9398 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
9399
49bde175
JH
94002013-07-25 Jan Hubicka <jh@suse.cz>
9401
9402 * cgraph.c (release_function_body): Break out from ...
9403 (cgraph_release_function_body): ... this one; also release DECL_RESULT
9404 and DECL_ARGUMENTS.
9405 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
9406 old_tree in the map.
9407 (create_specialized_node): Update.
9408 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
9409 into index.
41a7c215
CM
9410 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
9411 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
9412 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
9413 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
9414 DECL_RESULT.
9415
4870352d
KT
94162013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9417
9418 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
9419 addsi3_carryin_alt2_<optab>): Correct output template.
9420
1d6aee1c
KT
94212013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9422
9423 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
9424 Adjust for arm_restrict_it.
9425 Remove trailing whitespace.
9426
c7cafd75
MK
94272013-07-25  Mark Kettenis  <kettenis@openbsd.org>
9428
017d38f5
MK
9429 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
9430 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
9431
c7cafd75
MK
9432 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
9433
00b7527b
VM
94342013-07-25 Vladimir Makarov <vmakarov@redhat.com>
9435
9436 PR rtl-optimization/57960
9437 * lra-constraints.c (process_alt_operands): Use the right mode
9438 when checking strict_low.
9439
4f63dfc6
JH
94402013-07-25 Jan Hubicka <jh@suse.cz>
9441
9442 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
9443 * cgraph.c (cgraph_remove_node): Do not release function body
9444 when in cgraph streaming.
9445 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
9446 in other partitions are not considered reachable; fix handling of
9447 clones.
4f63dfc6 9448
e6dcfa18
RR
94492013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9450
9451 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
9452
0b93d3b6
RR
94532013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9454
9455 PR target/19599
9456 PR target/57731
bb80c2eb 9457 PR target/57837
e6dcfa18 9458 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 9459 Ss with US. Adjust output for v5 and v4t.
41a7c215 9460 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 9461
0b93d3b6
RR
9462 * config/arm/constraints.md ("Ss"): Rename to US.
9463
690688b3
TG
94642013-07-25 Terry Guo <terry.guo@arm.com>
9465
9466 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
9467 shift_add/shift_sub0/shift_sub1 RTXs.
9468
a4ad093b 94692013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 9470 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
9471
9472 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
9473 (altivec_vpks<VI_char>ss): Likewise.
9474 (altivec_vpks<VI_char>us): Likewise.
9475 (altivec_vpku<VI_char>us): Likewise.
9476 (altivec_vpku<VI_char>um): Likewise.
9477
8c5005ce
DM
94782013-07-24 David Malcolm <dmalcolm@redhat.com>
9479
9480 Introduce context class.
9481
9482 * Makefile.in (CONTEXT_H): New.
9483 (OBJS): Add context.o.
9484 (toplev.o): Add CONTEXT_H to dependencies.
9485 (context.o): New.
9486
41a7c215 9487 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
9488
9489 * context.c: New.
9490
9491 * context.h: New.
9492
ce4a9422
JR
94932013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
9494
9495 PR rtl-optimization/57968
9496 * mode-switching.c (create_pre_exit): Allow instructions that
9497 don't set a return register to need a non-exit mode.
9498
493f4c9e 94992013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 9500 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 9501
b5860fd3
WS
9502 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
9503 operands to vperm for little endian.
9504 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
9505 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 9506
73792b92 95072013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 9508 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
9509
9510 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
9511 two operands for little-endian.
9512
14c21302
SE
95132013-07-23 Steve Ellcey <sellcey@mips.com>
9514
9515 * config/mips/mips.c (mips_case_values_threshold): New.
9516 (TARGET_CASE_VALUES_THRESHOLD): Define.
9517
a6056198 95182013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 9519 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
9520
9521 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
9522 selection of field for vector splat in little endian mode.
9523
dd7a40e1
MM
95242013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9525
9526 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
9527 expanders to rs6000.md.
9528 (ior<mode>3): Likewise.
9529 (and<mode>3): Likewise.
9530 (one_cmpl<mode>2): Likewise.
9531 (nor<mode>3): Likewise.
9532 (andc<mode>3): Likewise.
9533 (eqv<mode>3): Likewise.
9534 (nand<mode>3): Likewise.
9535 (orc<mode>3): Likewise.
9536
9537 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
9538 declaration.
9539
9540 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
9541 to split multi-word logical operations.
9542 (rs6000_split_logical_di): Likewise.
9543 (rs6000_split_logical): Likewise.
9544
9545 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
9546 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
9547 and allow TImode operations in 32-bit.
9548 (vsx_and<mode>3_64bit): Likewise.
9549 (vsx_ior<mode>3_32bit): Likewise.
9550 (vsx_ior<mode>3_64bit): Likewise.
9551 (vsx_xor<mode>3_32bit): Likewise.
9552 (vsx_xor<mode>3_64bit): Likewise.
9553 (vsx_one_cmpl<mode>2_32bit): Likewise.
9554 (vsx_one_cmpl<mode>2_64bit): Likewise.
9555 (vsx_nor<mode>3_32bit): Likewise.
9556 (vsx_nor<mode>3_64bit): Likewise.
9557 (vsx_andc<mode>3_32bit): Likewise.
9558 (vsx_andc<mode>3_64bit): Likewise.
9559 (vsx_eqv<mode>3_32bit): Likewise.
9560 (vsx_eqv<mode>3_64bit): Likewise.
9561 (vsx_nand<mode>3_32bit): Likewise.
9562 (vsx_nand<mode>3_64bit): Likewise.
9563 (vsx_orc<mode>3_32bit): Likewise.
9564 (vsx_orc<mode>3_64bit): Likewise.
9565
9566 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
9567 logical types in GPRs.
9568
9569 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
9570 logical insns to rs6000.md, and allow TImode operations in
9571 32-bit.
9572 (altivec_ior<mode>3): Likewise.
9573 (altivec_xor<mode>3): Likewise.
9574 (altivec_one_cmpl<mode>2): Likewise.
9575 (altivec_nor<mode>3): Likewise.
9576 (altivec_andc<mode>3): Likewise.
9577
9578 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
9579 attributes for moving the 128-bit logical operations into
9580 rs6000.md.
9581 (BOOL_REGS_OUTPUT): Likewise.
9582 (BOOL_REGS_OP1): Likewise.
9583 (BOOL_REGS_OP2): Likewise.
9584 (BOOL_REGS_UNARY): Likewise.
9585 (BOOL_REGS_AND_CR0): Likewise.
9586 (one_cmpl<mode>2): Add support for DI logical operations on
9587 32-bit, splitting the operations to 32-bit.
9588 (anddi3): Likewise.
9589 (iordi3): Likewise.
9590 (xordi3): Likewise.
9591 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
9592 changes to combine the 32/64-bit code, allow logical operations on
9593 TI mode in 32-bit, and to use similar match_operator patterns like
9594 scalar mode uses. Combine the Altivec and VSX code for logical
9595 operations, and move it here.
9596 (ior<mode>3, 128-bit types): Likewise.
9597 (xor<mode>3, 128-bit types): Likewise.
9598 (one_cmpl<mode>3, 128-bit types): Likewise.
9599 (nor<mode>3, 128-bit types): Likewise.
9600 (andc<mode>3, 128-bit types): Likewise.
9601 (eqv<mode>3, 128-bit types): Likewise.
9602 (nand<mode>3, 128-bit types): Likewise.
9603 (orc<mode>3, 128-bit types): Likewise.
9604 (and<mode>3_internal): Likewise.
9605 (bool<mode>3_internal): Likewise.
9606 (boolc<mode>3_internal1): Likewise.
9607 (boolc<mode>3_internal2): Likewise.
9608 (boolcc<mode>3_internal1): Likewise.
9609 (boolcc<mode>3_internal2): Likewise.
9610 (eqv<mode>3_internal1): Likewise.
9611 (eqv<mode>3_internal2): Likewise.
9612 (one_cmpl1<mode>3_internal): Likewise.
9613
12211b99 96142013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
9615
9616 * config/microblaze/microblaze.c (microblaze_expand_prologue):
9617 Rename flag_stack_usage to flag_stack_usage_info.
9618
12211b99 96192013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 9620
a5f257fd
ME
9621 * config/microblaze/sync.md: New file.
9622 * config/microblaze/microblaze.md: Include sync.md
9623 * config/microblaze/microblaze.c: Add print_operand 'y'.
9624 * config/microblaze/constraints.md: Add memory_contraint
9625 'Q' which is a single register.
450b0ebb 9626
49fba14f
EB
96272013-07-23 Eric Botcazou <ebotcazou@adacore.com>
9628
9629 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
9630
c7b3b99f
PCC
96312013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
9632
9633 * reload.c (find_reloads): Exit loop once we find this operand
9634 cannot be reloaded somehow for this alternative.
9635
9636 * reload.c (find_reloads): Exit loop once we find a hard register.
9637
9638 * rtlanal.c (computed_jump_p): Exit loop once we find label
9639 reference is used.
9640
9641 * i386.c (ix86_pad_returns): Exit loop after setting replace.
9642
9643 * cfgloopmanip.c (remove_path): Exit loop after setting
9644 irred_invalidated.
9645
9646 * gensupport.c (subst_dup): Avoid loop if code is not
9647 MATCH_DUP nor MATCH_OP_DUP.
9648
c8fbf1fa
NBJ
96492013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
9650
9651 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
9652
9259db42
YZ
96532013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9654
9655 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
9656 true for SP_REGNUM if mode == ptr_mode.
9657 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
9658 with value R0_REGNUM + 31.
9659
00edcfbe
YZ
96602013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9661
9662 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
9663 pad pointer-typed argument downward.
9664
43be9a95
YZ
96652013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9666
9667 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
9668 and __ILP32__ when the ILP32 model is in use.
9669
28514dda
YZ
96702013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9671
9672 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
9673 (aarch64_load_symref_appropriately): In the case of
9674 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
9675 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
9676 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
9677 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
9678 if 'mode' doesn't equal to 'ptr_mode'.
9679 (aarch64_output_mi_thunk): Add an assertion on the alignment of
9680 'vcall_offset'; change to call aarch64_emit_move differently depending
9681 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
9682 to calculate the upper bound of 'vcall_offset'.
9683 (aarch64_cannot_force_const_mem): Change to also return true if
9684 mode != ptr_mode.
9685 (aarch64_legitimize_reload_address): In the case of large
9686 displacements, add new local variable 'xmode' and an assertion
9687 based on it; change to use 'xmode' to generate the new rtx and
9688 reload.
9689 (aarch64_asm_trampoline_template): Change to generate the template
9690 differently depending on TARGET_ILP32 or not; change to use
9691 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
9692 (aarch64_trampoline_size): Removed.
9693 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
9694 and replace immediate literals with it. Change to use 'ptr_mode'
9695 instead of 'DImode' and call convert_memory_address if the mode
9696 of 'fnaddr' doesn't equal to 'ptr_mode'.
9697 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
9698 to output symbol.
9699 (aarch64_elf_asm_destructor): Likewise.
9700 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
9701 on TARGET_ILP32 instead of aarch64_trampoline_size.
9702 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
9703 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
9704 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
9705 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
9706 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
9707 (storewb_pair<GPI:mode>_<P:mode>): ... this.
9708 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
9709 depending on the value of 'mode'.
9710 (add_losym_<mode>): New.
9711 (ldr_got_small_<mode>): New, based on ldr_got_small.
9712 (ldr_got_small): Remove.
9713 (ldr_got_small_sidi): New.
9714 * config/aarch64/iterators.md (P): New.
9715 (PTR): Change to 'ptr_mode' in the condition.
9716
17a819cb
YZ
97172013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9718
9719 * config.gcc (aarch64*-*-*): Support --with-abi.
9720 (aarch64*-*-elf): Support --with-multilib-list.
9721 (aarch64*-*-linux*): Likewise.
9722 (supported_defaults): Add abi to aarch64*-*-*.
9723 * configure.ac: Mention AArch64 for --with-multilib-list.
9724 * configure: Re-generated.
9725 * config/aarch64/biarchilp32.h: New file.
9726 * config/aarch64/biarchlp64.h: New file.
9727 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
9728 (ABI_SPEC): Ditto.
9729 (MULTILIB_DEFAULTS): Ditto.
9730 (DRIVER_SELF_SPECS): Ditto.
9731 (ASM_SPEC): Update to also substitute -mabi.
9732 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
9733 file whose name depends on -mabi= and -mbig-endian.
9734 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
9735 TARGET_ILP32.
9736 (POINTER_SIZE): New define.
9737 (POINTERS_EXTEND_UNSIGNED): Ditto.
9738 (enum aarch64_abi_type): New enumeration tag.
9739 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
9740 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
9741 (TARGET_ILP32): New define.
9742 * config/aarch64/aarch64.opt (mabi): New.
9743 (aarch64_abi): New.
9744 (ilp32, lp64): New values for -mabi.
9745 * config/aarch64/t-aarch64 (comma): New define.
9746 (MULTILIB_OPTIONS): Ditto.
9747 (MULTILIB_DIRNAMES): Ditto.
9748 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
9749 * doc/invoke.texi: Document -mabi for AArch64.
9750
9f9cbdce
GJL
97512013-07-23 Georg-Johann Lay <avr@gjlay.de>
9752
9753 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
9754
7061977b 97552013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 9756 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
9757
9758 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
9759 endianness when selecting field to splat.
9760
75a41878
EC
97612013-07-22 Eric Christopher <echristo@gmail.com>
9762
9763 * dwarf2out.c (die_odr_checksum): New function to use
9764 CHECKSUM_ macros and ULEB128 for DIE tag.
9765 (generate_type_signature): Use.
41a7c215 9766
38ae58ca
EB
97672013-07-22 Eric Botcazou <ebotcazou@adacore.com>
9768
9769 * config.gcc (sparc*-*-*): Accept leon3 processor.
9770 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
9771 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
9772 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
9773 * config/sparc/sparc.opt (enum processor_type): Add leon3.
9774 (mfix-ut699): Adjust comment.
9775 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
9776 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
9777 (CPP_CPU_SPEC): Likewise.
9778 (ASM_CPU_SPEC): Likewise.
9779 * config/sparc/sparc.c (leon3_cost): New constant.
9780 (sparc_option_override): Add leon3 support.
9781 (mem_ref): New function.
9782 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
9783 (sparc_do_work_around_errata): Look into the instruction in the delay
9784 slot and adjust accordingly. Add fix for the data cache nullify issues
9785 of the UT699. Change insertion position for the NOP.
9786 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
9787 (leon3_load): New reservation.
9788 (leon_store): Bump latency to 2.
9789 (grfpu): New automaton.
9790 (grfpu_alu): New unit.
9791 (grfpu_ds): Likewise.
9792 (leon_fp_alu): Adjust.
9793 (leon_fp_mult): Delete.
9794 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
9795 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
9796 * config/sparc/sparc.md (cpu): Add leon3.
9797 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
9798 (swapsi): Likewise.
9799 (atomic_test_and_set): Likewise.
9800 (ldstub): Likewise.
9801
04dfc6df
JU
98022013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
9803
9804 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
9805 default for R5900 targets.
9806 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
9807 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
9808 * config/mips/mips.c (mips_option_override): Report an error for
9809 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
9810 for -march=r5900 -mhard-float.
9811
c7b3b99f 98122013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
9813
9814 * df-problems.c (can_move_insns_across): Exit loop once we
9815 find a non-fixed, non-global register.
9816
9817 * ipa-pure-const.c (propagate_nothrow): Exit loop after
9818 setting can_throw.
9819
9820 * omega.c (omega_eliminate_red): Break after setting red_found.
9821 (omega_problem_has_red_equations): Similarly after setting found.
9822 (omega_query_variable): Similarly after setting coupled.
9823
9b6e6981
MP
98242013-07-22 Marek Polacek <polacek@redhat.com>
9825
9826 * gimplify.c: Don't include gimple.h twice.
9827
5e5f7673
KT
98282013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9829
9830 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
9831 instead of TARGET_THUMB1.
9832 (Pz): New constraint.
9833 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
9834 encodings.
9835 (compare_negsi_si): Likewise.
9836 (compare_addsi2_op0): Likewise.
9837 (compare_addsi2_op1): Likewise.
9838 (addsi3_carryin_<optab>): Likewise.
9839 (addsi3_carryin_alt2_<optab>): Likewise.
9840 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
9841 for arm_restrict_it.
9842 (subsi3_carryin): Likewise.
9843 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
9844 (minmax_arithsi): Disable for arm_restrict_it.
9845 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
9846 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
9847 (satsi_<SAT:code>_shift): Likewise.
9848 (arm_shiftsi3): Add alternative for 16-bit encoding.
9849 (arm32_movhf): Disable for arm_restrict_it.
9850 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
9851 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
9852
859abddd
SN
98532013-07-22 Sofiane Naci <sofiane.naci@arm.com>
9854
9855 * config/arm/arm.md (attribute "insn"): Delete.
9856 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
9857 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
9858 (not_shiftsi): Update for attribute change.
9859 (not_shiftsi_compare0): Likewise.
9860 (not_shiftsi_compare0_scratch): Likewise.
9861 (arm_one_cmplsi2): Likewise.
9862 (thumb1_one_cmplsi2): Likewise.
9863 (notsi_compare0): Likewise.
9864 (notsi_compare0_scratch): Likewise.
9865 (thumb1_movdi_insn): Likewise.
9866 (arm_movsi_insn): Likewise.
9867 (movhi_insn_arch4): Likewise.
9868 (movhi_bytes): Likewise.
9869 (arm_movqi_insn): Likewise.
9870 (thumb1_movqi_insn): Likewise.
9871 (arm32_movhf): Likewise.
9872 (thumb1_movhf): Likewise.
9873 (arm_movsf_soft_insn): Likewise.
9874 (thumb1_movsf_insn): Likewise.
9875 (thumb_movdf_insn): Likewise.
9876 (movsicc_insn): Likewise.
9877 (movsfcc_soft_insn): Likewise.
9878 (and_scc): Likewise.
9879 (cond_move): Likewise.
9880 (if_move_not): Likewise.
9881 (if_not_move): Likewise.
9882 (if_shift_move): Likewise.
9883 (if_move_shift): Likewise.
9884 (if_shift_shift): Likewise.
9885 (if_not_arith): Likewise.
9886 (if_arith_not): Likewise.
9887 (cond_move_not): Likewise.
9888 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
9889 (neon_mov<mode>): Likewise.
9890 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
9891 (thumb2_movsi_vfp): Likewise.
9892 (movsf_vfp): Likewise.
9893 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
9894 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
9895 change.
859abddd
SN
9896 (cortexa7_older_only): Likewise.
9897 (cortexa7_younger): Likewise.
9898 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
9899 (1020alu_shift_op): Likewise.
9900 (1020alu_shift_reg_op): Likewise.
9901 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
9902 (alu_shift_op): Likewise.
9903 (alu_shift_reg_op): Likewise.
9904 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
9905 (11_alu_shift_op): Likewise.
9906 (11_alu_shift_reg_op): Likewise.
9907 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
9908 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
9909 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
9910 change.
859abddd
SN
9911 (cortex_a15_alu_shift): Likewise.
9912 (cortex_a15_alu_shift_reg): Likewise.
9913 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
9914 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
9915 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
9916 change.
859abddd 9917 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
9918 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
9919 change.
859abddd
SN
9920 (cortex_a7_alu_reg): Likewise.
9921 (cortex_a7_alu_shift): Likewise.
9922 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
9923 (cortex_a8_alu_shift): Likewise.
9924 (cortex_a8_alu_shift_reg): Likewise.
9925 (cortex_a8_mov): Likewise.
9926 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
9927 (cortex_a9_dp_shift): Likewise.
9928 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
9929 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
9930 (cortex_r4_mov): Likewise.
9931 (cortex_r4_alu_shift): Likewise.
9932 (cortex_r4_alu_shift_reg): Likewise.
9933 * config/arm/fa526.md (526_alu_op): Update for attribute change.
9934 (526_alu_shift_op): Likewise.
9935 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
9936 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
9937 (626te_alu_shift_op): Likewise.
9938 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
9939 (726te_alu_op): Likewise.
9940 (726te_alu_shift_op): Likewise.
9941 (726te_alu_shift_reg_op): Likewise.
9942 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
9943 (mp626_alu_shift_op): Likewise.
9944 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
9945 (pj4_alu_e1_conds): Likewise.
9946 (pj4_alu): Likewise.
9947 (pj4_alu_conds): Likewise.
9948 (pj4_shift): Likewise.
9949 (pj4_shift_conds): Likewise.
9950 (pj4_alu_shift): Likewise.
9951 (pj4_alu_shift_conds): Likewise.
9952
95b97fac
KT
99532013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9954
9955 * config/arm/predicates.md (shiftable_operator_strict_it):
9956 New predicate.
9957 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
9958 Disable cond_exec version for arm_restrict_it.
9959 (thumb2_smaxsi3): Convert to generate cond_exec.
9960 (thumb2_sminsi3): Likewise.
9961 (thumb32_umaxsi3): Likewise.
9962 (thumb2_uminsi3): Likewise.
9963 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
9964 (thumb2_neg_abssi2): Likewise.
9965 (thumb2_mov_scc): Add alternative for 16-bit encoding.
9966 (thumb2_movsicc_insn): Adjust alternatives.
9967 (thumb2_mov_negscc): Disable for arm_restrict_it.
9968 (thumb2_mov_negscc_strict_it): New pattern.
9969 (thumb2_mov_notscc_strict_it): New pattern.
9970 (thumb2_mov_notscc): Disable for arm_restrict_it.
9971 (thumb2_ior_scc): Likewise.
9972 (thumb2_ior_scc_strict_it): New pattern.
9973 (thumb2_cond_move): Adjust for arm_restrict_it.
9974 (thumb2_cond_arith): Disable for arm_restrict_it.
9975 (thumb2_cond_arith_strict_it): New pattern.
9976 (thumb2_cond_sub): Adjust for arm_restrict_it.
9977 (thumb2_movcond): Likewise.
9978 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
9979 (thumb2_zero_extendhisi2_v6): Likewise.
9980 (thumb2_zero_extendqisi2_v6): Likewise.
9981 (orsi_notsi_si): Likewise.
9982 (orsi_not_shiftsi_si): Likewise.
9983
d5a6ef82
GJL
99842013-07-22 Georg-Johann Lay <avr@gjlay.de>
9985
9986 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
9987 instruction sequence is 1 byte shorter.
9988
d9e71154
UB
99892013-07-22 Uros Bizjak <ubizjak@gmail.com>
9990
9991 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
9992 it is not needed after split.
9993
8c6381ec
IS
99942013-07-20 Iain Sandoe <iain@codesourcery.com>
9995
9996 PR target/51784
9997 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
9998 second label for nonlocal goto receivers. Don't output pic base labels
9999 unless we're producing PIC; mark that action unreachable().
10000 (ix86_save_reg): If the function contains a nonlocal label, save the
10001 PIC base reg.
10002 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 10003 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
10004 (update_pic_label_number_if_needed): New.
10005 (machopic_output_function_base_name): Adjust for nonlocal receiver
10006 case.
10007 (machopic_should_output_picbase_label): New.
10008 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
10009 (nonlocal_goto_receiver): New insn and split.
10010
d05d0709
JG
100112013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
10012
10013 * config/aarch64/aarch64-builtins.c
10014 (aarch64_fold_builtin): Fold abs in all modes.
10015 * config/aarch64/aarch64-simd-builtins.def
10016 (abs): Enable for all modes.
10017 * config/aarch64/arm_neon.h
10018 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
10019 (vabs_f64): Add missing intrinsic.
10020
ba590e63
IB
100212013-07-19 Ian Bolton <ian.bolton@arm.com>
10022
10023 * config/aarch64/arm_neon.h (vabs_s64): New function
10024
02371798
GJL
100252013-07-19 Georg-Johann Lay <avr@gjlay.de>
10026
10027 PR target/57516
10028 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
10029 * config/avr/avr.md (adjust_len): Add `round'.
10030 * config/avr/avr-protos.h (avr_out_round): New prototype.
10031 (avr_out_plus): Add `out_label' argument.
10032 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
10033 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
10034 Handle the case where `insn' is just a pattern.
10035 (avr_out_bitop): Handle the case where `insn' is just a pattern.
10036 (avr_out_round): New function.
10037 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
10038
12211b99 100392013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
10040
10041 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10042 Add check for flag_stack_usage to handle -fstack-usage support
10043
12211b99 100442013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
10045
10046 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
10047 interaction for new Power8 flags and VSX.
10048
df9dda2d
ST
100492013-07-18 Sriraman Tallam <tmsriram@google.com>
10050
10051 PR middle-end/57698
10052 * tree-inline.c (expand_call_inline): Emit errors during
10053 early_inlining only if optimization is not turned on.
10054
0f9cdef4
DM
100552013-07-18 David Malcolm <dmalcolm@redhat.com>
10056
10057 * passes.def: New.
10058
10059 * passes.c (init_optimization_passes): Move the construction of
10060 the pass hierarchy into a new passes.def file.
10061
10062 * Makefile.in (passes.o): Add dependency on passes.def.
10063
2efa4087
DM
100642013-07-18 David Malcolm <dmalcolm@redhat.com>
10065
10066 * passes.c (init_optimization_passes): Introduce macros for
10067 constructing the tree of passes (INSERT_PASSES_AFTER,
10068 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
10069 TERMINATE_PASS_LIST).
10070
bc404e1b
VM
100712013-07-18 Vladimir Makarov <vmakarov@redhat.com>
10072 Wei Mi <wmi@google.com>
10073
10074 PR rtl-optimization/57878
10075 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
10076 top.
10077 (reload_pseudo_compare_func): Check nregs first for reload
10078 pseudos.
10079
d675843f
DM
100802013-07-18 David Malcolm <dmalcolm@redhat.com>
10081
10082 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
10083
c7b3b99f 100842013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
10085
10086 * read-rtl.c (validate_const_int): Once an invalid character is
10087 seen, quit the loop.
10088
10089 * gengtype.c (write_roots): Similarly once we find the "deletable"
10090 or "if_marked" option.
10091
52fceb44
SN
100922013-07-18 Sofiane Naci <sofiane.naci@arm.com>
10093
10094 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
10095 "xtab" and "sat". Move value "clz" from here to ...
10096 (attriubte "type"): ... here.
10097 (satsi_<SAT:code>): Delete "insn" attribute.
10098 (satsi_<SAT:code>_shift): Likewise.
10099 (arm_zero_extendqisi2addsi): Likewise.
10100 (arm_extendqisi2addsi): Likewise.
10101 (clzsi2): Update for attribute changes.
10102 (rbitsi2): Likewise.
371e77e3
UB
10103 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
10104 attribute.
52fceb44
SN
10105 (arm_usatsihi): Likewise.
10106 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
10107
006bd006
SN
101082013-07-18 Sofiane Naci <sofiane.naci@arm.com>
10109
10110 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
10111 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
10112 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
10113 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
10114 in alphabetical order.
10115 (attribute "core_cycles"): Update for attribute changes.
10116 (arm_addsi3): Likewise.
10117 (addsi3_compare0): Likewise.
10118 (addsi3_compare0_scratch): Likewise.
10119 (addsi3_compare_op1): Likewise.
10120 (addsi3_compare_op2): Likewise.
10121 (compare_addsi2_op0): Likewise.
10122 (compare_addsi2_op1): Likewise.
10123 (addsi3_carryin_shift_<optab>): Likewise.
10124 (subsi3_carryin_shift): Likewise.
10125 (rsbsi3_carryin_shift): Likewise.
10126 (arm_subsi3_insn): Likewise.
10127 (subsi3_compare0): Likewise.
10128 (subsi3_compare): Likewise.
10129 (arm_andsi3_insn): Likewise.
10130 (thumb1_andsi3_insn): Likewise.
10131 (andsi3_compare0): Likewise.
10132 (andsi3_compare0_scratch): Likewise.
10133 (zeroextractsi_compare0_scratch
10134 (andsi_not_shiftsi_si): Likewise.
10135 (iorsi3_insn): Likewise.
10136 (iorsi3_compare0): Likewise.
10137 (iorsi3_compare0_scratch): Likewise.
10138 (arm_xorsi3): Likewise.
10139 (thumb1_xorsi3_insn): Likewise.
10140 (xorsi3_compare0): Likewise.
10141 (xorsi3_compare0_scratch): Likewise.
10142 (satsi_<SAT:code>_shift): Likewise.
10143 (rrx): Likewise.
10144 (arm_shiftsi3): Likewise.
10145 (shiftsi3_compare0): Likewise.
10146 (not_shiftsi): Likewise.
10147 (not_shiftsi_compare0): Likewise.
10148 (not_shiftsi_compare0_scratch): Likewise.
10149 (arm_one_cmplsi2): Likewise.
10150 (thumb_one_complsi2): Likewise.
10151 (notsi_compare0): Likewise.
10152 (notsi_compare0_scratch): Likewise.
10153 (thumb1_zero_extendhisi2): Likewise.
10154 (arm_zero_extendhisi2): Likewise.
10155 (arm_zero_extendhisi2_v6): Likewise.
10156 (arm_zero_extendhisi2addsi): Likewise.
10157 (thumb1_zero_extendqisi2): Likewise.
10158 (thumb1_zero_extendqisi2_v6): Likewise.
10159 (arm_zero_extendqisi2): Likewise.
10160 (arm_zero_extendqisi2_v6): Likewise.
10161 (arm_zero_extendqisi2addsi): Likewise.
10162 (thumb1_extendhisi2): Likewise.
10163 (arm_extendhisi2): Likewise.
10164 (arm_extendhisi2_v6): Likewise.
10165 (arm_extendqisi): Likewise.
10166 (arm_extendqisi_v6): Likewise.
10167 (arm_extendqisi2addsi): Likewise.
10168 (thumb1_extendqisi2): Likewise.
10169 (thumb1_movdi_insn): Likewise.
10170 (arm_movsi_insn): Likewise.
10171 (movsi_compare0): Likewise.
10172 (movhi_insn_arch4): Likewise.
10173 (movhi_bytes): Likewise.
10174 (arm_movqi_insn): Likewise.
10175 (thumb1_movqi_insn): Likewise.
10176 (arm32_movhf): Likewise.
10177 (thumb1_movhf): Likewise.
10178 (arm_movsf_soft_insn): Likewise.
10179 (thumb1_movsf_insn): Likewise.
10180 (movdf_soft_insn): Likewise.
10181 (thumb_movdf_insn): Likewise.
10182 (arm_cmpsi_insn): Likewise.
10183 (cmpsi_shiftsi): Likewise.
10184 (cmpsi_shiftsi_swp): Likewise.
10185 (arm_cmpsi_negshiftsi_si): Likewise.
10186 (movsicc_insn): Likewise.
10187 (movsfcc_soft_insn): Likewise.
10188 (arith_shiftsi): Likewise.
10189 (arith_shiftsi_compare0
10190 (arith_shiftsi_compare0_scratch
10191 (sub_shiftsi): Likewise.
10192 (sub_shiftsi_compare0
10193 (sub_shiftsi_compare0_scratch
10194 (and_scc): Likewise.
10195 (cond_move): Likewise.
10196 (if_plus_move): Likewise.
10197 (if_move_plus): Likewise.
10198 (if_move_not): Likewise.
10199 (if_not_move): Likewise.
10200 (if_shift_move): Likewise.
10201 (if_move_shift): Likewise.
10202 (if_shift_shift): Likewise.
10203 (if_not_arith): Likewise.
10204 (if_arith_not): Likewise.
10205 (cond_move_not): Likewise.
10206 (thumb1_ashlsi3): Set type attribute.
10207 (thumb1_ashrsi3): Likewise.
10208 (thumb1_lshrsi3): Likewise.
10209 (thumb1_rotrsi3): Likewise.
10210 (shiftsi3_compare0_scratch): Likewise.
10211 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
10212 (neon_mov<mode>): Likewise.
371e77e3
UB
10213 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
10214 attribute changes.
006bd006
SN
10215 (thumb2_movsi_insn): Likewise.
10216 (thumb2_cmpsi_neg_shiftsi): Likewise.
10217 (thumb2_extendqisi_v6): Likewise.
10218 (thumb2_zero_extendhisi2_v6): Likewise.
10219 (thumb2_zero_extendqisi2_v6): Likewise.
10220 (thumb2_shiftsi3_short): Likewise.
10221 (thumb2_addsi3_compare0_scratch): Likewise.
10222 (orsi_not_shiftsi_si): Likewise.
10223 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
10224 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
10225 changes.
10226 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
10227 (1020alu_shift_op): Likewise.
10228 (1020alu_shift_reg_op): Likewise.
10229 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
10230 (alu_shift_op): Likewise.
10231 (alu_shift_reg_op): Likewise.
10232 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
10233 (11_alu_shift_op): Likewise.
10234 (11_alu_shift_reg_op): Likewise.
10235 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
10236 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
10237 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
10238 changes.
006bd006
SN
10239 (cortex_a15_alu_shift): Likewise.
10240 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
10241 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
10242 changes.
006bd006
SN
10243 (cortex_a5_alu_shift): Likewise.
10244 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
10245 changes.
10246 (cortex_a53_alu_shift): Likewise.
10247 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
10248 changes.
10249 (cortex_a7_alu_reg): Likewise.
10250 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
10251 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
10252 changes.
006bd006
SN
10253 (cortex_a8_alu_shift): Likewise.
10254 (cortex_a8_alu_shift_reg): Likewise.
10255 (cortex_a8_mov): Likewise.
10256 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
10257 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
10258 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
10259 changes.
10260 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
10261 changes.
006bd006
SN
10262 (cortex_r4_mov): Likewise.
10263 (cortex_r4_alu_shift): Likewise.
10264 (cortex_r4_alu_shift_reg): Likewise.
10265 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
10266 (526_alu_shift_op): Likewise.
10267 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
10268 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
10269 (626te_alu_shift_op): Likewise.
10270 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
10271 (726te_alu_op): Likewise.
10272 (726te_alu_shift_op): Likewise.
10273 (726te_alu_shift_reg_op): Likewise.
10274 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
10275 (mp626_alu_shift_op): Likewise.
10276 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
10277 (pj4_alu_e1_conds): Likewise.
10278 (pj4_alu): Likewise.
10279 (pj4_alu_conds): Likewise.
10280 (pj4_shift): Likewise.
10281 (pj4_shift_conds): Likewise.
10282 (pj4_alu_shift): Likewise.
10283 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
10284 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
10285 changes.
006bd006
SN
10286 (cortexa7_older_only): Likewise.
10287 (cortexa7_younger): Likewise.
10288
651df1b2
DM
102892013-07-18 David Malcolm <dmalcolm@redhat.com>
10290
10291 * ipa-pure-const.c (generate_summary): Rename to...
10292 (pure_const_generate_summary): ... this.
10293
ea717bd7
IS
102942013-07-17 Iain Sandoe <iain@codesourcery.com>
10295
10296 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
10297
a1259a13
YR
102982013-07-17 Yvan Roux <yvan.roux@linaro.org>
10299
10300 PR target/57909
10301 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
10302 usage in HI mode.
10303
167f68ed
AK
103042013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10305
10306 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
10307 enabled without -march=zEC12.
10308 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
10309 flags to be set.
10310
f900a982
MR
103112013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
10312
10313 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
10314 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
10315 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
10316 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
10317 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
10318 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
10319 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
10320 ISA_HAS_FP4.
10321 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
10322 and ISA_HAS_NMADD3_NMSUB3.
10323 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
10324 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
10325 (nmsub4<mode>, nmsub3<mode>): Likewise.
10326 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
10327
d4ed27eb
MR
103282013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
10329
10330 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
10331 TARGET_MIPS5400 checking.
10332
7a5add18
PB
103332013-07-16 Jakub Jelinek <jakub@redhat.com>
10334 Peter Bergner <bergner@vnet.ibm.com>
10335
10336 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
10337 registers in the comment.
10338 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
10339 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
10340 rather than FIRST_PSEUDO_REGISTERS.
10341
103422013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
10343
10344 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
10345 enable extra ISA flags with TARGET_HTM.
10346
d2ab0929
MR
103472013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
10348
10349 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
10350 Fix comment typos.
10351
839c74bc
CH
103522013-07-15 Cong Hou <congh@google.com>
10353
10354 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
10355 in compare function for sorting.
10356
7a5add18 103572013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
10358
10359 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
10360 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
10361 * config/rs6000/rs6000.opt: Add -mhtm option.
10362 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
10363 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
10364 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
10365 __HTM__ if the HTM instructions are available.
10366 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
10367 htm_spr_reg_operand): New define_predicates.
10368 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
10369 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
10370 Include htm.md.
10371 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
10372 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
10373 HTM builtin functions.
10374 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
10375 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
10376 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
10377 (rs6000_builtin_mask_calculate): Likewise.
10378 (rs6000_option_override_internal): Likewise.
10379 (bdesc_htm): Add new HTM builtin support.
10380 (htm_spr_num): New function.
10381 (htm_spr_regno): Likewise.
10382 (rs6000_htm_spr_icode): Likewise.
10383 (htm_expand_builtin): Likewise.
10384 (htm_init_builtins): Likewise.
10385 (rs6000_expand_builtin): Add support for HTM builtin functions.
10386 (rs6000_init_builtins): Likewise.
371e77e3
UB
10387 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
10388 option.
0258b6e4
PB
10389 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
10390 (TARGET_HTM, MASK_HTM): Define macros.
10391 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
10392 (FIXED_REGISTERS): Likewise.
10393 (CALL_USED_REGISTERS): Likewise.
10394 (CALL_REALLY_USED_REGISTERS): Likewise.
10395 (REG_ALLOC_ORDER): Likewise.
10396 (enum reg_class): Likewise.
10397 (REG_CLASS_NAMES): Likewise.
10398 (REG_CLASS_CONTENTS): Likewise.
10399 (REGISTER_NAMES): Likewise.
10400 (ADDITIONAL_REGISTER_NAMES): Likewise.
10401 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
10402 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
10403 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
10404 * config/rs6000/htm.md: New file.
10405 * config/rs6000/htmintrin.h: New file.
10406 * config/rs6000/htmxlintrin.h: New file.
10407
87dd8ab0
MS
104082013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
10409
10410 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
10411 Define SYMBOL_TINY_GOT, update comment.
10412 * config/aarch64/aarch64.c
10413 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
10414 (aarch64_expand_mov_immediate): Likewise.
10415 (aarch64_print_operand): Likewise.
10416 (aarch64_classify_symbol): Likewise.
10417 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
10418 (ldr_got_tiny): Define.
10419
52d676b6
TG
104202013-07-13 Tobias Grosser <tobias@grosser.es>
10421
10422 PR tree-optimization/54094
10423 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
10424 scheduling dimension for the parallelism check from the polyhedral
10425 information in the AST.
10426 * graphite-dependences.c (carries_deps): Do not assume the schedule is
10427 in 2D + 1 form.
10428
286e8fc1
JM
104292013-07-13 Jason Merrill <jason@redhat.com>
10430
10431 * print-tree.c (debug_vec_tree): Use debug_raw.
10432 (debug_raw (vec<tree, va_gc> &)): New.
10433 (debug_raw (vec<tree, va_gc> *)): New.
10434 * tree.h: Declare them.
10435
e43257e8
BC
104362013-07-13 Bin Cheng <bin.cheng@arm.com>
10437
10438 * ifcvt.c (ifcvt_after_combine): New static variable.
10439 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
10440 for size.
10441 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
10442 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
10443 rest_of_handle_if_after_reload): Pass new argument for if_convert.
10444
da582d46
MR
104452013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
10446
10447 * config/mips/mips.c (mips_expand_call): Remove empty statement.
10448
18b0ea8f
MM
104492013-07-12 Michael Matz <matz@suse.de>
10450
10451 PR middle-end/55771
10452 * convert.c (convert_to_real): Reject non-float inner types.
10453
e4f0f84d
TB
104542013-07-12 Tejas Belagod <tejas.belagod@arm.com>
10455
10456 * config/aarch64/aarch64-protos.h
10457 (aarch64_simd_immediate_valid_for_move): Remove.
10458 * config/aarch64/aarch64.c (simd_immediate_info): New member.
10459 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
10460 cases.
10461 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
10462
76500022
SE
104632013-07-11 Steve Ellcey <sellcey@mips.com>
10464
10465 * config/mips/mips.c (mips_conditional_register_usage): Do not
10466 use t[0-7] registers in MIPS16 mode when optimizing for size.
10467
78039734
ST
104682013-07-11 Sriraman Tallam <tmsriram@google.com>
10469
10470 * config/i386/i386.c (dispatch_function_versions): Fix array
10471 indexing of function_version_info to match actual_versions.
10472
7b24b675
TJ
104732013-07-11 Teresa Johnson <tejohnson@google.com>
10474
10475 * vec.h (struct va_gc): Move release out-of-line.
10476 (va_gc::release): Call ggc_free on released vec.
10477
85d4cbb8
UW
104782013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10479
10480 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
10481 Require GOT register as additional operand in UNSPEC.
10482 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
10483 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
10484 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
10485 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
10486 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
10487 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
10488 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
10489
52b3f9e2
GJL
104902013-07-11 Georg-Johann Lay <avr@gjlay.de>
10491
10492 PR target/57631
10493 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
10494 name seen by assembler/linker rather if available.
10495
3f3e266e
AS
104962013-07-11 Andreas Schwab <schwab@suse.de>
10497
10498 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
10499
21231ca6
VM
105002013-07-10 Vladimir Makarov <vmakarov@redhat.com>
10501
371e77e3 10502 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 10503
d331d374
JM
105042013-07-10 Joseph Myers <joseph@codesourcery.com>
10505
673c2f63
JM
10506 * doc/tm.texi.in: Move hook documentation to ....
10507 * target.def: ... here.
10508
d331d374
JM
10509 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
10510 text on @hook line.
10511 * doc/tm.texi: Regenerate.
10512
dfeadaa0
PC
105132013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
10514
10515 PR c++/57869
10516 * doc/invoke.texi: Document -Wconditionally-supported.
10517
bb6f2bac
GJL
105182013-07-10 Georg-Johann Lay <avr@gjlay.de>
10519
10520 PR target/57844
10521 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
10522 of my_fp.
10523
5219b232
GJL
105242013-07-10 Georg-Johann Lay <avr@gjlay.de>
10525
10526 PR target/57506
10527 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
10528 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
10529 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
10530 Remove duplicate devices.
10531 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
10532 * config/avr/t-multilib: Regenerate.
10533 * config/avr/avr-tables.opt: Regenerate.
10534 * doc/avr-mmcu.texi: Regenerate.
10535
283045c0
GJL
105362013-07-10 Georg-Johann Lay <avr@gjlay.de>
10537
10538 PR target/56987
10539 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
10540
ceb2d59f 105412013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 10542
ceb2d59f
GS
10543 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
10544 the cost of MULT when optimizing for size.
10545
055e0a99
JBG
105462013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10547
10548 * config/cr16/cr16-protos.h: Don't include target.h.
10549
ef43e868
JM
105502013-07-09 Joseph Myers <joseph@codesourcery.com>
10551
10552 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
10553 adjust register size for TDmode and TFmode for VSX registers.
10554
4a283fdf
KT
105552013-07-08 Kai Tietz <ktietz@redhat.com>
10556
10557 PR target/56892
10558 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
10559 hook_bool_const_tree_true.
10560
2cf4c39e
AK
105612013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10562
10563 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
10564 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
10565 * config/s390/s390.md: Define FPR*_REGNUM constants.
10566 Fix FPR2_REGNUM constant (18 -> 17).
10567 ("*trunc<BFP:mode><DFP_ALL:mode>2")
10568 ("*trunc<DFP_ALL:mode><BFP:mode>2")
10569 ("trunc<BFP:mode><DFP_ALL:mode>2")
10570 ("trunc<DFP_ALL:mode><BFP:mode>2")
10571 ("*extend<BFP:mode><DFP_ALL:mode>2")
10572 ("*extend<DFP_ALL:mode><BFP:mode>2")
10573 ("extend<BFP:mode><DFP_ALL:mode>2")
10574 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
10575 FPR4_REGNUM.
10576
e6ac0270 105772013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 10578
6a2fa4b2 10579 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 10580
b89b22fc
AK
105812013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10582
10583 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
10584 and cfun_fpr_bit_p to cfun_fpr_save_p.
10585 (s390_frame_area, s390_register_info, s390_frame_info)
10586 (s390_emit_prologue, s390_emit_epilogue)
10587 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
10588 register numbers.
10589 * config/s390/s390.h: Define *_REGNUM macros for floating point
10590 register numbers.
10591
07f398aa
EB
105922013-07-08 Eric Botcazou <ebotcazou@adacore.com>
10593
10594 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
10595
75fefa91
PCC
105962013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
10597
10598 PR rtl-optimization/57786
10599 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
10600 and break out of the loop when it is set to false.
10601
046f1eee
JJ
106022013-07-08 Jakub Jelinek <jakub@redhat.com>
10603
8140c065
JJ
10604 PR target/57819
10605 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
10606 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
10607 (const_int 63)) 0)).
10608 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
10609 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
10610 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
10611
046f1eee
JJ
10612 PR rtl-optimization/57829
10613 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
10614 mask bits outside of mode are just sign-extension from mode to HWI.
10615
930b700b
MZ
106162013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
10617
10618 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
10619 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
10620 adjust_address instead of change_address to keep info about alignment.
10621 (emit_strmov): Remove.
10622 (emit_memmov): New function.
10623 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
10624 (expand_movmem_epilogue): Likewise and return updated rtx for
10625 destination.
10626 (expand_constant_movmem_prologue): Likewise and return updated rtx for
10627 destination and source.
10628 (decide_alignment): Refactor, handle vector_loop.
10629 (ix86_expand_movmem): Likewise.
10630 (ix86_expand_setmem): Likewise.
10631 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
10632
7b9d1bd8
UB
106332013-07-07 Uros Bizjak <ubizjak@gmail.com>
10634
10635 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
10636 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
10637
eabb5f48
UB
106382013-07-06 Uros Bizjak <ubizjak@gmail.com>
10639
10640 * config/i386/sse.md (sse_movlhps): Change alternative 3
10641 of operand 2 to "m".
10642
106432013-07-06 Uros Bizjak <ubizjak@gmail.com>
10644
10645 PR target/57807
10646 * config/i386/sse.md (iptr): New mode attribute.
10647 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
10648 (<sse>_vm<plusminus_insn><mode>3): Ditto.
10649 (<sse>_vmmul<mode>3): Ditto.
10650 (<sse>_vmdiv<mode>3): Ditto.
10651 (sse_vmrcpv4sf2): Ditto.
10652 (<sse>_vmsqrt<mode>2): Ditto.
10653 (sse_vmrsqrtv4sf2): Ditto.
10654 (<sse>_vm<code><mode>3): Ditto.
10655 (avx_vmcmp<mode>3): Ditto.
10656 (<sse>_vmmaskcmp<mode>3): Ditto.
10657 (<sse>_comi): Ditto.
10658 (<sse>_ucomi): Ditto.
10659 (*xop_vmfrcz_<mode>): Ditto.
10660 (*fmai_fmadd_<mode>): Ditto.
10661 (*fmai_fmsub_<mode>): Ditto.
10662 (*fmai_fnmadd_<mode>): Ditto.
10663 (*fmai_fnmsub_<mode>): Ditto.
10664 (*fma4i_vmfmadd_<mode>): Ditto.
10665 (*fma4i_vmfmsub_<mode>): Ditto.
10666 (*fma4i_vmfnmadd_<mode>): Ditto.
10667 (*fma4i_vmfnmsub_<mode>): Ditto.
10668 (*xop_vmfrcz_<mode>): Ditto.
10669 (sse_cvtps2pi): Ditto.
10670 (sse_cvttps2pi): Ditto.
10671 (sse_cvtss2si): Ditto.
10672 (sse_cvtss2si_2): Ditto.
10673 (sse_cvtss2siq_2): Ditto.
10674 (sse_cvttss2si): Ditto.
10675 (sse_cvttss2siq): Ditto.
10676 (sse_cvtsd2si): Ditto.
10677 (sse_cvtsd2si_2): Ditto.
10678 (sse_cvtsd2siq_2): Ditto.
10679 (sse_cvttsd2si): Ditto.
10680 (sse_cvttsd2siq): Ditto.
10681 (sse_cvtsd2ss): Ditto.
10682 (sse_cvtss2sd): Ditto.
10683 (avx2_pbroadcast<mode>): Ditto.
10684 (avx2_pbroadcast<mode>_1): Ditto.
10685 (*avx_vperm_broadcast_v4sf): Ditto.
10686
10687 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
10688 (sse_movlhps): Ditto.
10689 (sse_storehps): Ditto.
10690 (sse_loadhps): Ditto.
10691 (sse_storelps): Ditto.
10692 (sse_loadlps): Ditto.
10693 (*vec_concatv4sf): Ditto.
10694 (*vec_interleave_highv2df): Ditto.
10695 (*vec_interleave_lowv2df): Ditto.
10696 (*vec_extractv2df_1_sse): Ditto.
10697 (*vec_extractv2df_0_sse): Ditto.
10698 (sse2_storelpd): Ditto.
10699 (sse2_loadlpd): Ditto.
10700 (sse2_movsd): Ditto.
10701 (*vec_concatv4si): Ditto.
10702 (vec_concatv2di): Ditto.
10703
10704 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
10705 for Intel asm dialect.
10706 (mmx_punpcklwd): Ditto.
10707 (mmx_punpckldq): Ditto.
10708
10709 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
10710 for intel assembler dialect.
10711
1f6eac90
JJ
107122013-07-06 Jakub Jelinek <jakub@redhat.com>
10713
10714 PR target/29776
10715 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
10716 for BUILT_IN_C{LZ,LRSB}*.
10717 * tree.h (CASE_INT_FN): Add FN##IMAX case.
10718 * tree-vrp.c (extract_range_basic): Handle
10719 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
10720 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
10721 fall thru to code calling set_value*.
10722 * builtins.c (expand_builtin): Remove *IMAX cases.
10723 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
10724 if width is bigger than 2*HWI.
10725
2b778c9d
VM
107262013-07-05 Vladimir Makarov <vmakarov@redhat.com>
10727
10728 PR rtl-optimization/55342
10729 * lra-int.h (lra_subreg_reload_pseudos): New.
10730 * lra.c: Add undoing optional reloads to the block diagram.
10731 (lra_subreg_reload_pseudos): New.
10732 (lra_optional_reload_pseudos): Change comments.
10733 (lra): Init and clear lra_subreg_reload_pseudos. Clear
10734 lra_optional_reload_pseudos after undo transformations.
10735 * lra-assigns.c (pseudo_prefix_title): New.
10736 (lra_setup_reg_renumber): Use it.
10737 (spill_for): Ditto. Check subreg reload pseudos too.
10738 (assign_by_spills): Consider subreg reload pseudos too.
10739 * lra-constraints.c (simplify_operand_subreg): Use
10740 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
10741 (curr_insn_transform): Recognize and do optional reloads.
10742 (undo_optional_reloads): New.
10743 (lra_undo_inheritance): Call undo_optional_reloads.
10744
207156e4
TQ
107452013-07-05 Thomas Quinot <quinot@adacore.com>
10746
10747 * tree-complex.c (expand_complex_operations_1): Fix typo.
10748
8990e73a
TB
107492013-07-04 Tejas Belagod <tejas.belagod@arm.com>
10750
10751 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
10752 (tune_params): New member 'const vec_costs'.
10753 * config/aarch64/aarch64.c (generic_vector_cost): New.
10754 (generic_tunings): New member 'generic_vector_cost'.
10755 (aarch64_builtin_vectorization_cost): New.
10756 (aarch64_add_stmt_cost): New.
10757 (TARGET_VECTORIZE_ADD_STMT_COST): New.
10758 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
10759
f7bc421d
JJ
107602013-07-03 Jakub Jelinek <jakub@redhat.com>
10761
10762 PR target/57777
10763 * config/i386/predicates.md (vsib_address_operand): Disallow
10764 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
10765
e90d1568
HPN
107662013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
10767
10768 PR middle-end/55030
10769 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
10770 expand_builtin_setjmp_receiver.
10771 (expand_label): Adjust, call expand_builtin_setjmp_receiver
10772 with NULL for the label parameter.
10773 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
10774 the frame-pointer. Adjust comments.
10775 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
10776 only if LABEL is non-NULL.
10777
cbd7413b
YZ
107782013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
10779
10780 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
10781 (ARM_ABI_AAPCS64): Ditto.
10782 (arm_abi): Ditto.
10783 (ARM_DEFAULT_ABI): Ditto.
10784
dec11868
JG
107852013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
10786
10787 * config/aarch64/aarch64-builtins.c
10788 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
10789 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
10790 (st1): Likewise.
10791 * config/aarch64/aarch64-simd.md
10792 (aarch64_ld1<VALL:mode>): New.
10793 (aarch64_st1<VALL:mode>): Likewise.
10794 * config/aarch64/arm_neon.h
10795 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
10796
786fb9b6
ST
107972013-07-02 Sriraman Tallam <tmsriram@google.com>
10798
0ba6aff3
UB
10799 * config/i386/i386.c (gate_insert_vzeroupper): Check if
10800 target ISA is AVX.
786fb9b6
ST
10801 (ix86_option_override_internal):Turn on all -mavx target flags by
10802 default as they are dependent on AVX anyway.
10803
4b043553
CC
108042013-07-02 Cary Coutant <ccoutant@google.com>
10805
10806 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
10807 deterministic hash.
10808 (loc_checksum_ordered): Likewise.
10809 (hash_loc_operands): Remove inline keyword.
10810
c4e87a13
JJ
108112013-07-02 Jakub Jelinek <jakub@redhat.com>
10812
10813 PR tree-optimization/57741
10814 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
10815 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
10816 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
10817 Allow REAL_CST step_exprs if flag_associative_math.
10818 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
10819
26366d28
IB
108202013-07-02 Ian Bolton <ian.bolton@arm.com>
10821
0ba6aff3 10822 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 10823
2879bb2b
IB
108242013-07-02 Ian Bolton <ian.bolton@arm.com>
10825
10826 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
10827
afc5e8a6
KT
108282013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10829
10830 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
10831 encoding.
10832 (iorsi3_insn): Likewise.
10833 (arm_xorsi3): Likewise.
10834
31f8442b
SN
108352013-07-01 Sofiane Naci <sofiane.naci@arm.com>
10836
10837 * arm.md (attribute "wtype"): Delete. Move attribute values from here
10838 to ...
10839 (attribute "type"): ... here, and prefix with "wmmx_".
10840 (attribute "core_cycles"): Update for attribute changes.
10841 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
10842 (tbcstv4hi): Likewise.
10843 (tbcstv2si): Likewise.
10844 (iwmmxt_iordi3): Likewise.
10845 (iwmmxt_xordi3): Likewise.
10846 (iwmmxt_anddi3): Likewise.
10847 (iwmmxt_nanddi3): Likewise.
10848 (iwmmxt_arm_movdi): Likewise.
10849 (iwmmxt_movsi_insn): Likewise.
10850 (mov<mode>_internal): Likewise.
10851 (and<mode>3_iwmmxt): Likewise.
10852 (ior<mode>3_iwmmxt): Likewise.
10853 (xor<mode>3_iwmmxt): Likewise.
10854 (add<mode>3_iwmmxt): Likewise.
10855 (ssaddv8qi3): Likewise.
10856 (ssaddv4hi3): Likewise.
10857 (ssaddv2si3): Likewise.
10858 (usaddv8qi3): Likewise.
10859 (usaddv4hi3): Likewise.
10860 (usaddv2si3): Likewise.
10861 (sub<mode>3_iwmmxt): Likewise.
10862 (sssubv8qi3): Likewise.
10863 (sssubv4hi3): Likewise.
10864 (sssubv2si3): Likewise.
10865 (ussubv8qi3): Likewise.
10866 (ussubv4hi3): Likewise.
10867 (ussubv2si3): Likewise.
10868 (mulv4hi3_iwmmxt): Likewise.
10869 (smulv4hi3_highpart): Likewise.
10870 (umulv4hi3_highpart): Likewise.
10871 (iwmmxt_wmacs): Likewise.
10872 (iwmmxt_wmacsz): Likewise.
10873 (iwmmxt_wmacu): Likewise.
10874 (iwmmxt_wmacuz): Likewise.
10875 (iwmmxt_clrdi): Likewise.
10876 (iwmmxt_clrv8qi): Likewise.
10877 (iwmmxt_clr4hi): Likewise.
10878 (iwmmxt_clr2si): Likewise.
10879 (iwmmxt_uavgrndv8qi3): Likewise.
10880 (iwmmxt_uavgrndv4hi3): Likewise.
10881 (iwmmxt_uavgv8qi3): Likewise.
10882 (iwmmxt_uavgv4hi3): Likewise.
10883 (iwmmxt_tinsrb): Likewise.
10884 (iwmmxt_tinsrh): Likewise.
10885 (iwmmxt_tinsrw): Likewise.
10886 (iwmmxt_textrmub): Likewise.
10887 (iwmmxt_textrmsb): Likewise.
10888 (iwmmxt_textrmuh): Likewise.
10889 (iwmmxt_textrmsh): Likewise.
10890 (iwmmxt_textrmw): Likewise.
10891 (iwmxxt_wshufh): Likewise.
10892 (eqv8qi3): Likewise.
10893 (eqv4hi3): Likewise.
10894 (eqv2si3): Likewise.
10895 (gtuv8qi3): Likewise.
10896 (gtuv4hi3): Likewise.
10897 (gtuv2si3): Likewise.
10898 (gtv8qi3): Likewise.
10899 (gtv4hi3): Likewise.
10900 (gtv2si3): Likewise.
10901 (smax<mode>3_iwmmxt): Likewise.
10902 (umax<mode>3_iwmmxt): Likewise.
10903 (smin<mode>3_iwmmxt): Likewise.
10904 (umin<mode>3_iwmmxt): Likewise.
10905 (iwmmxt_wpackhss): Likewise.
10906 (iwmmxt_wpackwss): Likewise.
10907 (iwmmxt_wpackdss): Likewise.
10908 (iwmmxt_wpackhus): Likewise.
10909 (iwmmxt_wpackwus): Likewise.
10910 (iwmmxt_wpackdus): Likewise.
10911 (iwmmxt_wunpckihb): Likewise.
10912 (iwmmxt_wunpckihh): Likewise.
10913 (iwmmxt_wunpckihw): Likewise.
10914 (iwmmxt_wunpckilb): Likewise.
10915 (iwmmxt_wunpckilh): Likewise.
10916 (iwmmxt_wunpckilw): Likewise.
10917 (iwmmxt_wunpckehub): Likewise.
10918 (iwmmxt_wunpckehuh): Likewise.
10919 (iwmmxt_wunpckehuw): Likewise.
10920 (iwmmxt_wunpckehsb): Likewise.
10921 (iwmmxt_wunpckehsh): Likewise.
10922 (iwmmxt_wunpckehsw): Likewise.
10923 (iwmmxt_wunpckelub): Likewise.
10924 (iwmmxt_wunpckeluh): Likewise.
10925 (iwmmxt_wunpckeluw): Likewise.
10926 (iwmmxt_wunpckelsb): Likewise.
10927 (iwmmxt_wunpckelsh): Likewise.
10928 (iwmmxt_wunpckelsw): Likewise.
10929 (ror<mode>3): Likewise.
10930 (ashr<mode>3_iwmmxt): Likewise.
10931 (lshr<mode>3_iwmmxt): Likewise.
10932 (ashl<mode>3_iwmmxt): Likewise.
10933 (ror<mode>3_di): Likewise.
10934 (ashr<mode>3_di): Likewise.
10935 (lshr<mode>3_di): Likewise.
10936 (ashl<mode>3_di): Likewise.
10937 (iwmmxt_wmadds): Likewise.
10938 (iwmmxt_wmaddu): Likewise.
10939 (iwmmxt_tmia): Likewise.
10940 (iwmmxt_tmiaph): Likewise.
10941 (iwmmxt_tmiabb): Likewise.
10942 (iwmmxt_tmiatb): Likewise.
10943 (iwmmxt_tmiabt): Likewise.
10944 (iwmmxt_tmiatt): Likewise.
10945 (iwmmxt_tmovmskb): Likewise.
10946 (iwmmxt_tmovmskh): Likewise.
10947 (iwmmxt_tmovmskw): Likewise.
10948 (iwmmxt_waccb): Likewise.
10949 (iwmmxt_wacch): Likewise.
10950 (iwmmxt_waccw): Likewise.
10951 (iwmmxt_waligni): Likewise.
10952 (iwmmxt_walignr): Likewise.
10953 (iwmmxt_walignr0): Likewise.
10954 (iwmmxt_walignr1): Likewise.
10955 (iwmmxt_walignr2): Likewise.
10956 (iwmmxt_walignr3): Likewise.
10957 (iwmmxt_wsadb): Likewise.
10958 (iwmmxt_wsadh): Likewise.
10959 (iwmmxt_wsadbz): Likewise.
10960 (iwmmxt_wsadhz): Likewise.
10961 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
10962 (iwmmxt_wabsdiffb): Likewise.
10963 (iwmmxt_wabsdiffh): Likewise.
10964 (iwmmxt_wabsdiffw): Likewise.
10965 (iwmmxt_waddsubhx): Likewise
10966 (iwmmxt_wsubaddhx): Likewise.
10967 (addc<mode>3): Likewise.
10968 (iwmmxt_avg4): Likewise.
10969 (iwmmxt_avg4r): Likewise.
10970 (iwmmxt_wmaddsx): Likewise.
10971 (iwmmxt_wmaddux): Likewise.
10972 (iwmmxt_wmaddsn): Likewise.
10973 (iwmmxt_wmaddun): Likewise.
10974 (iwmmxt_wmulwsm): Likewise.
10975 (iwmmxt_wmulwum): Likewise.
10976 (iwmmxt_wmulsmr): Likewise.
10977 (iwmmxt_wmulumr): Likewise.
10978 (iwmmxt_wmulwsmr): Likewise.
10979 (iwmmxt_wmulwumr): Likewise.
10980 (iwmmxt_wmulwl): Likewise.
10981 (iwmmxt_wqmulm): Likewise.
10982 (iwmmxt_wqmulwm): Likewise.
10983 (iwmmxt_wqmulmr): Likewise.
10984 (iwmmxt_wqmulwmr): Likewise.
10985 (iwmmxt_waddbhusm): Likewise.
10986 (iwmmxt_waddbhusl): Likewise.
10987 (iwmmxt_wqmiabb): Likewise.
10988 (iwmmxt_wqmiabt): Likewise.
10989 (iwmmxt_wqmiatb): Likewise.
10990 (iwmmxt_wqmiatt): Likewise.
10991 (iwmmxt_wqmiabbn): Likewise.
10992 (iwmmxt_wqmiabtn): Likewise.
10993 (iwmmxt_wqmiatbn): Likewise.
10994 (iwmmxt_wqmiattn): Likewise.
10995 (iwmmxt_wmiabb): Likewise.
10996 (iwmmxt_wmiabt): Likewise.
10997 (iwmmxt_wmiatb): Likewise.
10998 (iwmmxt_wmiatt): Likewise.
10999 (iwmmxt_wmiabbn): Likewise.
11000 (iwmmxt_wmiabtn): Likewise.
11001 (iwmmxt_wmiatbn): Likewise.
11002 (iwmmxt_wmiattn): Likewise.
11003 (iwmmxt_wmiawbb): Likewise.
11004 (iwmmxt_wmiawbt): Likewise.
11005 (iwmmxt_wmiawtb): Likewise.
11006 (iwmmxt_wmiawtt): Likewise.
11007 (iwmmxt_wmiawbbn): Likewise.
11008 (iwmmxt_wmiawbtn): Likewise.
11009 (iwmmxt_wmiawtbn): Likewise.
11010 (iwmmxt_wmiawttn): Likewise.
11011 (iwmmxt_wmerge): Likewise.
11012 (iwmmxt_tandc<mode>3): Likewise.
11013 (iwmmxt_torc<mode>3): Likewise.
11014 (iwmmxt_torvsc<mode>3): Likewise.
11015 (iwmmxt_textrc<mode>3): Likewise.
11016 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
11017 (wmmxt_pack): Likewise.
11018 (wmmxt_mult_c1): Likewise.
11019 (wmmxt_mult_c2): Likewise.
11020 (wmmxt_alu_c1): Likewise.
11021 (wmmxt_alu_c2): Likewise.
11022 (wmmxt_alu_c3): Likewise.
11023 (wmmxt_transfer_c1): Likewise.
11024 (wmmxt_transfer_c2): Likewise.
11025 (wmmxt_transfer_c3): Likewise.
11026 (marvell_f_iwmmxt_wstr): Likewise.
11027 (marvell_f_iwmmxt_wldr): Likewise.
11028
bdb7bf8a
YZ
110292013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
11030
0ba6aff3 11031 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 11032
e6631d38
VM
110332013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11034
11035 Revert:
11036 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11037 * lra-constraints.c (need_for_split_p): Check call used hard regs
11038 living through calls.
11039
11040 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
11041 call used regs for call insn.
11042
53c1275b
JJ
110432013-06-28 Jakub Jelinek <jakub@redhat.com>
11044
11045 PR target/57736
0ba6aff3
UB
11046 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
11047 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 11048
1141ed3f
BI
110492013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11050
11051 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 11052
e32e4c4a
VM
110532013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11054
11055 * lra-constraints.c (need_for_split_p): Check call used hard regs
11056 living through calls.
11057
f161bfd3
MM
110582013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
11059
11060 PR target/57744
11061 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
11062 to tie with any other modes. Eliminate Altivec vector mode tests,
11063 since these are a subset of ALTIVEC or VSX vector modes. Simplify
11064 code, to return 0 if testing MODE2 for a condition, if we've
11065 already tested MODE1 for the same condition.
11066
7eda14e1
MS
110672013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11068
11069 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
11070 layout.
11071
c822f852
MS
110722013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11073
11074 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
11075 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
11076
da4f13a4
MS
110772013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11078
0ba6aff3
UB
11079 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
11080 Define.
da4f13a4
MS
11081 (aarch64_symbolic_constant_p): Remove.
11082 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
11083 static. Fix line length and white space.
11084 (aarch64_symbolic_constant_p): Remove.
11085 * config/aarch64/predicates.md (aarch64_valid_symref):
11086 Use aarch64_classify_symbol_expression.
11087
956a95a5
KT
110882013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11089
11090 * config/arm/constraints.md (Ts): New constraint.
11091 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
11092 16-bit encodings.
11093 (compare_scc): Use "Ts" constraint for operand 0.
11094 (ior_scc_scc): Likewise.
11095 (and_scc_scc): Likewise.
11096 (and_scc_scc_nodom): Likewise.
11097 (ior_scc_scc_cmp): Likewise for operand 7.
11098 (and_scc_scc_cmp): Likewise.
11099 * config/arm/thumb2.md (thumb2_movsi_insn):
11100 Add alternatives for 16-bit encodings.
11101 (thumb2_movhi_insn): Likewise.
11102 (thumb2_movsicc_insn): Likewise.
11103 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
11104 (thumb2_negscc): Use "Ts" constraint.
11105 Move mvn instruction outside cond_exec block.
11106 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
11107 for 16-bit encodings.
11108
31dfce10
KT
111092013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11110
11111 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
11112 encoding.
11113 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
11114 (mulsi3subsi): Likewise.
11115 (mulsidi3adddi): Likewise.
11116 (mulsidi3_v6): Likewise.
11117 (umulsidi3_v6): Likewise.
11118 (umulsidi3adddi_v6): Likewise.
11119 (smulsi3_highpart_v6): Likewise.
11120 (umulsi3_highpart_v6): Likewise.
11121 (mulhisi3tb): Likewise.
11122 (mulhisi3bt): Likewise.
11123 (mulhisi3tt): Likewise.
11124 (maddhisi4): Likewise.
11125 (maddhisi4tb): Likewise.
11126 (maddhisi4tt): Likewise.
11127 (maddhidi4): Likewise.
11128 (maddhidi4tb): Likewise.
11129 (maddhidi4tt): Likewise.
11130 (zeroextractsi_compare0_scratch): Likewise.
11131 (insv_zero): Likewise.
11132 (insv_t2): Likewise.
11133 (anddi_notzesidi_di): Likewise.
11134 (anddi_notsesidi_di): Likewise.
11135 (andsi_notsi_si): Likewise.
11136 (iordi_zesidi_di): Likewise.
11137 (xordi_zesidi_di): Likewise.
11138 (andsi_iorsi3_notsi): Likewise.
11139 (smax_0): Likewise.
11140 (smax_m1): Likewise.
11141 (smin_0): Likewise.
11142 (not_shiftsi): Likewise.
11143 (unaligned_loadsi): Likewise.
11144 (unaligned_loadhis): Likewise.
11145 (unaligned_loadhiu): Likewise.
11146 (unaligned_storesi): Likewise.
11147 (unaligned_storehi): Likewise.
11148 (extv_reg): Likewise.
11149 (extzv_t2): Likewise.
11150 (divsi3): Likewise.
11151 (udivsi3): Likewise.
11152 (arm_zero_extendhisi2addsi): Likewise.
11153 (arm_zero_extendqisi2addsi): Likewise.
11154 (compareqi_eq0): Likewise.
11155 (arm_extendhisi2_v6): Likewise.
11156 (arm_extendqisi2addsi): Likewise.
11157 (arm_movt): Likewise.
11158 (thumb2_ldrd): Likewise.
11159 (thumb2_ldrd_base): Likewise.
11160 (thumb2_ldrd_base_neg): Likewise.
11161 (thumb2_strd): Likewise.
11162 (thumb2_strd_base): Likewise.
11163 (thumb2_strd_base_neg): Likewise.
11164 (arm_negsi2): Add alternative for 16-bit encoding.
11165 (arm_one_cmplsi2): Likewise.
11166
1572e697
KT
111672013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11168
11169 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
11170 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
11171 (movdfcc): Likewise.
11172 * config/arm/vfp.md (*thumb2_movsf_vfp):
11173 Disable predication for arm_restrict_it.
11174 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
11175 (*thumb2_movdfcc_vfp): Likewise.
11176 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
11177 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
11178 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
11179 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
11180 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
11181 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
11182 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
11183 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
11184 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
11185 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
11186 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
11187 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
11188 Disable predication for arm_restrict_it.
11189
ebf8f0ea
KY
111902013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
11191
11192 * config/i386/bmiintrin.h (_bextr_u32): New.
11193 (_bextr_u64): Ditto.
11194
a290fcda
RS
111952013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
11196
11197 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
11198 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
11199 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
11200 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
11201 * config/mips/n32-elf.h: ...this new file.
11202
ea169996
MG
112032013-06-27 Marc Glisse <marc.glisse@inria.fr>
11204
11205 PR target/57224
11206 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
11207 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
11208
12211b99 112092013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
11210
11211 * config/mips/mips-tables.opt: Regenerate.
11212 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 11213 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 11214 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 11215
2444244e
JJ
112162013-06-27 Jakub Jelinek <jakub@redhat.com>
11217
cd06d2a2
JJ
11218 PR target/57623
11219 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
11220 constraints of operand 1 and 2.
11221
2444244e
JJ
11222 PR target/57623
11223 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
11224 to match RTL canonicalization. Swap predicates and
11225 constraints of operand 1 and 2.
11226
2f259720
VM
112272013-06-27 Vladimir Makarov <vmakarov@redhat.com>
11228
0ba6aff3
UB
11229 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
11230 Process OP_INOUT regs for splitting too.
2f259720 11231
fef4d2b3
JJ
112322013-06-27 Jakub Jelinek <jakub@redhat.com>
11233
11234 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
11235 decl before the loop, initialize to NULL.
11236 (vectorizable_load): Initialize ptr_incr to NULL.
11237
79ee9826
MJ
112382013-06-27 Martin Jambor <mjambor@suse.cz>
11239
11240 PR lto/57208
11241 * ipa-ref.h (ipa_maybe_record_reference): Declare.
11242 * ipa-ref.c (ipa_maybe_record_reference): New function.
11243 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
11244 * ipa-cp.c (create_specialized_node): Record potential references from
11245 aggvals.
11246 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
11247
e18b4a81
YZ
112482013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
11249
11250 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
11251 parameter 'mode' of type 'enum machine_mode mode'; change to pass
11252 'mode' to force_reg.
11253 (aarch64_add_offset): Update calls to aarch64_force_temporary.
11254 (aarch64_expand_mov_immediate): Likewise.
11255
9c023bf0
YZ
112562013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
11257
11258 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
11259 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
11260
5a3fe9b6
AK
112612013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11262
11263 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
11264 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
11265 (struct machine_function): Add tbegin_p.
11266 (s390_canonicalize_comparison): Fold CC mode compares to
11267 conditional jump if possible.
11268 (s390_emit_jump): Return the emitted jump.
11269 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
11270 Handle CCRAWmode compares.
11271 (s390_option_override): Default to -mhtm if available.
11272 (s390_reg_clobbered_rtx): Handle floating point regs as well.
11273 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
11274 FPRs instead of df_regs_ever_live_p.
11275 (s390_optimize_nonescaping_tx): New function.
11276 (s390_init_frame_layout): Extend clobbered_regs array to cover
11277 FPRs as well.
11278 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
11279 (s390_expand_tbegin): New function.
11280 (enum s390_builtin): New enum definition.
11281 (code_for_builtin): New array definition.
11282 (s390_init_builtins): New function.
11283 (s390_expand_builtin): New function.
11284 (TARGET_INIT_BUILTINS): Define.
11285 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 11286 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
11287 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
11288 (s390_alc_comparison): Likewise.
11289 * config/s390/s390-modes.def: Add CCRAWmode.
11290 * config/s390/s390.h (processor_flags): Add PF_TX.
11291 (TARGET_CPU_HTM): Define macro.
11292 (TARGET_HTM): Define macro.
11293 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
11294 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
11295 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
11296 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 11297 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
11298 (TBEGIN_MASK, TBEGINC_MASK): New constants.
11299 ("*cc_to_int"): Move up.
11300 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
11301 constants other than 0.
11302 ("*ccraw_to_int"): New insn and splitter definition.
11303 ("tbegin", "tbegin_nofloat", "tbegin_retry")
11304 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
11305 ("tx_assist"): New expander.
11306 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
11307 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
11308 * config/s390/s390.opt: Add -mhtm option.
11309 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
11310 * config/s390/htmxlintrin.h: New file.
11311 * config/s390/htmintrin.h: New file.
11312 * config/s390/s390intrin.h: New file.
11313 * doc/extend.texi: Document htm builtins.
11314 * config.gcc: Add the new header files to extra_headers.
11315
9e216629
TS
113162013-06-26 Thomas Schwinge <thomas@codesourcery.com>
11317
11318 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 11319 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 11320
fd8c65e7 113212013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11322 Pat Haugen <pthaugen@us.ibm.com>
11323 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
11324
11325 * config/rs6000/power8.md: New.
11326 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
11327 setting for power8 entry.
11328 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
11329 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
11330 test for Power4/Power5 only.
11331 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
11332 support.
11333 (force_new_group): Adjust comment.
11334 * config/rs6000/rs6000.md: Include power8.md.
11335
b24a2ce5
GY
113362013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
11337
11338 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
11339 * config/arm/arm-protos.h (arm_max_conditional_execute): New
11340 declaration.
11341 (tune_params): Update comment.
11342 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
11343 (arm_max_conditional_execute): New function.
11344 (thumb2_final_prescan_insn): Use max_insn_skipped and
11345 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
11346
f6fdeb62
JJ
113472013-06-25 Jakub Jelinek <jakub@redhat.com>
11348
11349 PR tree-optimization/57705
11350 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
11351 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 11352 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
11353 (get_initial_def_for_induction): Handle SSA_NAME IV step.
11354
c13bc3d9
MJ
113552013-06-25 Martin Jambor <mjambor@suse.cz>
11356
11357 PR middle-end/57670
11358 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
11359 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
11360 calls in the dump.
11361 (ipa_note_param_call): Initialize member_ptr flag.
11362 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
11363 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
11364 (ipa_write_indirect_edge_info): Stream member_ptr flag.
11365 (ipa_read_indirect_edge_info): Likewise.
11366
8a845901
RB
113672013-06-25 Richard Biener <rguenther@suse.de>
11368
11369 PR middle-end/56977
11370 * passes.c (init_optimization_passes): Move pass_fold_builtins
11371 and pass_dce earlier with -Og.
11372
33be0bec
EB
113732013-06-25 Eric Botcazou <ebotcazou@adacore.com>
11374
11375 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
11376 <BIT_FIELD_REF>: Remove trailing TAB.
11377 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
11378 remove blank line.
11379
5fe8e757
MJ
113802013-06-24 Martin Jambor <mjambor@suse.cz>
11381
11382 PR tree-optimization/57358
11383 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
11384 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
11385 (ipa_analyze_params_uses): Generate pessimistic info when true.
11386
44a60244
MJ
113872013-06-24 Martin Jambor <mjambor@suse.cz>
11388
11389 PR tree-optimization/57539
11390 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
11391 global.inlined_to of the new node to it. All callers changed.
11392 * ipa-inline-transform.c (clone_inlined_nodes): New variable
11393 inlining_into, pass it to cgraph_clone_node.
11394 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
11395 ipa_free_edge_args_substructures.
11396 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
11397 rdesc linked list. Do not assert rdesc edges have inlined caller.
11398 Assert we have found an rdesc in the rdesc list.
11399
7c5848b8
RB
114002013-06-24 Richard Biener <rguenther@suse.de>
11401
0ba6aff3 11402 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
11403 (pointer_set_lookup): Declare.
11404 (class pointer_map): New template class implementing a
11405 generic pointer to T map.
11406 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
11407 pointer_map<T>::contains, pointer_map<T>::insert,
11408 pointer_map<T>::traverse): New functions.
11409 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
11410 (pointer_set_lookup): New function.
11411 (pointer_set_contains): Use pointer_set_lookup.
11412 (pointer_set_insert): Likewise.
11413 (insert_aux): Remove.
11414 (struct pointer_map_t): Embed a pointer_set_t.
11415 (pointer_map_create): Adjust.
11416 (pointer_map_destroy): Likewise.
11417 (pointer_map_contains): Likewise.
11418 (pointer_map_insert): Likewise.
11419 (pointer_map_traverse): Likewise.
11420 * tree-streamer.h (struct streamer_tree_cache_d): Use a
11421 pointer_map<unsigned> instead of a pointer_map_t.
11422 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
11423 (streamer_tree_cache_lookup): Likewise.
11424 (streamer_tree_cache_create): Likewise.
11425 (streamer_tree_cache_delete): Likewise.
11426 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
11427 pointer_map<unsigned> instead of a pointer_map_t.
11428 (lto_init_tree_ref_encoder): Adjust.
11429 (lto_destroy_tree_ref_encoder): Likewise.
11430 * lto-section-out.c (lto_output_decl_index): Likewise.
11431 (lto_record_function_out_decl_state): Likewise.
11432 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
11433
3dbc97a9
RB
114342013-06-24 Richard Biener <rguenther@suse.de>
11435
11436 PR tree-optimization/57488
11437 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
11438
8345965a
AM
114392013-06-24 Alan Modra <amodra@gmail.com>
11440
11441 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
11442 (gen_easy_altivec_constant): Likewise.
11443 * config/rs6000/predicates.md (easy_vector_constant_add_self,
11444 easy_vector_constant_msb): Likewise.
11445
b7df379f
JJ
114462013-06-23 Jakub Jelinek <jakub@redhat.com>
11447
11448 PR target/57688
11449 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
11450 add missing return true.
11451
12211b99 114522013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
11453
11454 PR target/52483
11455 * config/sh/predicates.md (general_extend_operand): Invoke
11456 general_movsrc_operand for memory operands.
11457 (general_movsrc_operand): Allow reg+reg addressing, do not use
11458 general_operand for memory operands.
11459
97db2bf7
ST
114602013-06-23 Sriraman Tallam <tmsriram@google.com>
11461
11462 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
11463 when current target options does not apply.
11464 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
11465 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
11466 * config/i386/bmiintrin.h: Pass appropriate target
11467 attributes to header.
97db2bf7
ST
11468 * config/i386/mmintrin.h: Ditto.
11469 * config/i386/nmmintrin.h: Ditto.
11470 * config/i386/avx2intrin.h: Ditto.
11471 * config/i386/fxsrintrin.h: Ditto.
11472 * config/i386/tbmintrin.h: Ditto.
11473 * config/i386/xsaveintrin.h: Ditto.
11474 * config/i386/f16cintrin.h: Ditto.
11475 * config/i386/xtestintrin.h: Ditto.
11476 * config/i386/xsaveoptintrin.h: Ditto.
11477 * config/i386/bmi2intrin.h: Ditto.
11478 * config/i386/lzcntintrin.h: Ditto.
11479 * config/i386/smmintrin.h: Ditto.
11480 * config/i386/wmmintrin.h: Ditto.
11481 * config/i386/x86intrin.h: Remove all header include guards.
11482 * config/i386/prfchwintrin.h: Ditto.
11483 * config/i386/pmmintrin.h: Ditto.
11484 * config/i386/tmmintrin.h: Ditto.
11485 * config/i386/xmmintrin.h: Ditto.
11486 * config/i386/popcntintrin.h: Ditto.
11487 * config/i386/rdseedintrin.h: Ditto.
11488 * config/i386/ammintrin.h: Ditto.
11489 * config/i386/emmintrin.h: Ditto.
11490 * config/i386/immintrin.h: Remove all header include guards.
11491 * config/i386/fma4intrin.h: Ditto.
11492 * config/i386/lwpintrin.h: Ditto.
11493 * config/i386/xopintrin.h: Ditto.
11494 * config/i386/ia32intrin.h: Ditto.
11495 * config/i386/avxintrin.h: Ditto.
11496 * config/i386/rtmintrin.h: Ditto.
11497 * config/i386/fmaintrin.h: Ditto.
11498 * config/i386/mm3dnow.h: Ditto.
11499
495e6879
ST
115002013-06-22 Sriraman Tallam <tmsriram@google.com>
11501
11502 * common/config/i386/i386-common.c: Handle LZCNT.
11503
11e8f687
AK
115042013-06-22 Andi Kleen <ak@linux.intel.com>
11505
11506 * doc/extend.texi: Use __atomic_store_n instead of
11507 __atomic_store in HLE example.
11508
12211b99 115092013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
11510
11511 * config/sh/sh.c: Remove <cstdlib> workaround.
11512
927f908b
AK
115132013-06-21 Andi Kleen <ak@linux.intel.com>
11514
0ba6aff3 11515 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 11516
cca410b6
AK
115172013-06-21 Andi Kleen <ak@linux.intel.com>
11518
11519 * doc/extend.texi: Document that __atomic_clear and
11520 __atomic_test_and_set should only be used with bool.
11521
d84db1ed
JH
115222013-06-20 Jan Hubicka <jh@suse.cz>
11523
11524 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
11525 types_same_for_odr.
11526 * tree.c (decls_same_for_odr): New function.
11527 (same_for_edr): New function.
11528 (types_same_for_odr): New function.
11529 (get_binfo_at_offset): Use it.
11530 * tree.h (types_same_for_odr): Declare.
11531
12211b99 115322013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
11533 Jason Merrill <jason@redhat.com>
11534
11535 * system.h: Include <cstdlib> as well as <stdlib.h>.
11536
49b4ff63
UB
115372013-06-20 Uros Bizjak <ubizjak@gmail.com>
11538
11539 PR target/57655
11540 * config/i386/i386.c (construct_container): Report error if
11541 long double is used with disabled x87 float returns.
11542
7a89ad00
JH
115432013-06-20 Jan Hubicka <jh@suse.cz>
11544
11545 * lto-cgraph.c (input_symtab): Do not set cgraph state.
11546
12211b99 115472013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
11548
11549 PR rtl-optimization/57425
11550 PR rtl-optimization/57569
11551 * alias.c (write_dependence_p): Remove parameters mem_mode and
11552 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
11553 Changed all callers.
11554 (canon_anti_dependence): Get comments and semantics in sync.
11555 Add parameter mem_canonicalized. Changed all callers.
11556 * rtl.h (canon_anti_dependence): Update prototype.
11557
d16e9a99
RB
115582013-06-20 Richard Biener <rguenther@suse.de>
11559
11560 * data-streamer-in.c (streamer_read_uhwi): Optimize single
11561 byte case, inline streamer_read_uchar and defer section
11562 overrun check.
11563
c3a9b91b
RB
115642013-06-20 Richard Biener <rguenther@suse.de>
11565
11566 PR tree-optimization/57584
11567 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
11568 SSA names into the expanded expression that take part in
11569 abnormal coalescing.
11570
371e77e3 115712013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
11572
11573 * gcov.c (print_usage): Handle new option.
11574 (process_args): Ditto.
11575 (get_gcov_intermediate_filename): New function.
11576 (output_intermediate_file): New function.
11577 (output_gcov_file): New function
11578 (generate_results): Handle new option.
11579 (release_function): Relase demangled name.
11580 (read_graph_file): Handle demangled name.
11581 (output_lines): Ditto.
11582 * doc/gcov.texi: Document gcov intermediate format.
11583
11f5b71a
VM
115842013-06-19 Vladimir Makarov <vmakarov@redhat.com>
11585
11586 PR bootstrap/57604
11587 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
11588 (lra_emit_add): Use the functions. Add comment about Y as an
11589 address segment.
11590
e1f9340b
DE
115912013-06-19 David Edelsohn <dje.gcc@gmail.com>
11592
11593 PR driver/57652
11594 * collect2.c (collect_atexit): New.
11595 (collect_exit): Delete.
11596 (main): Register collect_atexit with atexit.
11597 (collect_wait): Change collect_exit to exit.
11598 (do_wait): Same.
11599 * collect2.h (collect_exit): Delete.
11600 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
11601
e3f9e0ac
WM
116022013-06-19 Wei Mi <wmi@google.com>
11603
11604 PR rtl-optimization/57518
11605 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
11606 if regno is used in paradoxical subreg.
11607 (update_equiv_regs): Check pdx_subregs[regno] before
11608 set a reg to be equivalent with a mem.
11609
a09f1a76
MK
116102013-06-19 Matthias Klose <doko@ubuntu.com>
11611
11612 PR driver/57651
11613 * file-find.h (find_a_file): Add a mode parameter.
11614 * file-find.c (find_a_file): Likewise.
11615 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
11616 with X_OK for the executables.
11617 * collect2.c (main): Call find_a_file with X_OK.
11618
7d18b0ad
SE
116192013-06-19 Steve Ellcey <sellcey@mips.com>
11620
11621 PR target/56942
11622 * config/mips/mips.md (casesi_internal_mips16_<mode>):
11623 Use NEXT_INSN instead of next_real_insn.
11624
6a6dac52
JH
116252013-06-19 Jan Hubicka <jh@suse.cz>
11626
11627 * cgraph.h (const_value_known_p): Replace by ...
11628 (ctor_for_folding): .. this one.
11629 * cgraphunit.c (process_function_and_variable_attributes): Use it.
11630 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
11631 * expr.c (expand_expr_real_1): Likewise.
11632 (string_constant): Likewise.
11633 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11634 * ipa.c (process_references): Likewise.
11635 (symtab_remove_unreachable_nodes): Likewise.
11636 * ipa-inline-analysis.c (param_change_prob): Likewise.
11637 * gimple-fold.c (canonicalize_constructor_val): Likewise.
11638 (get_base_constructor): Likwise.
11639 * varpool.c (varpool_remove_node): Likewise.
11640 (varpool_remove_initializer): LIkewise.
11641 (dump_varpool_node): LIkwise.
11642 (const_value_known_p): Rewrite to ...
11643 (ctor_for_folding): ... this one.
11644
216c12ab
JJ
116452013-06-19 Jakub Jelinek <jakub@redhat.com>
11646
11647 PR driver/57651
11648 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
11649 PERSONALITY in $PATH derived prefixes.
11650
d53e2f99
JL
116512013-06-19 Jeff Law <law@redhat.com>
11652
ecdbf306
JL
11653 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
11654 in comment.
11655
d53e2f99
JL
11656 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
11657 (simplify_bitwise_binary): Use it to simpify certain binary ops on
11658 booleans.
11659
89e7fc04
SN
116602013-06-19 Sofiane Naci <sofiane.naci@arm.com>
11661
11662 * config/arm/vfp.md: Move VFP instruction classification documentation
11663 to ...
11664 * config/arm/arm.md: ... here. Update instruction classification
11665 documentation.
11666
5e7f6aaa
RE
116672013-06-19 Richard Earnshaw <rearnsha@arm.com>
11668
11669 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
11670 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
11671 pattern. Use more efficient sequences on ARMv5 and Thumb2.
11672
5fdc1e5d
SB
116732013-06-19 Steven Bosscher <steven@gcc.gnu.org>
11674
11675 PR target/57609
11676 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11677 with NEXT_INSN. Use tablejump_p to check for jump table data
11678 insns.
11679
e952afba
PC
116802013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
11681
11682 PR c++/56544
11683 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
11684 that now in C++ the value is correct per the C++ standards.
11685
3fd0303a
RB
116862013-06-19 Richard Biener <rguenther@suse.de>
11687
11688 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
11689 for global context.
11690
b04e4b08
AK
116912013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11692
11693 Revert:
11694 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11695
11696 PR target/57609
11697 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11698 with next_active_insn.
11699
bef8491a
ST
117002013-06-18 Sriraman Tallam <tmsriram@google.com>
11701
11702 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
11703 functions are inlined during failures to flag an error.
11704 * tree-inline.c (expand_call_inline): Allow the error to be flagged
11705 in early inline pass.
22fc7d3d 11706
c21b257d
L
117072013-06-18 H.J. Lu <hongjiu.lu@intel.com>
11708
11709 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
11710 in comments.
11711
33255ae3
JB
117122013-06-18 Julian Brown <julian@codesourcery.com>
11713
11714 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
11715 Permit virtual register pre-reload if !strict.
11716 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
11717 change.
11718 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
11719 prototype.
11720 * config/arm/neon.md (movmisalign<mode>): Use
11721 neon_perm_struct_or_reg_operand instead of
11722 neon_struct_or_register_operand.
11723 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
11724 neon_permissive_struct_operand instead of neon_struct_operand.
11725 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
11726 neon_vector_mem_operand.
11727 * config/arm/predicates.md (neon_struct_operand): Adjust call to
11728 neon_vector_mem_operand.
11729 (neon_permissive_struct_operand): New.
11730 (neon_struct_or_register_operand): Rename to...
11731 (neon_perm_struct_or_reg_operand): This. Adjust call to
11732 neon_vector_mem_operand.
11733
d579fcda
RB
117342013-06-18 Richard Biener <rguenther@suse.de>
11735
11736 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
11737 * lto-streamer.h: Include pointer-set.h.
11738 (struct lto_decl_slot): Remove.
11739 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
11740 Remove next_index entry.
11741 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
11742 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
11743 (lto_init_tree_ref_encoder): Adjust.
11744 (lto_destroy_tree_ref_encoder): Likewise.
11745 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
11746 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
11747 (lto_output_decl_index): Adjust.
11748 (lto_new_out_decl_state): Likewise.
11749 (lto_record_function_out_decl_state): Likewise.
11750 * lto-streamer-out.c (copy_function): Likewise.
11751
31ee20ba
RB
117522013-06-18 Richard Biener <rguenther@suse.de>
11753
11754 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
11755 * cgraphunit.c: Include cfgloop.h.
11756 (init_lowered_empty_function): Initialize the loop tree.
11757 (assemble_thunk): Insert new BBs into loops.
11758
ac0511f2
RB
117592013-06-18 Richard Biener <rguenther@suse.de>
11760
11761 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
11762 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
11763 the map from cache entry to cache index optional.
11764 (streamer_tree_cache_replace_tree): Adjust accordingly.
11765 (streamer_tree_cache_append): Likewise.
11766 (streamer_tree_cache_delete): Likewise.
11767 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
11768 streamer cache map from cache entry to cache index.
11769 * lto-streamer-out.c (create_output_block): Adjust.
11770
09485a08
SN
117712013-06-18 Sofiane Naci <sofiane.naci@arm.com>
11772
22fc7d3d
UB
11773 * config/arm/arm.md (attribute "insn"): Move multiplication and
11774 division attributes to...
09485a08
SN
11775 (attribute "type"): ... here. Remove mult.
11776 (attribute "mul32"): New attribute.
11777 (attribute "mul64"): Add umaal.
11778 (*arm_mulsi3): Update attributes.
11779 (*arm_mulsi3_v6): Likewise.
11780 (*thumb_mulsi3): Likewise.
11781 (*thumb_mulsi3_v6): Likewise.
11782 (*mulsi3_compare0): Likewise.
11783 (*mulsi3_compare0_v6): Likewise.
11784 (*mulsi_compare0_scratch): Likewise.
11785 (*mulsi_compare0_scratch_v6): Likewise.
11786 (*mulsi3addsi): Likewise.
11787 (*mulsi3addsi_v6): Likewise.
11788 (*mulsi3addsi_compare0): Likewise.
11789 (*mulsi3addsi_compare0_v6): Likewise.
11790 (*mulsi3addsi_compare0_scratch): Likewise.
11791 (*mulsi3addsi_compare0_scratch_v6): Likewise.
11792 (*mulsi3subsi): Likewise.
11793 (*mulsidi3adddi): Likewise.
11794 (*mulsi3addsi_v6): Likewise.
11795 (*mulsidi3adddi_v6): Likewise.
11796 (*mulsidi3_nov6): Likewise.
11797 (*mulsidi3_v6): Likewise.
11798 (*umulsidi3_nov6): Likewise.
11799 (*umulsidi3_v6): Likewise.
11800 (*umulsidi3adddi): Likewise.
11801 (*umulsidi3adddi_v6): Likewise.
11802 (*smulsi3_highpart_nov6): Likewise.
11803 (*smulsi3_highpart_v6): Likewise.
11804 (*umulsi3_highpart_nov6): Likewise.
11805 (*umulsi3_highpart_v6): Likewise.
11806 (mulhisi3): Likewise.
11807 (*mulhisi3tb): Likewise.
11808 (*mulhisi3bt): Likewise.
11809 (*mulhisi3tt): Likewise.
11810 (maddhisi4): Likewise.
11811 (*maddhisi4tb): Likewise.
11812 (*maddhisi4tt): Likewise.
11813 (maddhidi4): Likewise.
11814 (*maddhidi4tb): Likewise.
11815 (*maddhidi4tt): Likewise.
11816 (divsi3): Likewise.
11817 (udivsi3): Likewise.
11818 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
11819 (thumb2_mulsi_short_compare0): Likewise.
11820 (thumb2_mulsi_short_compare0_scratch): Likewise.
11821 * config/arm/arm1020e.md (1020mult1): Update attribute change.
11822 (1020mult2): Likewise.
11823 (1020mult3): Likewise.
11824 (1020mult4): Likewise.
11825 (1020mult5): Likewise.
11826 (1020mult6): Likewise.
22fc7d3d
UB
11827 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
11828 change.
09485a08
SN
11829 (cortex_a15_mult64): Likewise.
11830 (cortex_a15_sdiv): Likewise.
11831 (cortex_a15_udiv): Likewise.
11832 * config/arm/arm1026ejs.md (mult1): Update attribute change.
11833 (mult2): Likewise.
11834 (mult3): Likewise.
11835 (mult4): Likewise.
11836 (mult5): Likewise.
11837 (mult6): Likewise.
11838 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
11839 (pj4_ir_div): Likewise.
11840 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
11841 (11_mult2): Likewise.
11842 (11_mult3): Likewise.
11843 (11_mult4): Likewise.
11844 (11_mult5): Likewise.
11845 (11_mult6): Likewise.
11846 (11_mult7): Likewise.
11847 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
11848 (cortex_a8_mla): Likewise.
11849 (cortex_a8_mull): Likewise.
11850 (cortex_a8_smulwy): Likewise.
11851 (cortex_a8_smlald): Likewise.
11852 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
11853 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
11854 (cortex_r4_mul_3): Likewise.
11855 (cortex_r4_mla_4): Likewise.
11856 (cortex_r4_mla_3): Likewise.
11857 (cortex_r4_smlald): Likewise.
11858 (cortex_r4_mull): Likewise.
11859 (cortex_r4_sdiv): Likewise.
11860 (cortex_r4_udiv): Likewise.
11861 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
11862 (cortex_a7_idiv): Likewise.
11863 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
11864 (9_mult2): Likewise.
11865 (9_mult3): Likewise.
11866 (9_mult4): Likewise.
11867 (9_mult5): Likewise.
11868 (9_mult6): Likewise.
11869 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
11870 (cortex_a53_sdiv): Likewise.
11871 (cortex_a53_udiv): Likewise.
11872 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
11873 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
11874 (mp626_mult2): Likewise.
11875 (mp626_mult3): Likewise.
11876 (mp626_mult4): Likewise.
11877 * config/arm/fa526.md (526_mult1): Update attribute change.
11878 (526_mult2): Likewise.
11879 * config/arm/arm-generic.md (mult): Update attribute change.
11880 (mult_ldsched_strongarm): Likewise.
11881 (mult_ldsched): Likewise.
11882 (multi_cycle): Likewise.
11883 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
11884 * config/arm/fa606te.md (606te_mult1): Update attribute change.
11885 (606te_mult2): Likewise.
11886 (606te_mult3): Likewise.
11887 (606te_mult4): Likewise.
11888 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
11889 (cortex_a9_mac16): Likewise.
11890 (cortex_a9_multiply): Likewise.
11891 (cortex_a9_mac): Likewise.
11892 (cortex_a9_multiply_long): Likewise.
11893 * config/arm/fa626te.md (626te_mult1): Update attribute change.
11894 (626te_mult2): Likewise.
11895 (626te_mult3): Likewise.
11896 (626te_mult4): Likewise.
11897
8951f345
RB
118982013-06-18 Richard Biener <rguenther@suse.de>
11899
11900 PR lto/57334
11901 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
11902
d8101d05
AK
119032013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11904
11905 PR target/57609
11906 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11907 with next_active_insn.
11908
69eff9da
AM
119092013-06-18 Alan Modra <amodra@gmail.com>
11910
11911 * config/rs6000/rs6000.h (enum data_align): New.
11912 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
11913 (DATA_ABI_ALIGNMENT): Define.
11914 (CONSTANT_ALIGNMENT): Correct comment.
11915 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
11916 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
11917
8ed00d76
DM
119182013-06-17 David Malcolm <dmalcolm@redhat.com>
11919
11920 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
11921 ATTRIBUTE_UNUSED marking.
11922
3d33d06b
SN
119232013-06-17 Sofiane Naci <sofiane.naci@arm.com>
11924
11925 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
11926 alternative and update.
11927 (aarch64_dup_lanedi): Delete.
11928 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
11929 * config/aarch64/aarch64-simd-builtins.def: Update.
11930
ee03e71d
RB
119312013-06-17 Richard Biener <rguenther@suse.de>
11932
11933 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
11934 (lto_input_scc): Declare.
11935 (lto_input_tree_1): Likewise.
11936 (struct lto_stats_d): Add num_tree_bodies_output and
11937 num_pickle_refs_output.
11938 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
11939 (lto_read_tree_1): Split out from ...
11940 (lto_read_tree): ... this.
11941 (lto_input_scc): New function.
11942 (lto_input_tree_1): Split out from ...
11943 (lto_input_tree): ... this. Handle LTO_tree_scc.
11944 (lto_data_in_create): Create the streamer cache without hashes.
11945 * lto-streamer-out.c (create_output_block): Create the streamer
11946 cache with hashes when not doing WPA.
11947 (lto_write_tree_1): Split out from ...
11948 (lto_write_tree): ... this.
11949 (get_symbol_initial_value): New function.
11950 (lto_output_tree_1): Split out from ...
11951 (lto_output_tree): ... this. Write trees as series of SCCs
11952 using a DFS walk via DFS_write_tree.
11953 (struct sccs, struct scc_entry): New types.
11954 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
11955 (DFS_write_tree_body): New function.
11956 (DFS_write_tree): Likewise.
11957 (hash_tree): Likewise.
11958 (scc_entry_compare): Likewise.
11959 (hash_scc): Likewise.
11960 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
11961 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
11962 TREE_CHAIN as regular reference.
11963 (streamer_read_integer_cst): Remove.
11964 (streamer_get_pickled_tree): Adjust.
11965 * tree-streamer-out.c (streamer_write_chain): Disable streaming
11966 of DECL_EXTERNALs in BLOCK_VARS for now.
11967 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
11968 reference.
11969 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
11970 Add hash value argument and record that if hashes are recorded
11971 in the cache.
11972 (streamer_tree_cache_insert_1): Adjust.
11973 (streamer_tree_cache_insert): Likewise.
11974 (streamer_tree_cache_insert_at): Rename to ...
11975 (streamer_tree_cache_replace_tree): ... this and adjust.
11976 (streamer_tree_cache_append): Adjust.
11977 (record_common_node): Likewise.
11978 (streamer_tree_cache_create): Add argument whether to
11979 record hash values together with trees.
11980 (streamer_tree_cache_delete): Adjust.
11981 * tree-streamer.h (struct streamer_tree_cache_d): Add
11982 vector of hashes.
11983 (streamer_read_integer_cst): Remove.
11984 (streamer_tree_cache_insert): Adjust.
11985 (streamer_tree_cache_append): Likewise.
11986 (streamer_tree_cache_insert_at): Rename to ...
11987 (streamer_tree_cache_replace_tree): ... this and adjust.
11988 (streamer_tree_cache_create): Add argument whether to record hashes.
11989 (streamer_tree_cache_get): Rename to ...
11990 (streamer_tree_cache_get_tree): ... this.
11991 (streamer_tree_cache_get_hash): New function.
11992 * tree.c (cache_integer_cst): New function.
11993 * tree.h (cache_integer_cst): Declare.
11994 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
11995 * lto-symtab.c (lto_varpool_replace_node): Only release
11996 DECL_INITIAL of non-prevailing decls.
11997 * varpool.c (varpool_remove_initializer): Do not release
11998 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
11999
0de86a92
JU
120002013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12001
12002 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
12003 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
12004 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
12005 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
12006 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
12007 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
12008 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
12009 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
12010 instead of TARGET_64BIT.
12011 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
12012 Require ISA_HAS_<D>DIV.
12013
74240413
RS
120142013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
12015
12016 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
12017 (mips*-*-linux*): Move default with_llsc setting to where other
12018 defaults are set.
12019 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
12020 with_arch block.
12021 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
12022 Likewise. Remove default with_tune setting. Move default float
12023 setting to its own block. Handle with_llsc in the same block as above.
12024
12211b99 120252013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
12026
12027 PR rtl-optimization/57425
12028 PR rtl-optimization/57569
299a5f6a 12029 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
12030 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
12031 Changed all callers.
12032 (canon_anti_dependence): New function.
12033 * cse.c (check_dependence): Use canon_anti_dependence.
12034 * cselib.c (cselib_invalidate_mem): Likewise.
12035 * rtl.h (canon_anti_dependence): Declare.
12036
b259d352
JU
120372013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12038
12039 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
12040 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
12041 ".set mips3" for 64-bit targets.
12042
4de09b85
DC
120432013-06-15 Dehao Chen <dehao@google.com>
12044
12045 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
12046 * gimple-low.c (gimple_check_call_matching_types): Likewise.
12047 (gimple_check_call_args): Likewise.
12048 * value-prof.c (check_ic_target): Likewise.
12049 * ipa-inline.c (early_inliner): Likewise.
12050 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
12051 * cgraph.c (cgraph_create_edge_1): Likewise.
12052 (cgraph_make_edge_direct): Likewise.
12053
d1aa4a76
MM
120542013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12055
12056 PR target/57615
12057 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
12058 rs6000_output_move_128bit to handle emitting quad memory
12059 operations. Set attribute length to 8 bytes.
12060
12211b99 120612013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
12062
12063 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
12064 New pattern.
12065 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
12066 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
12067 (aarch64_<su>mlsl<mode>): Likewise.
12068
f5273574
MS
120692013-06-14 Mike Stump <mikestump@comcast.net>
12070
12071 * Makefile.in (TARGET_H): Add insn-codes.h.
12072
ef7e7ab2
AM
120732013-06-14 Alan Modra <amodra@gmail.com>
12074
12075 PR middle-end/57134
12076 PR middle-end/57586
12077 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
12078 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
12079 bitfield expansion when EXPAND_MEMORY.
12080 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
12081
135faab6
MM
120822013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12083
12084 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
12085 test for clearing quad memory on 32-bit later.
12086
948a1fd9
MG
120872013-06-13 Marc Glisse <marc.glisse@inria.fr>
12088
12089 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
12090 (fold_negate_expr): Likewise.
12091 (fold_real_zero_addition_p): Handle vectors.
12092 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
12093
0597fb9c
AM
120942013-06-14 Alan Modra <amodra@gmail.com>
12095
12096 * varasm.c (force_const_mem): Revert 2013-06-07 change.
12097
e5b962d0
JH
120982013-06-13 Jan Hubicka <jh@suse.cz>
12099
12100 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
12101 Local comdats are not externally visible.
12102 * symtab.c (dump_symtab_base): Dump externally visible.
12103 (verify_symtab_base): Verify back links in the symtab hash.
12104
a8355e51
BC
121052013-06-13 Bin Cheng <bin.cheng@arm.com>
12106
12107 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
12108 CONVERT_EXPR as equal nodes.
12109
8f7e6e33
BC
121102013-06-13 Bin Cheng <bin.cheng@arm.com>
12111
22fc7d3d 12112 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 12113
5d418483
MG
121142013-06-13 Marc Glisse <marc.glisse@inria.fr>
12115
12116 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
12117 Generalize to complex and vector.
12118 * tree.c (build_all_ones_cst): New function.
12119 * tree.h (build_all_ones_cst): Declare it.
12120
50751417
AM
121212013-06-13 Alan Modra <amodra@gmail.com>
12122
12123 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
12124 * config/rs6000/rs6000.md (signbittf2): New insn.
12125 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
12126 (abstf2_internal, cmptf_internal2): Likewise.
12127 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
12128
4b02c962 121292013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12130 Pat Haugen <pthaugen@us.ibm.com>
12131 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
12132
12133 * config/rs6000/rs6000.c (emit_load_locked): Add support for
12134 power8 byte, half-word, and quad-word atomic instructions.
12135 (emit_store_conditional): Likewise.
12136 (rs6000_expand_atomic_compare_and_swap): Likewise.
12137 (rs6000_expand_atomic_op): Likewise.
12138
12139 * config/rs6000/sync.md (larx): Add new modes for power8.
12140 (stcx): Likewise.
12141 (AINT): New mode iterator to include TImode as well as normal
12142 integer modes on power8.
12143 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
12144 that VSX registers are not considered. Use AINT mode iterator
12145 instead of INT1 to allow inclusion of quad word atomic operations
12146 on power8.
12147 (load_locked<mode>): Likewise.
12148 (store_conditional<mode>): Likewise.
12149 (atomic_compare_and_swap<mode>): Likewise.
12150 (atomic_exchange<mode>): Likewise.
12151 (atomic_nand<mode>): Likewise.
12152 (atomic_fetch_<fetchop_name><mode>): Likewise.
12153 (atomic_nand_fetch<mode>): Likewise.
12154 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
12155 each type.
12156 (ATOMIC): On power8, add QImode, HImode modes.
12157 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
12158 modes that promote to SImode.
12159 (load_lockedti): Convert TImode arguments to PTImode, so that we
12160 get a guaranteed even/odd register pair.
12161 (load_lockedpti): Likewise.
12162 (store_conditionalti): Likewise.
12163 (store_conditionalpti): Likewise.
12164
12165 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
12166 atomic load/store instructions.
12167 (HSI): Likewise.
12168
710b6cc1
RS
121692013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
12170
12171 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
12172 loads.
12173 (insn_count): New attribute, with most cases extracted from...
12174 (length): ...here. Redefine most cases in terms of insn_count.
12175 (single_insn): Delete.
12176 (can_delay): Use insn_count to check for single instructions.
12177 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
12178 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
12179 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
12180 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
12181 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
12182 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
12183 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
12184 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
12185 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
12186 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
12187 rather than "length".
12188 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
12189 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
12190 Use "insn_count" rather than "length".
12191 * config/mips/mips-dsp.md
12192 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
12193 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
12194 length attributes.
12195
1951f101
MG
121962013-06-12 Marc Glisse <marc.glisse@inria.fr>
12197
12198 PR tree-optimization/57361
12199 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
12200
8b033a8a
SN
122012013-06-12 Sofiane Naci <sofiane.naci@arm.com>
12202
22fc7d3d
UB
12203 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
12204 to split.
8b033a8a
SN
12205 (aarch64_simd_combine<mode>): New instruction expansion.
12206 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
12207 function prototype.
12208 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
12209 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
12210
ca0f62a8
JH
122112013-06-12 Jan Hubicka <jh@suse.cz>
12212
12213 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
12214 decl has when in streaming stage.
12215 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
12216 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
12217
12211b99 122182013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
12219
12220 PR target/57578
12221 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
12222
bfdeda2c
JJ
122232013-06-12 Jakub Jelinek <jakub@redhat.com>
12224
12225 PR tree-optimization/57537
12226 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
12227 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
12228
a4fa02d1
RB
122292013-06-12 Richard Biener <rguenther@suse.de>
12230
12231 * data-streamer.h (streamer_write_char_stream): CSE
12232 obs->current_pointer.
12233 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
12234 streamer_write_char_stream manually and optimize the resulting loop.
12235 (streamer_write_hwi_stream): Likewise.
12236
bbf9ad07
JH
122372013-06-12 Jan Hubicka <jh@suse.cz>
12238
12239 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
12240 * cgraph.h (varpool_create_empty_node): Declare.
12241 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
12242 duplicated nodes.
12243 * symtab.c (symtab_unregister_node): Be lax about missin entries
12244 in node hash.
12245 (symtab_get_node): Update comment.
12246 * varpool.c (varpool_create_empty_node): Break out from ...
12247 (varpool_node_for_decl): ... here.
12248 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
12249
a53f90ad
EB
122502013-06-12 Eric Botcazou <ebotcazou@adacore.com>
12251
12252 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
12253 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
12254 part. Use straight-line flow at the end.
12255 <COMPONENT_REF>: Remove superfluous else.
12256 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
12257
946f9306
JJ
122582013-06-12 Jakub Jelinek <jakub@redhat.com>
12259
12260 PR target/56564
12261 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
12262 target hook even for !TREE_PUBLIC decls. If no resolution info
12263 is available, return false for common and external decls.
12264
a7fca6f0
KP
122652013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12266
12267 * config/rl78/constraints.md (U): New constraint.
12268 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
12269 valloc attribute.
12270
c7d8f446
MM
122712013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12272
12273 PR target/57589
12274 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
12275 to allow returning address to AT_PLATFORM name.
12276
08346abd
JH
122772013-06-11 Jan Hubicka <jh@suse.cz>
12278
12279 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
12280 * cgraph.h (symtab_node_base): Add weakref flag.
12281 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
12282 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
12283 (output_weakrefs): Use weakref flag.
12284 * fold-const.c (simple_operand_p): Handle WEAK.
12285 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
12286 * ipa.c (varpool_externally_visible_p): Drop weakref.
12287 (function_and_variable_visibility): Update comment; fix weakref
12288 sanity checks; do not clear DECL_WEAK on them.
12289 * lto-cgraph.c (lto_output_node): update.
12290 (lto_output_varpool_node): Update.
12291 (input_overwrite_node): Update.
12292 (input_node): Update.
12293 (input_varpool_node): Update.
12294 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
12295 (lto_symtab_merge_symbols): Add sanity check.
12296 (lto_symtab_prevailing_decl): Do not special case weakrefs.
12297 * passes.c (rest_of_decl_compilation): Set static flag, too.
12298 * symtab.c (dump_symtab_base): Dump weakref.
12299 (verify_symtab_base): Sanity check weakrefs.
12300 (symtab_make_decl_local): Remove duplicated code.
12301 (symtab_alias_ultimate_target): Simplify.
12302 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 12303
2e6a2f88
TV
123042013-06-11 Tom de Vries <tom@codesourcery.com>
12305
12306 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
12307 sequence_vect == NULL.
12308
d9af3652
DD
123092013-06-11 DJ Delorie <dj@redhat.com>
12310
12311 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
12312 (rl78_unwind_word_mode): New.
12313
ffa66012
DM
123142013-06-11 David Malcolm <dmalcolm@redhat.com>
12315
12316 * final.c (debug_prefix_maps): Make static.
12317
783f2d35
DM
123182013-06-11 David Malcolm <dmalcolm@redhat.com>
12319
12320 * function.c (initial_trampoline): Remove stray copy.
12321
7af26def
SN
123222013-06-11 Sofiane Naci <sofiane.naci@arm.com>
12323
12324 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
12325
97756c0e
MJ
123262013-06-11 Martin Jambor <mjambor@suse.cz>
12327
12328 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
12329 within bounds at the beginning of the function.
12330
2c7b8bf6
AM
123312013-06-11 Alan Modra <amodra@gmail.com>
12332
12333 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
12334 reporting.
12335 (get_named_section): Don't NULL !DECL_P decl.
12336
77cea46e
IZ
123372013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
12338
12339 * doc/invoke.texi (core-avx2): Document.
12340 (slm): Likewise.
12341 (atom): Updated with MOVBE.
12342
888f0920
RB
123432013-06-11 Richard Biener <rguenther@suse.de>
12344
22fc7d3d 12345 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 12346
6b438d58
AB
123472013-06-11 Anton Blanchard <anton@samba.org>
12348
12349 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
12350 correct shift value in little-endian mode.
12351
3bc66938
JJ
123522013-06-11 Jakub Jelinek <jakub@redhat.com>
12353
12354 PR target/56564
12355 * varasm.c (get_variable_align): Move #endif to the right place.
12356
a5dc7f88
CC
123572013-06-10 Cary Coutant <ccoutant@google.com>
12358
12359 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
12360 for hash so that hash table traversal order is deterministic.
12361
19be72ab 123622013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12363 Pat Haugen <pthaugen@us.ibm.com>
12364 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
12365
12366 * config/rs6000/vector.md (GPR move splitter): Do not split moves
12367 of vectors in GPRS if they are direct moves or quad word load or
12368 store moves.
12369
12370 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
12371 declaration.
12372 (direct_move_p): Likewise.
12373 (quad_load_store_p): Likewise.
12374
12375 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
12376 classes into bins based on the physical register type.
12377 (reg_class_to_reg_type): Likewise.
12378 (IS_STD_REG_TYPE): Likewise.
12379 (IS_FP_VECT_REG_TYPE): Likewise.
12380 (reload_fpr_gpr): Arrays to determine what insn to use if we can
12381 use direct move instructions.
12382 (reload_gpr_vsx): Likewise.
12383 (reload_vsx_gpr): Likewise.
12384 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
12385 information that is a simplification of register classes. Also
12386 precalculate direct move reload helpers.
12387 (direct_move_p): New function to return true if the operation can
12388 be done as a direct move instruciton.
12389 (quad_load_store_p): New function to return true if the operation
12390 is a quad memory operation.
12391 (rs6000_legitimize_address): If quad memory, only allow register
12392 indirect for TImode addresses.
12393 (rs6000_legitimate_address_p): Likewise.
12394 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
12395 (rs6000_reload_register_type): Likewise.
12396 (register_to_reg_type): Return register type.
12397 (rs6000_secondary_reload_simple_move): New helper function for
12398 secondary reload and secondary memory needed to identify anything
12399 that is a simple move, and does not need reloading.
12400 (rs6000_secondary_reload_direct_move): New helper function for
12401 secondary reload to identify cases that can be done with several
12402 instructions via the direct move instructions.
12403 (rs6000_secondary_reload_move): New helper function for secondary
12404 reload to identify moves between register types that can be done.
12405 (rs6000_secondary_reload): Add support for quad memory operations
12406 and for direct move.
12407 (rs6000_secondary_memory_needed): Likewise.
12408 (rs6000_debug_secondary_memory_needed): Change argument names.
12409 (rs6000_output_move_128bit): New function to return the move to
12410 use for 128-bit moves, including knowing about the various
12411 limitations of quad memory operations.
12412
12413 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
12414 memory operations. call rs6000_output_move_128bit for the actual
12415 instruciton(s) to generate.
12416 (vsx_movti_64bit): Likewise.
12417
12418 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
12419 (UNSPEC_P8V_MTVSRWZ): Likewise.
12420 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
12421 (UNSPEC_P8V_MTVSRD): Likewise.
12422 (UNSPEC_P8V_XXPERMDI): Likewise.
12423 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
12424 (UNSPEC_FUSION_GPR): Likewise.
12425 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 12426 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
12427 (f32_sv): Likewise.
12428 (f32_dm): Likewise.
12429 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
12430 loads and direct move instructions.
12431 (zero_extendsidi2_lfiwzx): Likewise.
12432 (extendsidi2_lfiwax): Likewise.
12433 (extendsidi2_nocell): Likewise.
12434 (floatsi<mode>2_lfiwax): Likewise.
12435 (lfiwax): Likewise.
12436 (floatunssi<mode>2_lfiwzx): Likewise.
12437 (lfiwzx): Likewise.
12438 (fix_trunc<mode>_stfiwx): Likewise.
12439 (fixuns_trunc<mode>_stfiwx): Likewise.
12440 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
12441 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
12442 (parity<mode>2_cmpb): Set length/type attr.
12443 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
12444 for 'mr.' to fast_compare.
12445 (bpermd_<mode>): Change type attr to popcnt.
12446 (p8_fmrgow_<mode>): New insns for power8 direct move support.
12447 (p8_mtvsrwz_1): Likewise.
12448 (p8_mtvsrwz_2): Likewise.
12449 (reload_fpr_from_gpr<mode>): Likewise.
12450 (p8_mtvsrd_1): Likewise.
12451 (p8_mtvsrd_2): Likewise.
12452 (p8_xxpermdi_<mode>): Likewise.
12453 (reload_vsx_from_gpr<mode>): Likewise.
12454 (reload_vsx_from_gprsf): Likewise.
12455 (p8_mfvsrd_3_<mode>): LIkewise.
12456 (reload_gpr_from_vsx<mode>): Likewise.
12457 (reload_gpr_from_vsxsf): Likewise.
12458 (p8_mfvsrd_4_disf): Likewise.
12459 (multi-word GPR splits): Do not split direct moves or quad memory
12460 operations.
12461
16876bdc
DM
124622013-06-10 David Malcolm <dmalcolm@redhat.com>
12463
12464 * tree-into-ssa.c (interesting_blocks): Make static.
12465
df8a1d28
JJ
124662013-06-10 Jakub Jelinek <jakub@redhat.com>
12467
12468 PR target/56564
12469 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
12470 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
12471 Use DATA_ABI_ALIGNMENT for that case instead if defined.
12472 (get_variable_align): New function.
12473 (get_variable_section, emit_bss, emit_common,
12474 assemble_variable_contents, place_block_symbol): Use
12475 get_variable_align instead of DECL_ALIGN.
12476 (assemble_noswitch_variable): Add align argument, use it
12477 instead of DECL_ALIGN.
12478 (assemble_variable): Adjust caller. Use get_variable_align
12479 instead of DECL_ALIGN.
12480 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
12481 caller.
12482 (DATA_ABI_ALIGNMENT): Define.
12483 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
12484 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
12485 opt is false, only return the psABI mandated alignment increase.
12486 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
12487 (DATA_ABI_ALIGNMENT): ... this.
12488 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
12489 (DATA_ABI_ALIGNMENT): ... this.
12490 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
12491 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
12492 (DATA_ABI_ALIGNMENT): ... this.
12493 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
12494 * doc/tm.texi: Regenerated.
12495
57b29ca6
UB
124962013-06-10 Uros Bizjak <ubizjak@gmail.com>
12497
12498 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
12499 cmp_code to construct REG_EQUAL note.
12500
3e56ed50
JJ
125012013-06-09 Jakub Jelinek <jakub@redhat.com>
12502
12503 PR target/57568
12504 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
12505 that operands[2] doesn't overlap with operands[0].
12506
74fe2a1d
DE
125072013-06-09 David Edelsohn <dje.gcc@gmail.com>
12508 Jan Hubicka <jh@suse.cz>
12509
12510 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
12511 hack to mark symbols as used.
12512
ed52a84e
VM
125132013-06-08 Vladimir Makarov <vmakarov@redhat.com>
12514
12515 PR rtl-optimization/57559
12516 * lra-constraints.c (process_alt_operands): Don't discourage
12517 memory with known offset for offsetable memory constraint.
12518 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
12519
299316ed
EB
125202013-06-08 Eric Botcazou <ebotcazou@adacore.com>
12521
12522 * varasm.c (struct oc_local_state): Reorder fields.
12523 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
12524 and adjust accordingly.
12525 (output_constructor): Reorder initialization code and adjust call to
12526 output_constructor_bitfield.
12527
88ac60d3
JH
125282013-06-07 Jan Hubicka <jh@suse.cz>
12529
12530 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
12531
4cdce1a8
DM
125322013-06-07 David Malcolm <dmalcolm@redhat.com>
12533
12534 * tree-object-size.c (unknown): Make const.
12535
b5e0425c
AK
125362013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12537
12538 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
12539 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
12540 for last alternative in the cpu_facility attribute.
12541
79678d04
KT
125422013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12543
12544 PR target/56315
12545 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
12546 (xordi3): Change operand 2 constraint to arm_xordi_operand.
12547 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
12548 * config/arm/constraints.md (Dg): New constraint.
12549 * config/arm/neon.md (xordi3_neon): Remove.
12550 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
12551 * config/arm/predicates.md (arm_xordi_operand): New predicate.
12552
b31ddbdb
KT
125532013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12554
12555 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
12556 Clean up alternatives.
12557
8f90b7d4
AM
125582013-06-07 Alan Modra <amodra@gmail.com>
12559
12560 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
12561 va_list_gpr_size.
12562
961ce119
AM
125632013-06-07 Alan Modra <amodra@gmail.com>
12564
12565 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
12566
33e49835
KT
125672013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12568
12569 * config/arm/constraints.md (Df): New constraint.
12570 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
12571 Correct length attribute for last two alternatives.
12572
acd17ae6
AM
125732013-06-07 Alan Modra <amodra@gmail.com>
12574
12575 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12576 override user -mfp-in-toc.
12577 (offsettable_ok_by_alignment): Consider just the current access
12578 rather than the whole object, unless BLKmode. Handle
12579 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
12580 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
12581 for -mcmodel=medium.
12582 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
12583 override user -mfp-in-toc or -msum-in-toc. Default to
12584 -mno-fp-in-toc for -mcmodel=medium.
12585
73310b0e
DD
125862013-06-06 DJ Delorie <dj@redhat.com>
12587
12588 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
12589 TARGET_VALID_POINTER_MODE.
12590
0bd62dca 125912013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12592 Pat Haugen <pthaugen@us.ibm.com>
12593 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
12594
12595 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12596 Document new power8 builtins.
12597
12598 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
12599 condition code register, to allow 128-bit logical operations to be
12600 done in the VSX or GPR registers.
12601 (nor<mode>3): Use the canonical form for nor.
12602 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
12603 vclz*, and vpopcnt* vector instructions.
12604 (nand<mode>3): Likewise.
12605 (orc<mode>3): Likewise.
12606 (clz<mode>2): LIkewise.
12607 (popcount<mode>2): Likewise.
12608
12609 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
12610 that only the GPRs are recognized.
12611
12612 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12613 support for new power8 builtins.
12614
12615 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
12616 builtin functions.
12617 (xscvdpspn): Likewise.
12618 (vclz): Likewise.
12619 (vclzb): Likewise.
12620 (vclzh): Likewise.
12621 (vclzw): Likewise.
12622 (vclzd): Likewise.
12623 (vpopcnt): Likewise.
12624 (vpopcntb): Likewise.
12625 (vpopcnth): Likewise.
12626 (vpopcntw): Likewise.
12627 (vpopcntd): Likewise.
12628 (vgbbd): Likewise.
12629 (vmrgew): Likewise.
12630 (vmrgow): Likewise.
12631 (eqv): Likewise.
12632 (eqv_v16qi3): Likewise.
12633 (eqv_v8hi3): Likewise.
12634 (eqv_v4si3): Likewise.
12635 (eqv_v2di3): Likewise.
12636 (eqv_v4sf3): Likewise.
12637 (eqv_v2df3): Likewise.
12638 (nand): Likewise.
12639 (nand_v16qi3): Likewise.
12640 (nand_v8hi3): Likewise.
12641 (nand_v4si3): Likewise.
12642 (nand_v2di3): Likewise.
12643 (nand_v4sf3): Likewise.
12644 (nand_v2df3): Likewise.
12645 (orc): Likewise.
12646 (orc_v16qi3): Likewise.
12647 (orc_v8hi3): Likewise.
12648 (orc_v4si3): Likewise.
12649 (orc_v2di3): Likewise.
12650 (orc_v4sf3): Likewise.
12651 (orc_v2df3): Likewise.
12652
12653 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
12654 allow power8 quad mode in 64-bit.
12655 (rs6000_builtin_vectorized_function): Add support to vectorize
12656 ISA 2.07 count leading zeros, population count builtins.
12657 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
12658 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
12659 (builtin_function_type): Add vgbbd builtin function which takes an
12660 unsigned argument.
12661 (altivec_expand_vec_perm_const): Add support for new power8 merge
12662 instructions.
12663
12664 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
12665 that does not include TImdoe for use with 32-bit.
12666 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
12667 instructions.
12668 (UNSPEC_VSX_CVDPSPN): Likewise.
12669 (vsx_xscvdpspn): Likewise.
12670 (vsx_xscvspdpn): Likewise.
12671 (vsx_xscvdpspn_scalar): Likewise.
12672 (vsx_xscvspdpn_directmove): Likewise.
12673 (vsx_and<mode>3): Split logical operations into 32-bit and
12674 64-bit. Add support to do logical operations on TImode as well as
12675 VSX vector types. Allow logical operations to be done in either
12676 VSX registers or in general purpose registers in 64-bit mode. Add
12677 splitters if GPRs were used. For AND, add clobber of CCmode to
12678 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
12679 encoding.
12680 (vsx_and<mode>3_32bit): Likewise.
12681 (vsx_and<mode>3_64bit): Likewise.
12682 (vsx_ior<mode>3): Likewise.
12683 (vsx_ior<mode>3_32bit): Likewise.
12684 (vsx_ior<mode>3_64bit): Likewise.
12685 (vsx_xor<mode>3): Likewise.
12686 (vsx_xor<mode>3_32bit): Likewise.
12687 (vsx_xor<mode>3_64bit): Likewise.
12688 (vsx_one_cmpl<mode>2): Likewise.
12689 (vsx_one_cmpl<mode>2_32bit): Likewise.
12690 (vsx_one_cmpl<mode>2_64bit): Likewise.
12691 (vsx_nor<mode>3): Likewise.
12692 (vsx_nor<mode>3_32bit): Likewise.
12693 (vsx_nor<mode>3_64bit): Likewise.
12694 (vsx_andc<mode>3): Likewise.
12695 (vsx_andc<mode>3_32bit): Likewise.
12696 (vsx_andc<mode>3_64bit): Likewise.
12697 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
12698 and xxlorc instructions.
12699 (vsx_eqv<mode>3_64bit): Likewise.
12700 (vsx_nand<mode>3_32bit): Likewise.
12701 (vsx_nand<mode>3_64bit): Likewise.
12702 (vsx_orc<mode>3_32bit): Likewise.
12703 (vsx_orc<mode>3_64bit): Likewise.
12704
12705 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
12706
12707 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
12708 instruction.
12709 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
12710 (p8_vmrgow): Likewise.
12711 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
12712 GPRs to be split under VSX.
12713 (p8v_clz<mode>2): Add power8 count leading zero support.
12714 (p8v_popcount<mode>2): Add power8 population count support.
12715 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
12716 support.
12717
12718 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
12719 instruction.
12720
12721 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
12722 builtin functions.
12723 (vec_nand): Likewise.
12724 (vec_vclz): Likewise.
12725 (vec_vclzb): Likewise.
12726 (vec_vclzd): Likewise.
12727 (vec_vclzh): Likewise.
12728 (vec_vclzw): Likewise.
12729 (vec_vgbbd): Likewise.
12730 (vec_vmrgew): Likewise.
12731 (vec_vmrgow): Likewise.
12732 (vec_vpopcnt): Likewise.
12733 (vec_vpopcntb): Likewise.
12734 (vec_vpopcntd): Likewise.
12735 (vec_vpopcnth): Likewise.
12736 (vec_vpopcntw): Likewise.
12737
37684c46
VM
127382013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12739
12740 PR rtl-optimization/57468
12741 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
12742 spilled pseudos.
12743
d89ae27c
VM
127442013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12745
12746 PR rtl-optimization/57459
12747 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
12748 type when setting live regs.
12749
3597e113
VM
127502013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12751
12752 * config/s390/s390.opt (mlra): New option.
12753 * config/s390/s390.c (s390_decompose_address): Check displacement
12754 for all registers for LRA.
12755 (s390_secondary_reload): Don't used secondary reloads for LRA.
12756 (s390_lra_p): New function.
12757 (TARGET_LRA_P): Define.
12758 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
12759 of attribute cpu_facility to zarch for the last alternative.
12760 (*cmpmem_short): Ditto.
12761
01037aeb
EB
127622013-06-06 Eric Botcazou <ebotcazou@adacore.com>
12763
12764 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
12765 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
12766 (arm_expand_prologue): Likewise.
12767
3371a64f
TJ
127682013-06-06 Teresa Johnson <tejohnson@google.com>
12769
12770 PR c++/53743
12771 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
12772 as this is now done by redirect_edge_and_branch_force.
12773 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
12774 barriers, and fix interaction with splitting.
12775 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
12776 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
12777 reflect changes made in the routine.
12778 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
12779 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
12780 since this is called in cfglayout mode, and replace partition fixup
12781 with assert as that is now done by force_nonfallthru_and_redirect.
12782 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
12783 already be marked with region crossing note.
12784 (insert_section_boundary_note): Make non-static, gate on flag
12785 has_bb_partition, rewrite to also check for multiple partitions.
12786 (rest_of_handle_reorder_blocks): Remove call to
12787 insert_section_boundary_note, now done later during free_cfg.
12788 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
12789 * bb-reorder.h (insert_section_boundary_note): Declare.
12790 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
12791 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
12792 invoke insert_section_boundary_note.
12793 (try_redirect_by_replacing_jump): Remove unnecessary
12794 check for region crossing note.
12795 (fixup_partition_crossing): New function.
12796 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
12797 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
12798 in non-cfglayout mode.
12799 (force_nonfallthru_and_redirect): Fixup partition boundaries,
12800 remove old code that tried to do this. Emit barrier correctly
12801 when we are in cfglayout mode.
12802 (last_bb_in_partition): New function.
12803 (rtl_split_edge): Correctly fixup partition boundaries.
12804 (commit_one_edge_insertion): Remove old code that tried to
12805 fixup region crossing edge since this is now handled in
12806 split_block, and set up insertion point correctly since
12807 block may now end in a jump.
12808 (verify_hot_cold_block_grouping): Guard against checking when not in
12809 linearized RTL mode.
12810 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
12811 notes.
12812 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
12813 rtl_verify_flow_info, so not called in cfglayout mode.
12814 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
12815 (fixup_reorder_chain): Remove old code that attempted to fixup region
12816 crossing note as this is now handled in force_nonfallthru_and_redirect.
12817 (duplicate_insn_chain): Don't duplicate switch section notes.
12818 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
12819 note.
12820 * basic-block.h (emit_barrier_after_bb): Declare.
12821
66071e10
KT
128222013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12823
12824 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
12825 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
12826 arm_usatsihi): Adjust alternatives for arm_restrict_it.
12827
0e26bf3d
KT
128282013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12829
12830 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
12831 where appropriate.
12832 * config/arm/ldmstm.md: Regenerate.
12833
12b4e7ef
KT
128342013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12835
12836 * config/arm/sync.md (atomic_loaddi_1):
12837 Disable predication for arm_restrict_it.
12838 (arm_load_exclusive<mode>): Likewise.
12839 (arm_load_exclusivesi): Likewise.
12840 (arm_load_exclusivedi): Likewise.
12841 (arm_load_acquire_exclusive<mode>): Likewise.
12842 (arm_load_acquire_exclusivesi): Likewise.
12843 (arm_load_acquire_exclusivedi): Likewise.
12844 (arm_store_exclusive<mode>): Likewise.
12845 (arm_store_exclusive<mode>): Likewise.
12846 (arm_store_release_exclusivedi): Likewise.
12847 (arm_store_release_exclusive<mode>): Likewise.
12848
15d16c8a
RB
128492013-06-06 Richard Biener <rguenther@suse.de>
12850
12851 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
12852 after LTO_null.
12853 (lto_tag_is_tree_code_p): Adjust.
12854 (lto_tag_is_gimple_code_p): Likewise.
12855 (lto_gimple_code_to_tag): Likewise.
12856 (lto_tag_to_gimple_code): Likewise.
12857 (lto_tree_code_to_tag): Likewise.
12858 (lto_tag_to_tree_code): Likewise.
12859 * data-streamer.h (streamer_write_hwi_in_range): Use
12860 uhwi streaming to stream the normalized range.
12861 (streamer_read_hwi_in_range): Likewise.
12862
17a7fc37
KT
128632013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12864
12865 * config/arm/arm.md (enabled_for_depr_it): New attribute.
12866 (predicable_short_it): Likewise.
12867 (predicated): Likewise.
12868 (enabled): Handle above.
12869 (define_cond_exec): Set predicated attribute to yes.
12870
b57ca59b
MS
128712013-06-05 Mike Stump <mikestump@comcast.net>
12872
12873 * gdbinit.in (__FUNCTION__): Add.
12874
c1e183a9
UB
128752013-06-05 Uros Bizjak <ubizjak@gmail.com>
12876
12877 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
12878 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
12879
0378bddb
JH
128802013-06-05 Jan Hubicka <jh@suse.cz>
12881
12882 * varasm.c (mark_decl_referenced): Revert the removal until targets
12883 are fixed.
12884
8f8a2057
DE
128852013-06-05 David Edelsohn <dje.gcc@gmail.com>
12886
12887 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
12888 instead of mark_decl_referenced.
12889
edb983b2
JH
128902013-06-05 Jan Hubicka <jh@suse.cz>
12891
12892 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
12893 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
12894 and symtab_used_from_object_file_p.
12895 (cgraph_make_node_local_1): Clear forced_by_abi.
12896 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
12897 * cgraph.h (symtab_node_base): Add forced_by_abi.
12898 (decide_is_variable_needed): Remove.
12899 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
12900 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
12901 (decide_is_symbol_needed): ... this one; handle symbols in general;
12902 always analyze virtuals; honnor forced_by_abi.
12903 (cgraph_finalize_function): Update.
12904 (varpool_finalize_decl): Update.
12905 (symbol_defined_and_needed): Remove.
12906 (analyze_functions): Update.
12907 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12908 output_refs, input_overwrite_node): Handle forced_by_abi.
12909 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
12910 (address_taken_from_non_vtable_p): ... this one.
12911 (comdat_can_be_unshared_p_1): New function.
12912 (cgraph_comdat_can_be_unshared_p): Rename to ...
12913 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
12914 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
12915 (function_and_variable_visibility): Clear forced_by_abi as needed.
12916 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
12917 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
12918 * symtab.c (dump_symtab_base): Dump forced_by_abi.
12919 * varpool.c (decide_is_variable_needed): Remove.
12920
9912dbe5
KT
129212013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12922
12923 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
12924 (arm_option_override): Override arm_restrict_it where appropriate.
12925 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
12926 * config/arm/arm.opt (mrestrict-it): New command-line option.
12927 * doc/invoke.texi: Document -mrestrict-it.
12928
34c136b6
DM
129292013-06-05 David Malcolm <dmalcolm@redhat.com>
12930
12931 * tsan.c (tsan_atomic_table): Make const.
12932
a367df53
RB
129332013-06-05 Richard Biener <rguenther@suse.de>
12934
12935 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
12936 index associated with the tree we are supposed to replace.
12937 * tree-streamer-out.c (pack_ts_base_value_fields): Output
12938 TREE_ASM_WRITTEN as zero for everything but SSA names.
12939
70d51a19
DM
129402013-06-05 David Malcolm <dmalcolm@redhat.com>
12941
12942 * tree-ssa-structalias.c (call_stmt_vars): Make static.
12943
b9bd2075
JH
129442013-06-04 Jan Hubicka <jh@suse.cz>
12945
12946 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
12947 (input_node, input_varpool_node): Handle correctly external same
12948 body aliases.
12949 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
12950 nodes at ltrans stage.
12951
aaae719d
JH
129522013-06-04 Jan Hubicka <jh@suse.cz>
12953
12954 * ipa-inline.c (update_caller_keys): Fix availability test.
12955 (update_callee_keys): Likewise.
12956 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
12957 to follow ELF standard.
12958
107eea2c
JU
129592013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
12960
12961 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
12962 (mips64r5900el-*-elf*): New configurations.
12963 * config/mips/mips-cpus.def (r5900): New processor.
12964 * config/mips/mips-tables.opt: Regenerate.
12965 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
12966 (mips_issue_rate): Handle PROCESSOR_R5900.
12967 (mips_reorg_process_insns): Force reorder mode for the R5900.
12968 * config/mips/mips.h (TARGET_MIPS5900): Define.
12969 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
12970 TARGET_MIPS5900.
12971 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
12972 TARGET_MIPS5900.
12973 * config/mips/mips.md (processor): Add r5900.
12974 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
12975
b7342d25
IB
129762013-06-04 Ian Bolton <ian.bolton@arm.com>
12977
12978 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
12979 into function to generate MOVI instruction.
c1e183a9 12980 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
12981 (aarch64_preferred_simd_mode): Turn into wrapper.
12982 (aarch64_output_scalar_simd_mov_immediate): New function.
12983 * config/aarch64/aarch64-protos.h: Add prototype for above.
12984
81c2dfb9
IB
129852013-06-04 Ian Bolton <ian.bolton@arm.com>
12986
12987 * config/aarch64/aarch64.c (simd_immediate_info): Remove
12988 element_char member.
12989 (sizetochar): Return signed char.
12990 (aarch64_simd_valid_immediate): Remove elchar and other
12991 unnecessary variables.
12992 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
12993 Calculate element_char as required.
12994 * config/aarch64/aarch64-protos.h: Update and move prototype
12995 for aarch64_output_simd_mov_immediate.
12996 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
12997 Update arguments.
12998
48063b9d
IB
129992013-06-04 Ian Bolton <ian.bolton@arm.com>
13000
13001 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
13002 information completed by aarch64_simd_valid_immediate.
13003 (aarch64_legitimate_constant_p): Update arguments.
13004 (aarch64_simd_valid_immediate): Work with struct rather than many
13005 pointers.
13006 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
13007 (aarch64_simd_make_constant): Update arguments.
13008 (aarch64_output_simd_mov_immediate): Work with struct rather than
13009 many pointers. Output immediate directly rather than as operand.
13010 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13011 Update prototype.
13012 * config/aarch64/constraints.md (Dn): Update arguments.
13013
3ea63f60
IB
130142013-06-04 Ian Bolton <ian.bolton@arm.com>
13015
13016 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
13017 longer static.
13018 (aarch64_simd_immediate_valid_for_move): Remove.
13019 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
13020 (aarch64_simd_make_constant): Update call.
13021 (aarch64_output_simd_mov_immediate): Update call.
13022 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13023 Add prototype.
13024 * config/aarch64/constraints.md (Dn): Update call.
13025
d8edd899
IB
130262013-06-04 Ian Bolton <ian.bolton@arm.com>
13027
13028 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
13029 return type to bool for prototype.
13030 (aarch64_legitimate_constant_p): Check for true instead of not -1.
13031 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
13032 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
13033
44b20bb8
CM
130342013-06-04 Catherine Moore <clm@codesourcery.com>
13035
13036 * config/mips/mips.opt (meva): New.
c1e183a9 13037 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
13038 (ASM_SPEC): Handle -meva.
13039 * doc/invoke.texi (meva): Document.
13040
52befbd8
AM
130412013-06-04 Alan Modra <amodra@gmail.com>
13042
13043 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
13044 constant output.
13045
aadaf24e
KT
130462013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13047
13048 * rtl.def: Add extra fourth optional field to define_cond_exec.
13049 * gensupport.c (process_one_cond_exec): Process attributes from
13050 define_cond_exec.
13051 * doc/md.texi: Document fourth field in define_cond_exec.
13052
0cd9e9ee
EB
130532013-06-04 Eric Botcazou <ebotcazou@adacore.com>
13054
13055 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
13056 out the processing order as in store_bit_field_1.
13057
cb0f665d
JH
130582013-06-04 Jan Hubicka <jh@suse.cz>
13059
13060 PR middle-end/57500
13061 * cgraphunit.c (cgraph_process_same_body_aliases): Create
13062 non-VAR_DECL node if it does not exist yet.
13063
53984b9b
RS
130642013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
13065
13066 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
13067 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
13068 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
13069 target_cpu_default setting.
13070
5d318fd4
TJ
130712013-06-03 Teresa Johnson <tejohnson@google.com>
13072
13073 * dumpfile.c (opt_info_switch_p): Change -fopt-info
13074 default to -fopt-info=optimized instead of all.
13075 * doc/invoke.texi: Ditto.
13076 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
13077 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
13078 (execute_vect_slp): Emit BB vectorization success under
13079 MSG_OPTIMIZED_LOCATIONS.
13080 * tree-vect-slp.c (vect_slp_transform_bb): Change
13081 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
13082 * tree-vect-loop.c (vect_transform_loop): Ditto.
13083
ec3af349
JM
130842013-06-03 Jason Merrill <jason@redhat.com>
13085
13086 PR c++/57415
13087 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13088 Use TARGET_EXPR for C++.
13089
1baf9159
JJ
130902013-06-03 Jakub Jelinek <jakub@redhat.com>
13091
13092 PR rtl-optimization/57268
0cd9e9ee 13093 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
13094 if DEBUG_INSN_P (insn).
13095
13096 Reapply
13097 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
13098
13099 PR rtl-optimization/57268
13100 * sched-deps.c (sched_analyze_2): Flush dependence lists if
13101 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
13102
0f1d3965
YR
131032013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
13104
13105 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
13106 (ix86_avoid_lea_for_addr): Likewise.
13107 (exact_dependency_1): Likewise.
13108 (ix86_adjust_cost): Likewise.
13109 (swap_top_of_ready_list): Fix formatting and !reload_completed check
13110 removed.
13111 (do_reorder_for_imul): Fix typo, formatting and
13112 !reload_completed check removed.
13113 (ix86_sched_reorder): Fix typo and formatting.
13114 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
13115 list.
13116
3bc30db4
SN
131172013-06-03 Sofiane Naci <sofiane.naci@arm.com>
13118
13119 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
13120
19cc6fac
EB
131212013-06-03 Eric Botcazou <ebotcazou@adacore.com>
13122
13123 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
13124 <STRING_CST>: Likewise.
13125 <VECTOR_CST>: Likewise.
13126
c68a6e08
JW
131272013-06-01 Janus Weil <janus@gcc.gnu.org>
13128 Mikael Morin <mikael@gcc.gnu.org>
13129
13130 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
13131 * config.in: Regenerated.
13132 * configure: Regenerated.
13133
38e55e5c
JH
131342013-06-01 Jan Hubicka <jh@suse.cz>
13135
13136 PR middle-end/57366
13137 * cgraphunit.c (compile): When weakref is not supported,
13138 set up transparent aliases before final output pass.
13139 * varasm.c (assemble_alias): Do not try to do it here.
13140
eb51d2ff
JH
131412013-06-01 Jan Hubicka <jh@suse.cz>
13142
13143 PR middle-end/57467
13144 * passes.c (for_per_function): Skip unanalyzed functions.
13145
40a7fe1e
JH
131462013-06-01 Jan Hubicka <jh@suse.cz>
13147
13148 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
13149 (lto_symtab_merge_symbols_1): ... this one.
13150 (lto_symtab_merge_cgraph_nodes): Rename to ...
13151 (lto_symtab_merge_symbols): ... this one; simplify.
13152 * cgraph.c (same_body_aliases_done): Rename to ...
13153 (cpp_implicit_aliases_done): ... this one.
13154 (cgraph_create_function_alias): Update.
13155 (cgraph_same_body_alias): Update.
c1e183a9 13156 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 13157 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 13158 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
13159 (cgraph_node): Remove same_body_alias.
13160 (varpool_node): Remove alias_of and extra_name_alias.
13161 (same_body_aliases_done): Rename to ..
13162 (cpp_implicit_aliases_done): ... this one.
13163 (symtab_alias_ultimate_target): Add default parameter.
13164 (symtab_resolve_alias): New function.
13165 (fixup_same_cpp_alias_visibility): Declare.
13166 (cgraph_function_node): Add default parameter.
13167 (cgraph_node_asm_name): Likewise.
13168 (cgraph_function_or_thunk_node): Add default parameter; do
13169 not ICE when it is NULL.
13170 (varpool_variable_node): Likewise.
13171 * tree-emutls.c (create_emultls_var): Update.
13172 (ipa_lower_emutls): Update.
13173 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
13174 (cgraph_reset_node): Reset alias info.
13175 (cgraph_finalize_function): Update.
13176 (fixup_same_cpp_alias_visibility): Move to symtab.c.
13177 (analyze_function): Simplify.
13178 (cgraph_process_same_body_aliases): Simplify.
13179 (analyze_functions): Fixup same body aliases.
13180 (handle_alias_pairs): Simplify.
13181 (assemble_thunk): Update.
13182 (assemble_thunks_and_aliases): Update.
13183 (output_weakrefs): Rewrite.
13184 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
13185 (lto_output_varpool_node): Likewise.
13186 (compute_ltrans_boundary): Remve assert.
13187 (get_alias_symbol): New functoin.
13188 (input_node): Rewrite alias handling.
13189 (input_varpool_node): Likewise.
13190 * ipa-pure-const.c (propagate_pure_const): Fix formating.
13191 * ipa.c (process_references): Handle weakrefs correctly.
13192 (symtab_remove_unreachable_nodes): Likewise.
13193 * trans-mem.c (get_cg_data): Update.
13194 (ipa_tm_create_version_alias): Update.
13195 (ipa_tm_execute): Update.
13196 * symtab.c (dump_symtab_base): Dump aliases.
13197 (verify_symtab_base): Verify aliases.
13198 (symtab_node_availability): New function.
13199 (symtab_alias_ultimate_target): Simplify.
13200 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
13201 handle all the fixup cases.
13202 (symtab_resolve_alias): New function.
13203 * passes.c (ipa_write_summaries): Handle weakrefs.
13204 * varpool.c (varpool_analyze_node): Simplify.
13205 (assemble_aliases): Update.
13206 (varpool_create_variable_alias): Simplify.
13207 (varpool_extra_name_alias): Simplify.
13208 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
13209 (lto_symtab_merge_symbols): ... this one.
13210
21759881
DT
132112013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
13212
13213 Revert
13214 PR rtl-optimization/57268
13215 * sched-deps.c (sched_analyze_2): Flush dependence lists if
13216 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
13217
daf4e940
TB
132182013-06-01 Tobias Burnus <burnus@net-b.de>
13219
13220 Partially reverted:
13221 2013-05-31 Tobias Burnus <burnus@net-b.de>
13222
13223 PR middle-end/57073
13224 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
13225 further up.
13226
c359d8d0
DT
132272013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
13228
13229 PR rtl-optimization/57268
13230 * sched-deps.c (sched_analyze_2): Flush dependence lists if
13231 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
13232
4172215d
EB
132332013-05-31 Eric Botcazou <ebotcazou@adacore.com>
13234
13235 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
13236 unordered comparison operators when -fno-trapping-math is in effect
13237 on the e500.
13238 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
13239 and implement unordered comparison operators properly on the e500.
13240
a8c50132
EB
132412013-05-31 Eric Botcazou <ebotcazou@adacore.com>
13242
13243 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
13244 for constant scalar integers.
13245 (simplify_relational_operation_1): Likewise.
13246
44626634
SB
132472013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
13248
13249 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
13250 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
13251 Fix comment.
13252
55805e54
YR
132532013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
13254 Igor Zamyatin <igor.zamyatin@intel.com>
13255
13256 Silvermont (SLM) architecture performance tuning.
13257 * config/i386/i386.h (enum ix86_tune_indices): Add
13258 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
13259 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
13260
13261 * config/i386/i386.c (initial_ix86_tune_features)
13262 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
13263 (ix86_lea_outperforms): Handle Silvermont tuning.
13264 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
13265 call.
13266 (ix86_use_lea_for_mov): Likewise.
13267 (ix86_avoid_lea_for_addr): Likewise.
13268 (ix86_lea_for_add_ok): Likewise.
13269 (exact_dependency_1): New function.
13270 (exact_store_load_dependency): Likewise.
13271 (ix86_adjust_cost): Handle Silvermont tuning.
13272 (do_reoder_for_imul): Likewise.
13273 (swap_top_of_ready_list): New function.
13274 (ix86_sched_reorder): Changed to handle Silvermont tuning.
13275
13276 * config/i386/i386.md (peepholes that split memory operand in fp
13277 converts): New.
13278
e19c9de2
MS
132792013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
13280
13281 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13282 Remove un-necessary braces.
13283
38e6c9a6
MS
132842013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
13285
13286 * config/aarch64/aarch64.c (aarch64_classify_symbol):
13287 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
13288
e3530904
TB
132892013-05-31 Tobias Burnus <burnus@net-b.de>
13290
13291 PR middle-end/57073
c1e183a9 13292 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 13293
b6af05a9
KT
132942013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13295
13296 PR target/56315
13297 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
13298 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
13299 * config/arm/neon.md (iordi3_neon): Remove.
13300 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
13301 * config/arm/predicates.md (imm_for_neon_logic_operand):
13302 Move to earlier in the file.
13303 (neon_logic_op2): Likewise.
13304 (arm_iordi_operand_neon): New predicate.
13305
f800c166
RB
133062013-05-31 Richard Biener <rguenther@suse.de>
13307
13308 PR tree-optimization/57478
13309 PR tree-optimization/57453
13310 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
13311 are life as well.
13312
e571fa59
KP
133132013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13314
13315 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
13316 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
13317
0fa6e0ef
TB
133182013-05-30 Tobias Burnus <burnus@net-b.de>
13319 Thomas Koenig <tkoenig@gcc.gnu.org>
13320
13321 PR middle-end/57073
13322 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
13323 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
13324
4688ddf5
SB
133252013-05-30 Steven Bosscher <steven@gcc.gnu.org>
13326
0fa6e0ef 13327 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 13328
3b9ceb4b
VM
133292013-05-30 Vladimir Makarov <vmakarov@redhat.com>
13330
13331 * target.def (register_usage_leveling_p): New hook.
13332 * targhooks.c (default_register_usage_leveling_p): New.
13333 * targhooks.h (default_register_usage_leveling_p): New prototype.
13334 * lra-assigns.c (register_usage_leveling_p): Use the hook.
13335 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
13336 * doc/tm.texi: Update.
13337 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
13338
65f9e789
IB
133392013-05-30 Ian Bolton <ian.bolton@arm.com>
13340
13341 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
13342 (*insv_reg<mode>): New define_insn.
13343
12211b99 133442013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
13345
13346 PR rtl-optimization/57439
13347 * postreload.c (move2add_valid_value_p): Check that we have
13348 a zero subreg_regno_offset when accessing the register in
13349 the requested mode.
13350
0b871ccf
YR
133512013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
13352 Igor Zamyatin <igor.zamyatin@intel.com>
13353
13354 Silvermont (SLM) architecture pipeline model, tuning and
13355 insn selection.
13356 * config.gcc: Add slm config options and target.
13357
13358 * config/i386/slm.md: New.
13359
13360 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
13361
f43245d1 13362 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
13363 PROCESSOR_SLM.
13364 (ix86_target_macros_internal): Likewise.
13365
f43245d1 13366 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
13367 (m_SLM): New macro flag.
13368 (initial_ix86_tune_features): Set m_SLM.
13369 (x86_accumulate_outgoing_args): Likewise.
13370 (x86_arch_always_fancy_math_387): Likewise.
13371 (processor_target_table): Add slm cost.
13372 (cpu_names): Add slm cpu name.
13373 (x86_option_override_internal): Set SLM ISA.
13374 (ix86_issue_rate): New case PROCESSOR_SLM.
13375 (ia32_multipass_dfa_lookahead): Likewise.
13376 (fold_builtin_cpu): Add slm.
13377
13378 * config/i386/i386.h (TARGET_SLM): New target macro.
13379 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
13380 (processor_type): Add PROCESSOR_SLM.
13381
13382 * config/i386/i386.md (cpu): Add new value "slm".
13383 (slm.md): Include slm.md.
13384
24d5b097
XG
133852013-05-30 Bernd Schmidt <bernds@codesourcery.com>
13386 Zhenqiang Chen <zhenqiang.chen@linaro.org>
13387
13388 * config/arm/arm-protos.h: Add and update function protos.
13389 * config/arm/arm.c (use_simple_return_p): New added.
13390 (thumb2_expand_return): Check simple_return flag.
13391 * config/arm/arm.md: Add simple_return and conditional simple_return.
13392 * config/arm/iterators.md: Add iterator for return and simple_return.
13393
c1cccc15
ZC
133942013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
13395
13396 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
13397 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
13398 (arm_emit_vfp_multi_reg_pop): Likewise.
13399 (thumb2_emit_ldrd_pop): Likewise.
13400 (arm_expand_epilogue): Add misc REG_CFA notes.
13401 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
13402
3a4f280b
LC
134032013-05-29 Lawrence Crowl <crowl@google.com>
13404
13405 * config/arm/t-arm: Update for below.
13406
13407 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
13408 Change type to hash_table. Update dependent calls and types.
13409
13410 * config/i386/t-cygming: Update for below.
13411
13412 * config/i386/t-interix: Update for below.
13413
13414 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
13415 Change type to hash_table. Update dependent calls and types.
13416 (i386_find_on_wrapper_list::wrappers): Likewise.
13417
13418 * config/ia64/t-ia64: Update for below.
13419
13420 * config/ia64/ia64.c (bundle_state_table):
13421 Change type to hash_table. Update dependent calls and types.
13422
13423 * config/mips/mips.c (mips_reorg_process_insns::htab):
13424 Change type to hash_table. Update dependent calls and types.
13425
13426 * config/sol2.c (solaris_comdat_htab):
13427 Change type to hash_table. Update dependent calls and types.
13428
13429 * config/t-sol2: Update for above.
13430
1388a0e3
TJ
134312013-05-29 Teresa Johnson <tejohnson@google.com>
13432
13433 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
13434 functions are not yet marked as defined.
13435
a5965b52 134362013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13437 Pat Haugen <pthaugen@us.ibm.com>
13438 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
13439
13440 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
13441 instructions.
13442 (VEC_A): Likewise.
13443 (VEC_C): Likewise.
13444 (vrotl<mode>3): Likewise.
13445 (vashl<mode>3): Likewise.
13446 (vlshr<mode>3): Likewise.
13447 (vashr<mode>3): Likewise.
13448
13449 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13450 support for power8 V2DI builtins.
13451
13452 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
13453 power8 V2DI builtins.
13454 (vupkhsw): Likewise.
13455 (vupklsw): Likewise.
13456 (vaddudm): Likewise.
13457 (vminsd): Likewise.
13458 (vmaxsd): Likewise.
13459 (vminud): Likewise.
13460 (vmaxud): Likewise.
13461 (vpkudum): Likewise.
13462 (vpksdss): Likewise.
13463 (vpkudus): Likewise.
13464 (vpksdus): Likewise.
13465 (vrld): Likewise.
13466 (vsld): Likewise.
13467 (vsrd): Likewise.
13468 (vsrad): Likewise.
13469 (vsubudm): Likewise.
13470 (vcmpequd): Likewise.
13471 (vcmpgtsd): Likewise.
13472 (vcmpgtud): Likewise.
13473 (vcmpequd_p): Likewise.
13474 (vcmpgtsd_p): Likewise.
13475 (vcmpgtud_p): Likewise.
13476 (vupkhsw): Likewise.
13477 (vupklsw): Likewise.
13478 (vaddudm): Likewise.
13479 (vmaxsd): Likewise.
13480 (vmaxud): Likewise.
13481 (vminsd): Likewise.
13482 (vminud): Likewise.
13483 (vpksdss): Likewise.
13484 (vpksdus): Likewise.
13485 (vpkudum): Likewise.
13486 (vpkudus): Likewise.
13487 (vrld): Likewise.
13488 (vsld): Likewise.
13489 (vsrad): Likewise.
13490 (vsrd): Likewise.
13491 (vsubudm): Likewise.
13492
13493 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
13494 support for power8 V2DI instructions.
13495
13496 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
13497 power8 V2DI instructions. Combine pack and unpack insns to use an
13498 iterator for each mode. Check whether a particular mode supports
13499 Altivec instructions instead of just checking TARGET_ALTIVEC.
13500 (UNSPEC_VPKUWUM): Likewise.
13501 (UNSPEC_VPKSHSS): Likewise.
13502 (UNSPEC_VPKSWSS): Likewise.
13503 (UNSPEC_VPKUHUS): Likewise.
13504 (UNSPEC_VPKSHUS): Likewise.
13505 (UNSPEC_VPKUWUS): Likewise.
13506 (UNSPEC_VPKSWUS): Likewise.
13507 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
13508 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
13509 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
13510 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
13511 (UNSPEC_VUPKHSB): Likewise.
13512 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
13513 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
13514 (UNSPEC_VUPKHSH): Likewise.
13515 (UNSPEC_VUPKLSB): Likewise.
13516 (UNSPEC_VUPKLSH): Likewise.
13517 (VI2): Likewise.
13518 (VI_char): Likewise.
13519 (VI_scalar): Likewise.
13520 (VI_unit): Likewise.
13521 (VP): Likewise.
13522 (VP_small): Likewise.
13523 (VP_small_lc): Likewise.
13524 (VU_char): Likewise.
13525 (add<mode>3): Likewise.
13526 (altivec_vaddcuw): Likewise.
13527 (altivec_vaddu<VI_char>s): Likewise.
13528 (altivec_vadds<VI_char>s): Likewise.
13529 (sub<mode>3): Likewise.
13530 (altivec_vsubcuw): Likewise.
13531 (altivec_vsubu<VI_char>s): Likewise.
13532 (altivec_vsubs<VI_char>s): Likewise.
13533 (altivec_vavgs<VI_char>): Likewise.
13534 (altivec_vcmpbfp): Likewise.
13535 (altivec_eq<mode>): Likewise.
13536 (altivec_gt<mode>): Likewise.
13537 (altivec_gtu<mode>): Likewise.
13538 (umax<mode>3): Likewise.
13539 (smax<mode>3): Likewise.
13540 (umin<mode>3): Likewise.
13541 (smin<mode>3): Likewise.
13542 (altivec_vpkuhum): Likewise.
13543 (altivec_vpkuwum): Likewise.
13544 (altivec_vpkshss): Likewise.
13545 (altivec_vpkswss): Likewise.
13546 (altivec_vpkuhus): Likewise.
13547 (altivec_vpkshus): Likewise.
13548 (altivec_vpkuwus): Likewise.
13549 (altivec_vpkswus): Likewise.
13550 (altivec_vpks<VI_char>ss): Likewise.
13551 (altivec_vpks<VI_char>us): Likewise.
13552 (altivec_vpku<VI_char>us): Likewise.
13553 (altivec_vpku<VI_char>um): Likewise.
13554 (altivec_vrl<VI_char>): Likewise.
13555 (altivec_vsl<VI_char>): Likewise.
13556 (altivec_vsr<VI_char>): Likewise.
13557 (altivec_vsra<VI_char>): Likewise.
13558 (altivec_vsldoi_<mode>): Likewise.
13559 (altivec_vupkhsb): Likewise.
13560 (altivec_vupkhs<VU_char>): Likewise.
13561 (altivec_vupkls<VU_char>): Likewise.
13562 (altivec_vupkhsh): Likewise.
13563 (altivec_vupklsb): Likewise.
13564 (altivec_vupklsh): Likewise.
13565 (altivec_vcmpequ<VI_char>_p): Likewise.
13566 (altivec_vcmpgts<VI_char>_p): Likewise.
13567 (altivec_vcmpgtu<VI_char>_p): Likewise.
13568 (abs<mode>2): Likewise.
13569 (vec_unpacks_hi_v16qi): Likewise.
13570 (vec_unpacks_hi_v8hi): Likewise.
13571 (vec_unpacks_lo_v16qi): Likewise.
13572 (vec_unpacks_hi_<VP_small_lc>): Likewise.
13573 (vec_unpacks_lo_v8hi): Likewise.
13574 (vec_unpacks_lo_<VP_small_lc>): Likewise.
13575 (vec_pack_trunc_v8h): Likewise.
13576 (vec_pack_trunc_v4si): Likewise.
13577 (vec_pack_trunc_<mode>): Likewise.
13578
13579 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
13580 V2DI builtins.
13581 (vec_vmaxsd): Likewise.
13582 (vec_vmaxud): Likewise.
13583 (vec_vminsd): Likewise.
13584 (vec_vminud): Likewise.
13585 (vec_vpksdss): Likewise.
13586 (vec_vpksdus): Likewise.
13587 (vec_vpkudum): Likewise.
13588 (vec_vpkudus): Likewise.
13589 (vec_vrld): Likewise.
13590 (vec_vsld): Likewise.
13591 (vec_vsrad): Likewise.
13592 (vec_vsrd): Likewise.
13593 (vec_vsubudm): Likewise.
13594 (vec_vupkhsw): Likewise.
13595 (vec_vupklsw): Likewise.
13596
e70670cf
JH
135972013-05-29 Jan Hubicka <jh@suse.cz>
13598
13599 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
13600 flags; reorder rest of fields in more consistent way.
13601 (varpool_node): Remove analyzed, finalized and alias.
13602 (cgraph_ndoe): Likewise.
13603 (symtab_alias_ultimate_target): New function.
13604 (cgraph_function_node): Move offline.
13605 (cgraph_reset_node): Declare.
13606 (cgraph_comdat_can_be_unshared_p): Remove.
13607 (varpool_remove_initializer): Declare.
13608 (varpool_first_defined_variable, varpool_next_defined_variable
13609 cgraph_first_defined_function, cgraph_next_defined_function): Update.
13610 (cgraph_function_with_gimple_body_p): Update.
13611 (varpool_all_refs_explicit_p): Update.
13612 (symtab_alias_target): New function.
13613 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
13614 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
13615 (cgraph_function_or_thunk_node): Simplify using
13616 symtab_alias_ultimate_target.
e70670cf
JH
13617 (varpool_variable_node): Likewise.
13618 * cgraph.c (cgraph_create_function_alias): Update.
13619 (cgraph_add_thunk): Update.
13620 (cgraph_remove_node): Update.
13621 (dump_cgraph_node): Do not dump removed flags.
13622 (cgraph_function_body_availability): Update.
13623 (cgraph_propagate_frequency): Update.
13624 (verify_cgraph_node): Check sanity of local flag.
13625 (cgraph_function_node): Move here from cgraph.h; revamp for
13626 cgraph_function_or_thunk_node.
13627 * lto-symtab.c (lto_varpool_replace_node): Update.
13628 (lto_symtab_resolve_can_prevail_p): Update.
13629 (lto_symtab_merge_cgraph_nodes): Update.
13630 * ipa-cp.c (determine_versionability, initialize_node_lattices,
13631 propagate_constants_accross_call, devirtualization_time_bonus,
13632 ipcp_propagate_stage): Update.
13633 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
13634 * ipa-inline-transform.c (clone_inlined_nodes,
13635 preserve_function_body_p): Update.
e70670cf
JH
13636 * ipa-reference.c (propagate): Update.
13637 (write_node_summary_p): Update.
13638 * toplev.c (wrapup_global_declaration_2): Update.
13639 * cgraphunit.c (cgraph_analyze_function): Rename to ...
13640 (analyze_function) ... this one.
13641 (cgraph_process_new_functions): Update.
13642 (cgraph_reset_node): Export.
13643 (cgraph_finalize_function): Update.
13644 (cgraph_add_new_function): Update.
13645 (process_function_and_variable_attributes): Update.
13646 (varpool_finalize_decl): Update.
13647 (symbol_finalized): Remove.
13648 (symbol_finalized_and_needed): Rename to ...
13649 (symbol_defined_and_needed): ... update.
13650 (cgraph_analyze_functions): Update.
13651 (handle_alias_pairs): Update.
13652 (mark_functions_to_output): Update.
13653 (assemble_thunk): Update.
13654 (output_in_order): Update.
13655 (output_weakrefs): Update.
13656 (finalize_compilation_unit): Update.
13657 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
13658 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
13659 input_node, input_varpool_node): Update.
13660 * dbxout.c (dbxout_expand_expr): Update.
13661 * cgraphclones.c (cgraph_clone_node): Update.
13662 (cgraph_copy_node_for_versioning): Update.
13663 (cgraph_materialize_clone): Update.
13664 (cgraph_materialize_all_clones): Update.
13665 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
13666 propagate_pure_const, propagate_nothrow): Update.
13667 * lto-streamer-out.c (lto_output, write_symbol): Update.
13668 * ipa-utils.c (ipa_reverse_postorder): Update.
13669 * ipa-inline.c (can_inline_edge_p): Update.
13670 (update_caller_keys, ipa_inline): Update.
13671 * dwarf2out.c (reference_to_unused,
13672 premark_types_used_by_global_vars_helper): Update.
13673 * tree-eh.c (tree_could_trap_p): Update.
13674 * ipa-split.c (consider_split, execute_split_functions): Update.
13675 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
13676 has_addr_references_p): Update; move ahead in file for better
13677 readability.
e70670cf
JH
13678 (process_references): Simplify.
13679 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
13680 bodies are removed.
13681 (cgraph_comdat_can_be_unshared_p): Make static.
13682 (cgraph_externally_visible_p): Update.
13683 (varpool_externally_visible_p): Update.
13684 (function_and_variable_visibility): Update.
13685 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
13686 ipa_tm_mark_force_output_node): Update.
13687 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
13688 estimate_edge_devirt_benefit, inline_generate_summary,
13689 inline_write_summary): Update.
13690 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
13691 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
13692 (ipa_print_node_params, ipa_prop_read_section,
13693 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
13694 * varasm.c (mark_decl_referenced): Update.
13695 (assemble_alias, dump_tm_clone_pairs): Update.
13696 * tree-inline.c (copy_bb): Update.
13697 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
13698 Update.
13699 * symtab.c (dump_symtab_base): Print new flags.
13700 (verify_symtab_base): Verify new flags.
13701 (symtab_alias_ultimate_target): New function.
13702 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
13703 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
13704 Update.
c1e183a9
UB
13705 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
13706 Update.
e70670cf
JH
13707 * i386.c (ix86_get_function_versions_dispatcher,
13708 ix86_generate_version_dispatcher_body): Update.
13709 (fold_builtin_cpu): Use varpool_add_new_variable.
13710 * varpool.c (varpool_remove_initializer): Break out from ...
13711 (varpool_remove_node): ... this one.
13712 (dump_varpool_node, varpool_node_for_asm,
13713 cgraph_variable_initializer_availability, varpool_analyze_node,
13714 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
13715 varpool_finalize_named_section_flags, varpool_create_variable_alias):
13716 Update.
e70670cf 13717
182802ad
JH
137182013-05-29 Jan Hubicka <jh@suse.cz>
13719
13720 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
13721
8190b609
ER
137222013-05-29 Easwaran Raman <eraman@google.com>
13723
13724 PR tree-optimization/57442
13725 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
13726 when control exits the main loop.
13727
69f5aa9b
SKS
137282013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
13729
13730 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
13731 and RX600.
c1e183a9 13732 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
13733 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
13734 * rx/t-rx: Add rx100 under multi library matches option for nofpu
13735 option.
13736
4b847da9
BS
137372013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13738
13739 PR tree-optimization/57441
13740 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
13741 Don't limit size of incr_vec to number of candidates.
13742
4fc43c39
SE
137432013-05-29 Steve Ellcey <sellcey@imgtec.com>
13744
13745 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
13746 and mips16 directories.
c1e183a9 13747 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
13748 (MULTILIB_DIRNAMES): Ditto.
13749 (MULTILIB_EXCEPTIONS): Add new exceptions.
13750 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
13751 (MULTILIB_DIRNAMES): Ditto.
13752 (MULTILIB_EXCEPTIONS): Add new exceptions.
13753
12211b99 137542012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
13755 Marcus Shawcroft <marcus.shawcroft@arm.com>
13756
13757 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
13758 SYMBOL_TINY_ABSOLUTE.
13759 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
13760 SYMBOL_TINY_ABSOLUTE.
13761 (aarch64_expand_mov_immediate): Likewise.
13762 (aarch64_classify_symbol): Likewise.
13763 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
13764 Permit SYMBOL_TINY_ABSOLUTE.
13765 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
13766
12211b99 137672013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
13768 Marcus Shawcroft <marcus.shawcroft@arm.com>
13769
13770 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
13771 Refactor if/switch. Replace gcc_assert with if.
13772
c0186656
GG
137732013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13774
13775 * config/i386/i386.c (initial_ix86_tune_features): Enable
13776 FP Reassociation for AMD bdver1 and bdver2.
13777
d20188f3
MJ
137782013-05-29 Martin Jambor <mjambor@suse.cz>
13779
13780 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
13781 and IMAGPART_EXPR do not occur within other handled_components.
13782
292cba13
RB
137832013-05-29 Richard Biener <rguenther@suse.de>
13784
13785 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
13786 access on whether the use is in the BB we currently try to
13787 vectorize.
13788 (vect_bb_vectorization_profitable_p): Pass the BB we currently
13789 vectorize to vect_bb_slp_scalar_cost.
13790
6eddf228
RB
137912013-05-29 Richard Biener <rguenther@suse.de>
13792
13793 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
13794 computing scalar cost offsetted by stmts that are kept live
13795 by scalar uses.
13796 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
13797 for computation of scalar cost.
13798
7df36117
SE
137992013-05-28 Steve Ellcey <sellcey@mips.com>
13800
13801 * config/mips/mips-cpus.def (mips32r2): Change processor type.
13802
36536d79
BI
138032013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13804
13805 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
13806 array notation built-in reduction functions.
13807 * doc/passes.texi (Passes): Added documentation about changes done
13808 for Cilk Plus.
13809 * doc/invoke.texi (C Dialect Options): Added documentation about
13810 the -fcilkplus flag.
13811 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
13812 (BUILTINS_DEF): Depend on cilkplus.def.
13813 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
13814 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
13815 * cilkplus.def: New file.
13816
12211b99 138172013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
13818
13819 PR rtl-optimization/57439
13820 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
13821
9daf6dbb
ER
138222013-05-28 Easwaran Raman <eraman@google.com>
13823
13824 PR tree-optimization/57337
13825 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
13826 (find_insert_point): Correctly identify the insertion point
13827 when two statements with the same UID is compared.
13828
fbd7e877
RB
138292013-05-28 Richard Biener <rguenther@suse.de>
13830
13831 PR tree-optimization/56787
13832 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
13833 from the list of data references.
13834 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
13835 clobbers.
13836 (vect_analyze_loop_operations): Likewise.
13837 (vect_transform_loop): Remove clobbers.
13838
bbba1117
MJ
138392013-05-28 Martin Jambor <mjambor@suse.cz>
13840
13841 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
13842 and REALPART_EXPRs have scalar type.
13843
bd388c2a
RB
138442013-05-28 Richard Biener <rguenther@suse.de>
13845
13846 PR tree-optimization/57411
13847 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
13848 virtual operands.
13849 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
13850 virtual operand propagation.
13851
2f56a311
EB
138522013-05-28 Eric Botcazou <ebotcazou@adacore.com>
13853
13854 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
13855 destination register for bmasksi_vis.
13856 (vector_init_bshuffle): Likewise.
13857 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
13858
5c3eacbb
EB
138592013-05-28 Eric Botcazou <ebotcazou@adacore.com>
13860
13861 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
13862 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
13863 mode if the instruction isn't available in the original mode.
13864 * config/sparc/sparc.opt (mfix-ut699): New option.
13865 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
13866 (divdf3): Turn into expander.
13867 (divdf3_nofix): New insn.
13868 (divdf3_fix): Likewise.
13869 (divsf3): Disable if -mfix-ut699.
13870 (sqrtdf2): Turn into expander.
13871 (sqrtdf2_nofix): New insn.
13872 (sqrtdf2_fix): Likewise.
13873 (sqrtsf2): Disable if -mfix-ut699.
13874
a1756c0a
RB
138752013-05-27 Richard Biener <rguenther@suse.de>
13876
13877 PR middle-end/57412
13878 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
13879 block for the new loop.
13880
5a892248
RB
138812013-05-27 Richard Biener <rguenther@suse.de>
13882
13883 PR tree-optimization/57343
13884 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
13885 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
13886 (number_of_iterations_cond): Do not build the folded tree.
13887
d1de852b
RB
138882013-05-27 Richard Biener <rguenther@suse.de>
13889
13890 Revert
13891 PR middle-end/57381
13892 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
13893 OEP_CONSTANT_ADDRESS_OF retained.
13894
13895 PR tree-optimization/57417
13896 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
13897 for unchanged base.
13898 (set_ssa_val_to): Compare addresses using
13899 get_addr_base_and_unit_offset.
13900
12211b99 139012013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
13902
13903 PR rtl-optimization/56833
13904 * postreload.c (move2add_record_mode): New function.
13905 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
13906 (move2add_use_add2_insn): Use move2add_record_sym_value.
13907 (move2add_use_add3_insn): Likewise.
13908 (reload_cse_move2add): Use move2add_valid_value_p and
13909 move2add_record_mode. Invalidate call-clobbered and REG_INC
13910 affected regs by setting reg_mode to VOIDmode.
13911 (move2add_note_store): Don't pretend the inside of a SUBREG is
13912 the actual destination. Invalidate single/leading registers by
13913 setting reg_mode to VOIDmode.
13914 Use move2add_record_sym_value, move2add_valid_value_p and
13915 move2add_record_mode.
13916
b03be25f
RB
139172013-05-27 Richard Biener <rguenther@suse.de>
13918
13919 PR tree-optimization/57396
13920 * tree-affine.c (double_int_constant_multiple_p): Properly
13921 return false for val == 0 and div != 0.
13922
44e88db2
RS
139232013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13924
13925 * config/mips/mips.h: Use #elif in preprocessor conditions.
13926
3b859704
RS
139272013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13928
13929 PR target/53916
13930 * config/mips/constraints.md (kl): New constraint.
13931 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
13932 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
13933 constraint for operand 0. Split after CSE for MIPS16. Emit a move
13934 from LO for MIPS16.
13935 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
13936
c979d5f5
RS
139372013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13938
13939 PR target/55777
13940 * config/mips/mips.c (mips_can_inline_p): New function.
13941 (TARGET_CAN_INLINE_P): Define.
13942
8e90de43
SB
139432013-05-25 Steven Bosscher <steven@gcc.gnu.org>
13944
13945 * sched-int.h (ds_t, dw_t): Make unsigned int.
13946 Fix documentation that describes how all the ds_t bits are used.
13947 Reserve the last bit for delayed-branch scheduling.
13948 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
13949 (BITS_PER_DEP_WEAK): Fix definition and documentation.
13950 (gen_dep_weak_1): Remove prototype.
13951 * sched-deps.c (get_dep_weak_1): Make static.
13952 * target.def (speculate_insn, needs_block_p, gen_spec_check,
13953 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
13954 * doc/tm.texi: Regenerate.
13955 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
13956
cb5cb194
SB
139572013-05-24 Steven Bosscher <steven@gcc.gnu.org>
13958
13959 PR debug/56950
13960 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
13961
5bd93ff6
NS
139622013-05-24 Nathan Sidwell <nathan@codesourcery.com>
13963 Sandra Loosemore <sandra@codesourcery.com>
13964
13965 * config.gcc (powerpc-*): Allow native for with-cpu.
13966
2343af65
JL
139672013-05-24 Jeff Law <law@redhat.com>
13968
13969 PR tree-optimization/57124
13970 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
13971 conversion feeding a condition if the range has an overflow
13972 if -fstrict-overflow. Add warnings for when we do make the
13973 transformation.
13974
3ad695b9
DC
139752013-05-24 Dehao Chen <dehao@google.com>
13976
04960246 13977 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
13978 (locus_discrim_hasher): Likewise.
13979 (locus_discrim_hasher::hash): Likewise.
13980 (locus_discrim_hasher::equal): Likewise.
13981
82338059
MJ
139822013-05-24 Martin Jambor <mjambor@suse.cz>
13983
13984 PR tree-optimization/57294
13985 * cgraph.h (ipa_record_stmt_references): Declare.
13986 * cgraphbuild.c (ipa_record_stmt_references): New function.
13987 (build_cgraph_edges): Use ipa_record_stmt_references.
13988 (rebuild_cgraph_edges): Likewise.
13989 (cgraph_rebuild_references): Likewise.
13990 * ipa-prop.c (ipa_modify_call_arguments): Discard references
13991 associated with the old statement and build references from the
13992 newly built statements.
13993 * ipa-ref.c (ipa_remove_stmt_references): New function.
13994 * ipa-ref.h (ipa_remove_stmt_references): Declare.
13995
1ccd4874
VM
139962013-05-24 Vladimir Makarov <vmakarov@redhat.com>
13997
55805e54 13998 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 13999 mem-mem moves.
55805e54 14000 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 14001 too.
55805e54 14002 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
14003 secondary memory moves.
14004 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
14005 reg set up in the current insn.
14006
25e25c73
DC
140072013-05-24 Dehao Chen <dehao@google.com>
14008
04960246 14009 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
14010 hash function.
14011 (locus_descrim_hasher::equal): Likewise.
04960246 14012 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
14013 (make_edges): Likewise.
14014 (next_discriminator_for_locus): Likewise.
14015 (same_line_p): Likewise.
14016 (assign_discriminators): Likewise.
14017 (make_cond_expr_edges): Likewise.
14018 (make_gimple_switch_edges): Likewise.
14019 (make_goto_expr_edges): Likewise.
14020 (make_gimple_asm_edges): Likewise.
14021
50d38551
IB
140222013-05-24 Ian Bolton <ian.bolton@arm.com>
14023
14024 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
14025 X format specifier to only display bottom 16 bits.
14026 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
14027 immediate to match for operand 2, since it will be masked.
14028
aea0101d
RB
140292013-05-24 Richard Biener <rguenther@suse.de>
14030
14031 PR tree-optimization/57287
14032 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
14033 all SSA names that occur in abnormal PHIs.
14034
634e03d3
AI
140352013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
14036
14037 PR tree-ssa/57385
14038 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
14039 that index is not negative.
14040
b17c024f
EB
140412013-05-24 Eric Botcazou <ebotcazou@adacore.com>
14042
14043 PR rtl-optimization/55177
14044 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
14045 (simplify_byte_swapping_operation): New.
14046 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
14047 (simplify_relational_operation_1): Deal with BSWAP.
14048
46aeac1b
RH
140492013-05-23 Richard Henderson <rth@redhat.com>
14050
14051 PR target/56742
14052 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
14053 (ix86_reorg): Call it.
14054
70cc1536
UB
140552013-05-23 Uros Bizjak <ubizjak@gmail.com>
14056
14057 PR target/57379
14058 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
14059 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
14060 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
14061
b3851501
CB
140622013-05-23 Christian Bruel <christian.bruel@st.com>
14063
14064 PR debug/57351
14065 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
14066
12211b99 140672013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
14068 Marcus Shawcroft <marcus.shawcroft@arm.com>
14069
14070 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
14071 * config/aarch64/constraints.md (Usa): Remove.
14072 * doc/md.texi (AArch64 Usa): Remove.
14073
12211b99 140742013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
14075 Marcus Shawcroft <marcus.shawcroft@arm.com>
14076
14077 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
14078 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
14079 * config/aarch64/predicates.md (aarch64_const_address): Remove.
14080 (aarch64_mov_operand): Use aarch64_mov_operand_p.
14081
12211b99 140822013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
14083
14084 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
14085 instruction (AdvSIMD).
14086 * config/aarch64/aarch64-builtins.c
14087 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
14088 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
14089
76c36cb1 140902013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
14091
14092 PR middle-end/57347
14093 * tree.h (contains_bitfld_component_ref_p): Declare.
14094 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
14095 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
14096 caller.
7d2fb524
MJ
14097 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
14098 not access a bit-field. Assert all final offsets are byte-aligned.
14099
ce521ae6
RB
141002013-05-23 Richard Biener <rguenther@suse.de>
14101
14102 PR tree-optimization/57380
14103 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
14104 least one invariant or re-used load.
14105 * passes.c (init_optimization_passes): Move pass_phiprop before
14106 pass_forwprop.
14107
75c7257f
JG
141082013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
14109
14110 * config/aarch64/aarch64-simd.md
14111 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
14112
af6d44b5
RB
141132013-05-23 Richard Biener <rguenther@suse.de>
14114
14115 PR middle-end/57381
14116 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
14117 OEP_CONSTANT_ADDRESS_OF retained.
14118
bd3647bf
JJ
141192013-05-23 Jakub Jelinek <jakub@redhat.com>
14120
14121 PR middle-end/57344
70cc1536
UB
14122 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
14123 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 14124
a55757ea
RB
141252013-05-23 Richard Biener <rguenther@suse.de>
14126
14127 PR rtl-optimization/57341
14128 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
14129 instead of true_dependence.
14130
cfb00b41
DM
141312013-05-22 David Malcolm <dmalcolm@redhat.com>
14132
dd1c676f
DM
14133 * bb-reorder.c (branch_threshold): Make const.
14134 (exec_threshold): Ditto.
cfb00b41 14135
f62511da 141362013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14137 Pat Haugen <pthaugen@us.ibm.com>
14138 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
14139
14140 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
14141 documentation for the power8 crypto builtins.
14142
14143 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
14144
14145 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
14146 macros for defining power8 builtin functions.
14147 (BU_P8V_AV_2): Likewise.
14148 (BU_P8V_AV_P): Likewise.
14149 (BU_P8V_VSX_1): Likewise.
14150 (BU_P8V_OVERLOAD_1): Likewise.
14151 (BU_P8V_OVERLOAD_2): Likewise.
14152 (BU_CRYPTO_1): Likewise.
14153 (BU_CRYPTO_2): Likewise.
14154 (BU_CRYPTO_3): Likewise.
14155 (BU_CRYPTO_OVERLOAD_1): Likewise.
14156 (BU_CRYPTO_OVERLOAD_2): Likewise.
14157 (XSCVSPDP): Fix typo, point to the correct instruction.
14158 (VCIPHER): Add power8 crypto builtins.
14159 (VCIPHERLAST): Likewise.
14160 (VNCIPHER): Likewise.
14161 (VNCIPHERLAST): Likewise.
14162 (VPMSUMB): Likewise.
14163 (VPMSUMH): Likewise.
14164 (VPMSUMW): Likewise.
14165 (VPERMXOR_V2DI): Likewise.
14166 (VPERMXOR_V4SI: Likewise.
14167 (VPERMXOR_V8HI: Likewise.
14168 (VPERMXOR_V16QI: Likewise.
14169 (VSHASIGMAW): Likewise.
14170 (VSHASIGMAD): Likewise.
14171 (VPMSUM): Likewise.
14172 (VPERMXOR): Likewise.
14173 (VSHASIGMA): Likewise.
14174
14175 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
14176 __CRYPTO__ if the crypto instructions are available.
14177 (altivec_overloaded_builtins): Add support for overloaded power8
14178 builtins.
14179
14180 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
14181 support for power8 crypto builtins.
14182 (builtin_function_type): Likewise.
14183 (altivec_init_builtins): Add support for builtins that take vector
14184 long long (V2DI) arguments.
14185
14186 * config/rs6000/crypto.md: New file, define power8 crypto
14187 instructions.
14188
141892013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14190 Pat Haugen <pthaugen@us.ibm.com>
14191 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
14192
14193 * doc/invoke.texi (Option Summary): Add power8 options.
14194 (RS/6000 and PowerPC Options): Likewise.
14195
14196 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
14197 constraints.md instead of rs6000.h. Reorder w* constraints. Add
14198 wm, wn, wr documentation.
14199
f43245d1 14200 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
14201 registers if direct move instructions are enabled.
14202 (wn): New constraint for no registers.
14203 (wq): New constraint for quad word even GPR registers.
14204 (wr): New constraint if 64-bit instructions are enabled.
14205 (wv): New constraint if power8 vector instructions are enabled.
14206 (wQ): New constraint for quad word memory locations.
14207
f43245d1 14208 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
14209 constraint for 0..15 for crypto instructions.
14210 (gpc_reg_operand): If VSX allow registers in VSX registers as well
14211 as GPR and floating point registers.
14212 (int_reg_operand): New predicate to match only GPR registers.
14213 (base_reg_operand): New predicate to match base registers.
14214 (quad_int_reg_operand): New predicate to match even GPR registers
14215 for quad memory operations.
14216 (vsx_reg_or_cint_operand): New predicate to allow vector logical
14217 operations in both GPR and VSX registers.
14218 (quad_memory_operand): New predicate for quad memory operations.
14219 (reg_or_indexed_operand): New predicate for direct move support.
14220
f43245d1 14221 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
14222 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
14223 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
14224 (POWERPC_MASKS): Add power8 options.
14225 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
14226 various options.
14227
f43245d1 14228 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
14229 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
14230
f43245d1 14231 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
14232 (-mpower8-fusion): New power8 options.
14233 (-mpower8-fusion-sign): Likewise.
14234 (-mpower8-vector): Likewise.
14235 (-mcrypto): Likewise.
14236 (-mdirect-move): Likewise.
14237 (-mquad-memory): Likewise.
14238
f43245d1 14239 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
14240 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
14241 registers.
70cc1536 14242 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
14243 (rs6000_debug_vector_unit): Add p8_vector.
14244 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
14245 definitions. Also print fusion state.
14246 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
14247 (rs6000_builtin_mask_calculate): Add power8 builtin support.
14248 (rs6000_option_override_internal): Add support for power8.
14249 (rs6000_common_init_builtins): Add debugging for skipped builtins
14250 if -mdebug=builtin.
14251 (rs6000_adjust_cost): Add power8 support.
14252 (rs6000_issue_rate): Likewise.
14253 (insn_must_be_first_in_group): Likewise.
14254 (insn_must_be_last_in_group): Likewise.
14255 (force_new_group): Likewise.
14256 (rs6000_register_move_cost): Likewise.
14257 (rs6000_opt_masks): Likewise.
14258
14259 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
14260 power8 capable assembler, default to power7 options.
14261 (TARGET_DIRECT_MOVE): Likewise.
14262 (TARGET_CRYPTO): Likewise.
14263 (TARGET_P8_VECTOR): Likewise.
14264 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
14265 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
14266 (VECTOR_MEM_P8_VECTOR_P): Likewise.
14267 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
14268 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
14269 (TARGET_XSCVDPSPN): Likewise.
14270 (TARGET_XSCVSPDPN): Likewsie.
14271 (TARGET_SYNC_HI_QI): Likewise.
14272 (TARGET_SYNC_TI): Likewise.
14273 (MASK_CRYPTO): Likewise.
14274 (MASK_DIRECT_MOVE): Likewise.
14275 (MASK_P8_FUSION): Likewise.
14276 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
14277 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
14278 temporary used by some of the direct move instructions to get two FP
14279 temporary registers does not force creation of a stack frame.
f62511da
MM
14280 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
14281 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
14282 that any VSX registers are tieable, even if they are also an
14283 Altivec vector mode.
14284 (r6000_reg_class_enum): Add wm, wr, wv constraints.
14285 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
14286 (RS6000_BTM_CRYPTO): Likewise.
14287 (RS6000_BTM_COMMON): Likewise.
14288
14289 * config/rs6000/rs6000.md (cpu attribute): Add power8.
14290 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
14291 (enum rs6000_vector): Add power8 vector support.
14292
73a1a707
RR
142932013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14294
14295 PR target/19599
14296 PR target/57340
14297 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
14298 (any_sibcall_could_use_r3): this and handle indirect calls.
14299 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
14300
d28073d4
BS
143012013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14302
14303 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
14304
bee0b10c
RB
143052013-05-22 Richard Biener <rguenther@suse.de>
14306
14307 PR middle-end/57349
14308 * profile.c (branch_prob): Do not split blocks that are
14309 abnormally receiving from ECF_RETURNS_TWICE functions.
14310
98409b51
RS
143112013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14312
14313 * recog.c (offsettable_address_addr_space_p): Fix calculation of
14314 address mode. Move pointer mode initialization to the same place.
14315
c0602ab8
MZ
143162013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14317
14318 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
14319 while it has any effect.
14320
4f7a634e
ER
143212013-05-21 Easwaran Raman <eraman@google.com>
14322
14323 PR tree-optimization/57322
9daf6dbb
ER
14324 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
14325 UID of the statement added to the BB to be 1.
4f7a634e 14326
a4ce1258
JJ
143272013-05-21 Jakub Jelinek <jakub@redhat.com>
14328
14329 PR tree-optimization/57331
70cc1536
UB
14330 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
14331 of conversion from pointer type to integral type with integer.
a4ce1258 14332
1b14621a
MJ
143332013-05-21 Martin Jambor <mjambor@suse.cz>
14334
14335 PR lto/57289
14336 * ipa-prop.c (ipa_read_node_info): Process param_used and
14337 controlled_uses in the same order as when writing.
14338
e60661f0
MG
143392013-05-21 Magnus Granberg <baldrick@free.fr>
14340
14341 PR plugins/56754
ee49aa34 14342 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 14343
4a61be9a
RB
143442013-05-21 Richard Biener <rguenther@suse.de>
14345
14346 PR tree-optimization/57318
14347 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
14348 estimate stmts with side-effects as likely eliminated.
14349
c52da5f7
RB
143502013-05-21 Richard Biener <rguenther@suse.de>
14351
14352 PR tree-optimization/57330
14353 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
14354 preserve the call stmts fntype.
14355
7ec67e2a
RB
143562013-05-21 Richard Biener <rguenther@suse.de>
14357
14358 PR tree-optimization/57303
14359 * tree-ssa-sink.c (statement_sink_location): Improve killing
14360 stmt detection and properly handle self-assignments.
14361
b112d513
CB
143622013-05-21 Christian Bruel <christian.bruel@st.com>
14363
55805e54
YR
14364 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
14365 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
14366 registers. Set register size out of the PARALLEL loop.
14367
14c2ec26
OE
143682013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
14369
14370 PR target/56547
14371 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
14372 (*fmasf4, *fmasf4_media): New insns.
14373
da734fa1
RS
143742013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
14375
14376 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
14377 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
14378 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
14379 (mips_idiv_insns): Update the comments to say that the returned
14380 instruction counts are in units of BASE_INSN_LENGTH.
14381 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
14382 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
14383 using 2 rather than 4 as the length of indirect MIPS16 and
14384 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
14385 length of a NOP. Don't divide MIPS16 lengths by 2.
14386 (mips16_split_long_branches): Assume a branch is long if the
14387 length is greater than 4 rather than 8.
14388 * config/mips/mips.md (length): Give MIPS16 lengths directly,
14389 rather than multiplying them by 2. Multiply instruction counts
14390 by BASE_INSN_LENGTH rather than 4.
14391 (*jump_mips16, tls_get_tp_mips16_<mode>)
14392 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
14393
13719e8b
RS
143942013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
14395
14396 * config/mips/mips.md (extended_mips16): Remove branch case.
14397 (length): Remove duplicated extended_mips16 test.
14398
c3850d14
RS
143992013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
14400
14401 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
14402
8da2e059
RS
144032013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
14404
14405 * recog.h (Recog_data): Rename to...
14406 (recog_data_d): ...this.
14407 (recog_data): Update accordingly.
14408 * recog.c (recog_data): Likewise.
14409 * reload.c (save_recog_data): Likewise.
14410 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
14411 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
14412
2df013f3
JB
144132013-05-17 Julian Brown <julian@codesourcery.com>
14414
14415 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
14416 found in a REG_EQUAL note, invalidate it.
14417
371e77e3 144182013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
14419
14420 * tree-ssa-reassoc.c (find_insert_point): New function.
14421 (insert_stmt_after): Likewise.
14422 (get_def_stmt): Likewise.
14423 (ensure_ops_are_available): Likewise.
14424 (not_dominated_by): Likewise.
14425 (rewrite_expr_tree): Do not move statements beyond what is
14426 necessary. Remove call to swap_ops_for_binary_stmt...
14427 (reassociate_bb): ... and move it here.
14428 (build_and_add_sum): Assign UIDs for new statements.
14429 (linearize_expr): Likewise.
14430 (do_reassoc): Renumber gimple statement UIDs.
14431
e01c7cca
JH
144322013-05-17 Jan Hubicka <jh@suse.cz>
14433
14434 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
14435 weakrefs.
14436 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
14437 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
14438 weakrefs.
e01c7cca
JH
14439 (output_weakrefs): Update.
14440
c3272a92
PCC
144412013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
14442 Martin Jambor <mjambor@suse.cz>
14443
14444 PR middle-end/57276
14445 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
14446 value that corresponds to the given aggval is found in values vector.
14447
11c2aa39
UB
144482013-05-17 Uros Bizjak <ubizjak@gmail.com>
14449
14450 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
14451 sse, sse2, sse3, ssse3 and sse4a flags to options.
14452
abecc8c6
DM
144532013-05-17 David Malcolm <dmalcolm@redhat.com>
14454
14455 * gengtype-state.c: (s_expr_writer): New class, to handle
14456 prettifying of output layout of s-expressions.
14457 (state_writer): New class, to write out gtype.state.
14458 (state_written_type_count): Move this variable into member data of
14459 state_writer.
14460 (s_expr_writer::s_expr_writer): New code: constructor for new class
14461 (state_writer::state_writer(): ditto
14462 (s_expr_writer::write_new_line): New function
14463 (s_expr_writer::write_any_indent): ditto
14464 (s_expr_writer::begin_s_expr): ditto
14465 (s_expr_writer::end_s_expr): ditto
14466 (write_state_fileloc): convert to method of state_writer...
14467 (state_writer:: write_state_fileloc): ...and use methods of
14468 s_expr_writer to write indentation into the gtype.state output file
14469 to visually represent the hierarchical structure of the list
14470 structures
14471 (write_state_fields): ditto, renaming to...
14472 (state_writer::write_state_fields)
14473 (write_state_a_string): ditto, renaming to...
14474 (state_writer::write_state_a_string)
14475 (write_state_string_option): ditto, renaming to...
14476 (state_writer::write_state_string_option)
14477 (write_state_type_option): ditto, renaming to...
14478 (state_writer::write_state_type_option)
14479 (write_state_nested_option): ditto, renaming to...
14480 (state_writer::write_state_nested_option)
14481 (write_state_option): ditto, renaming to...
14482 (state_writer::write_state_option)
14483 (write_state_options): ditto, renaming to...
14484 (state_writer::write_state_options)
14485 (write_state_lang_bitmap): ditto, renaming to...
14486 (state_writer::write_state_lang_bitmap)
14487 (write_state_version): ditto, renaming to...
14488 (state_writer::write_state_version)
14489 (write_state_scalar_type): ditto, renaming to...
14490 (state_writer::write_state_scalar_type)
14491 (write_state_string_type): ditto, renaming to...
14492 (state_writer::write_state_string_type)
14493 (write_state_undefined_type): ditto, renaming to...
14494 (state_writer::write_state_undefined_type)
14495 (write_state_struct_union_type): ditto, renaming to...
14496 (state_writer::write_state_struct_union_type)
14497 (write_state_struct_type): ditto, renaming to...
14498 (state_writer::write_state_struct_type)
14499 (write_state_user_struct_type): ditto, renaming to...
14500 (state_writer::write_state_user_struct_type)
14501 (write_state_lang_struct_type): ditto, renaming to...
14502 (state_writer::write_state_lang_struct_type)
14503 (write_state_param_struct_type): ditto, renaming to...
14504 (state_writer::write_state_param_struct_type)
14505 (write_state_pointer_type): ditto, renaming to...
14506 (state_writer::write_state_pointer_type)
14507 (write_state_array_type): ditto, renaming to...
14508 (state_writer::write_state_array_type)
14509 (write_state_gc_used): ditto, renaming to...
14510 (state_writer::write_state_gc_used)
14511 (write_state_common_type_content): ditto, renaming to...
14512 (state_writer::write_state_common_type_content)
14513 (write_state_type): ditto, renaming to...
14514 (state_writer::write_state_type)
14515 (write_state_pair_list): ditto, renaming to...
14516 (state_writer::write_state_pair_list)
14517 (write_state_pair): ditto, renaming to...
14518 (state_writer::write_state_pair)
14519 (write_state_typedefs): ditto, renaming to...
14520 (state_writer::write_state_typedefs)
14521 (write_state_structures): ditto, renaming to...
14522 (state_writer::write_state_structures)
14523 (write_state_param_structs): ditto, renaming to...
14524 (state_writer::write_state_param_structs)
14525 (write_state_variables): ditto, renaming to...
14526 (state_writer::write_state_variables)
14527 (write_state_srcdir): ditto, renaming to...
14528 (state_writer::write_state_srcdir)
14529 (write_state_files_list): ditto, renaming to...
14530 (state_writer::write_state_files_list)
14531 (write_state_languages): ditto, renaming to...
14532 (state_writer::write_state_languages)
14533 (write_state): create a state_writer instance and use it when
14534 writing out the state file
14535
d6545f29
MS
145362013-05-17 Mike Stump <mikestump@comcast.net>
14537
816a3f73 14538 PR rtl-optimization/57304
d6545f29
MS
14539 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
14540 accessing DF_REF_REAL_LOC.
14541
38c821cf
JJ
145422013-05-17 Jakub Jelinek <jakub@redhat.com>
14543
14544 PR rtl-optimization/57281
14545 PR rtl-optimization/57300
14546 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
14547 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
14548 what the other splitter did if the registers are dead.
14549
2a293391
RB
145502013-05-17 Richard Biener <rguenther@suse.de>
14551
14552 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
14553 MEM_REF offsets.
14554
17042d2b
JJ
145552013-05-17 Jakub Jelinek <jakub@redhat.com>
14556
14557 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
14558 linking.
14559
5b115c1f
MP
145602013-05-17 Marek Polacek <polacek@redhat.com>
14561
11c2aa39
UB
14562 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
14563 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 14564
52d84413
JJ
145652013-05-17 Jakub Jelinek <jakub@redhat.com>
14566
68119618
JJ
14567 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
14568 vect_external_def oprnd1 with loop_vinfo, try to emit
14569 optional cast, negation and and stmts on the loop preheader
14570 edge instead of into the pattern def seq.
14571
52d84413
JJ
14572 PR tree-optimization/57051
14573 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
14574 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
14575
17b962bd
NC
145762013-05-16 Nick Clifton <nickc@redhat.com>
14577
14578 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
14579 (rl78_is_naked_func): New function.
56aefbf7
UB
14580 (rl78_expand_prologue): Skip prologue generation for naked functions.
14581 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
14582 * doc/extend.texi (naked): Add RL78 to the list of processors
14583 that supports this attribute.
14584
b1a0f84e
JL
145852013-05-16 Jeff Law <law@redhat.com>
14586
14587 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
14588
af0e415b
UB
145892013-05-16 Uros Bizjak <ubizjak@gmail.com>
14590
14591 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
14592 cache parameters using detect_caches_amd also for CYRIX,
14593 NSC and TM2 signatures.
14594
19db293a
UB
145952013-05-16 Uros Bizjak <ubizjak@gmail.com>
14596 Dzianis Kahanovich <mahatma@eu.by>
14597
14598 PR target/45359
14599 PR target/46396
14600 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
14601 VIA/Centaur processors and determine their cache parameters
14602 using detect_caches_amd.
14603
251a41b9
TJ
146042013-05-16 Teresa Johnson <tejohnson@google.com>
14605
14606 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
14607 (rtl_verify_edges): New function.
14608 (rtl_verify_bb_insns): Ditto.
14609 (rtl_verify_bb_pointers): Ditto.
14610 (rtl_verify_bb_insn_chain): Ditto.
14611 (rtl_verify_fallthru): Ditto.
14612 (rtl_verify_bb_layout): Ditto.
14613 (rtl_verify_flow_info_1): Outline checks into new functions.
14614 (rtl_verify_flow_info): Ditto.
14615
f14540b6
SE
146162013-05-16 Steve Ellcey <sellcey@imgtec.com>
14617
14618 * cfghooks.c (copy_bbs): Add update_dominance argument.
14619 * cfghooks.h (copy_bbs): Update prototype.
14620 * tree-cfg.c (gimple_duplicate_sese_region):
14621 Add update_dominance argument.
14622 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
14623 * tree-ssa-loop-ch.c (copy_loop_headers): Update
14624 gimple_duplicate_sese_region call.
14625 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
14626 Update copy_bbs call.
14627 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
14628 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
14629
7e9a3abb
JJ
146302013-05-16 Jakub Jelinek <jakub@redhat.com>
14631
14632 * tree-vectorizer.h (NUM_PATTERNS): Increment.
14633 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
14634 vect_recog_rotate_pattern.
14635 (vect_recog_rotate_pattern): New function.
14636
427b248d
JM
146372013-05-16 Jason Merrill <jason@redhat.com>
14638
14639 * Makefile.in (LLINKER): New variable.
14640 (mostlyclean): Remove link mutex.
14641 * configure.ac: Handle --enable-link-mutex.
14642 * lock-and-run.sh: New script.
14643
b871e3d2
RR
146442013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14645
14646 PR target/19599
14647 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
14648 for NULL decl.
14649
ce858126
RO
146502013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14651
14652 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
14653
798d3d04
GY
146542013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
14655
14656 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
14657 * config/arm/arm.c (next_consecutive_mem): New function.
14658 (gen_movmem_ldrd_strd): Likewise.
14659 * config/arm/arm.md (movmemqi): Update condition and code.
14660 (unaligned_loaddi, unaligned_storedi): New patterns.
14661
0baddc45
RO
146622013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14663
14664 * config.gcc: Obsolete *-*-solaris2.9*.
14665 * doc/install.texi (Specific, *-*-solaris2*): Document it.
14666
aa9d5bcf
RB
146672013-05-16 Richard Biener <rguenther@suse.de>
14668
14669 * passes.c (init_optimization_passes): Move pass_parallelize_loops
14670 earlier, after GRAPHITE transforms and IV canonicalization.
14671
5a0f4dd3
JJ
146722013-05-16 Jakub Jelinek <jakub@redhat.com>
14673
14674 * omp-low.c (extract_omp_for_data): For collapsed loops,
14675 if at least one of the loops is known at compile time to
14676 iterate zero times, set count to 0.
14677 (expand_omp_regimplify_p): New function.
14678 (expand_omp_for_generic): For collapsed loops, if at least
14679 one of the loops isn't known to iterate at least once,
14680 add runtime check with setting count to 0.
14681 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
14682 For unsigned types if it isn't known at compile time that
14683 the loop will iterate at least once, add runtime check to bypass
14684 the whole loop if initial condition isn't true.
14685
e3753785
NS
146862013-05-16 Nathan Sidwell <nathan@codesourcery.com>
14687
14688 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
14689
43bb4dd1
MG
146902013-05-16 Marc Glisse <marc.glisse@inria.fr>
14691
14692 PR middle-end/57286
14693 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
14694 transformations to avoid an infinite loop.
14695
3571dde6
MP
146962013-05-16 Marek Polacek <polacek@redhat.com>
14697
14698 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
14699
b8b3f0ca
LE
147002013-05-15 Leif Ekblad <leif@rdos.net>
14701
14702 * config/i386/i386.c (ix86_decompose_address): Use
14703 DEFAULT_TLS_SEG_REG to access TLS segment register.
14704 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
14705 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
14706 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
14707
e299a383
RS
147082013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
14709
14710 PR target/57260
14711 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
14712 sibling calls to functions that would normally be lazily bound,
14713 unless $gp is call-clobbered.
14714
e7208ea3
UB
147152013-05-15 Uros Bizjak <ubizjak@gmail.com>
14716
19db293a 14717 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 14718 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
14719 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
14720 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
14721 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
14722 of TARGET_3DNOW.
14723 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
14724
e7413f3d
AS
147252013-05-15 Andreas Schwab <schwab@suse.de>
14726
14727 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
14728 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
14729 third operand.
14730
ad4db775
TJ
147312013-05-15 Teresa Johnson <tejohnson@google.com>
14732
14733 * loop-unroll.c (report_unroll_peel): Check decision before
14734 emitting unroll/peel message.
14735
af205f67
TJ
147362013-05-15 Teresa Johnson <tejohnson@google.com>
14737
14738 * function.h (has_bb_partition): New rtl_data flag.
14739 (bb_reorder_complete): Ditto.
14740 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
14741 instead of flag_reorder_blocks_and_partition.
14742 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
14743 with some enhancements.
14744 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
14745 * bb-reorder.c (connect_traces): Check for has_bb_partition
14746 instead of flag_reorder_blocks_and_partition.
14747 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
14748 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
14749 verify_hot_cold_block_grouping.
14750 (partition_hot_cold_basic_blocks): Set has_bb_partition.
14751
9adcfa3c
RR
147522013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14753
14754 PR target/19599
14755 * config/arm/predicates.md (call_insn_operand): New predicate.
14756 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
14757 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
14758 if insn is not a tail call.
14759 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
14760 registers.
14761 * config/arm/arm.h (enum reg_class): New caller save register class.
14762 (REG_CLASS_NAMES): Likewise.
14763 (REG_CLASS_CONTENTS): Likewise.
14764 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
14765 without decls.
14766
ccb3ad87
RB
147672013-05-15 Richard Biener <rguenther@suse.de>
14768
14769 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
14770 of MSG_OPTIMIZED_LOCATIONS.
14771 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
14772 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
14773 message.
14774 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
14775 of MSG_OPTIMIZED_LOCATIONS.
14776 (execute_vect_slp): Likewise.
14777 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
14778 (vect_create_cond_for_alias_checks): Likewise.
14779 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
14780 (vect_recog_widen_mult_pattern): Likewise.
14781 (vect_recog_widen_sum_pattern): Likewise.
14782 (vect_recog_over_widening_pattern): Likewise.
14783 (vect_recog_widen_shift_pattern): Likewise.
14784 (vect_recog_vector_vector_shift_pattern): Likewise.
14785 (vect_recog_divmod_pattern): Likewise.
14786 (vect_recog_mixed_size_cond_pattern): Likewise.
14787 (vect_recog_bool_pattern): Likewise.
14788 (vect_pattern_recog_1): Likewise.
14789
48b1474e
MJ
147902013-05-15 Martin Jambor <mjambor@suse.cz>
14791
14792 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
14793 non-functions to builtin_unreachable.
14794 * ipa-inline-transform.c (inline_call): Do not assert estimates were
14795 correct when new direct edges were discovered.
14796
9de04252
MJ
147972013-05-15 Martin Jambor <mjambor@suse.cz>
14798
14799 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
14800 header, print symbol order instead of node uid, print more information
14801 about indirect edge targets.
14802 (ipa_make_edge_direct_to_target): Print symbol order instead of node
14803 uids.
14804 (ipa_make_edge_direct_to_target): Likewise.
14805 (remove_described_reference): Likewise.
14806 (propagate_controlled_uses): Likewise.
14807 (ipa_print_node_params): Also print symbol order.
14808 (ipcp_transform_function): Print symbol order instead of node uids.
14809 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
14810 (cgraph_get_create_real_symbol_node): Likewise.
14811 * ipa-cp.c (print_lattice): Likewise.
14812 (print_all_lattices): Likewise.
14813 (determine_versionability): Likewise.
14814 (initialize_node_lattices): Likewise.
14815 (estimate_local_effects): Likewise.
14816 (update_profiling_info): Likewise.
14817 (create_specialized_node): Likewise.
14818 (perhaps_add_new_callers): Likewise.
14819 (decide_about_value): Likewise.
14820 (decide_whether_version_node): Likewise.
14821 (identify_dead_nodes): Likewise.
14822 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
14823 (dump_inline_summary): Likewise.
14824 (estimate_node_size_and_time): Likewise.
14825 (inline_analyze_function): Likewise.
14826 * ipa-inline.c (report_inline_failed_reason): Likewise.
14827 (want_early_inline_function_p): Likewise.
14828 (edge_badness): Likewise.
14829 (update_edge_key): Likewise.
14830 (inline_small_functions): Likewise. Add dumping of order to two other
14831 dumps.
14832 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
14833 instead of node uids.
14834 (propagate_pure_const): Likewise.
14835 (propagate_pure_const): Likewise.
14836 * ipa-utils.c (dump_cgraph_node_set): Likewise.
14837 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
14838 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
14839 of node uids.
14840 * tree-pretty-print.c (dump_function_header): Likewise.
14841 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
14842 Print symbol order instead of node uids.
14843
1dd03b91
AK
148442013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14845
14846 * config/s390/s390.c (s390_register_move_cost): Don't impose the
14847 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
14848
fdf6a7b9
RB
148492013-05-15 Richard Biener <rguenther@suse.de>
14850
14851 PR tree-optimization/57275
14852 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
14853 return value for fail to do runtime alias checks for gather loads.
14854
2d6e4603
JH
148552013-05-15 Jan Hubicka <jh@suse.cz>
14856
14857 PR lto/57038
14858 PR lto/47375
e7208ea3
UB
14859 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
14860 weakrefs are not external.
14861 (lto_symtab_merge_decls): Fix thinko when dealing with
14862 non-lto_symtab decls.
2d6e4603
JH
14863 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
14864 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
14865 * varpool.c (dump_varpool_node): Dump more flags.
14866
83f44b39
GG
148672013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14868
14869 * config/i386/i386.c (processor_alias_table): Add instruction
14870 FSGSBASE for AMD bdver3 architecture.
14871
2e55d062
JJ
148722013-05-14 Jakub Jelinek <jakub@redhat.com>
14873
14874 * tree.c (warn_deprecated_use): Print file:line using locus color.
14875 * diagnostic.c (diagnostic_report_current_module): Print file:line
14876 and file:line:column using locus color.
14877
0bfdb81e
MS
148782013-05-14 Mike Stump <mikestump@comcast.net>
14879
14880 * gdbinit.in: Add __null.
14881
a508ef22
MS
148822013-05-14 Mike Stump <mikestump@comcast.net>
14883
14884 * recog.h: Rename struct recog_data to Recog_data.
14885 * recog.c: Likewise.
14886 * reload.c (can_reload_into): Likewise.
14887 * config/picochip/picochip.c: Likewise.
14888
e7180acb
MS
148892013-05-14 Mike Stump <mikestump@comcast.net>
14890
14891 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
14892
61216c26
SB
148932013-05-14 Steven Bosscher <steven@gcc.gnu.org>
14894
fd6beed4
SB
14895 * resource.h (struct resources): Remove unch_memory member.
14896 (CLEAR_RESOURCE): Don't clear unch_memory.
14897 * resource.c (mark_referenced_resources): Don't set it.
14898 (mark_set_resources): Likewise.
14899 (mark_target_live_regs): Don't clear it.
14900 (init_resource_info): Likewise.
14901 * reorg.c (resource_conflicts_p): Don't compare it.
14902 (redundant_insn): Don't set it.
14903
61216c26
SB
14904 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
14905 Remove prototypes.
14906 * emit-rtl.c (next_label): Remove unused function.
14907 (skip_consecutive_labels, link_cc0_insns): Move to ...
14908 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
14909 only place where these functions are used, and make them static.
14910
418d1b87
MG
149112013-05-14 Marc Glisse <marc.glisse@inria.fr>
14912
14913 * fold-const.c (fold_negate_expr): Handle vectors.
14914 (fold_truth_not_expr): Make it static.
14915 (fold_invert_truthvalue): New static function.
14916 (invert_truthvalue_loc): Handle vectors. Do not call
14917 fold_truth_not_expr directly.
14918 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
14919 <TRUTH_NOT_EXPR>: Do not cast to boolean.
14920 (fold_comparison): Handle vector constants.
14921 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
14922 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
14923 * tree.h (fold_truth_not_expr): Remove declaration.
14924
fc21784d
JG
149252013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
14926
14927 * config/aarch64/aarch64-simd.md
14928 (aarch64_vcond_internal<mode>): Rename to...
14929 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
14930 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
14931 float modes. Clarify all iterator modes.
14932 (vcond<mode><mode>): Use new name for vcond expanders.
14933 (vcond<v_cmp_result><mode>): Likewise.
14934 (vcondu<mode><mode>: Likewise.
14935 * config/aarch64/iterators.md (VDQF_COND): New.
14936
d4c52634
MG
149372013-05-14 Marc Glisse <marc.glisse@inria.fr>
14938
14939 PR bootstrap/57266
14940 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
14941 variable for the shift amount. Check that we shift by non-negative
14942 amounts.
14943
2b261262
CLT
149442013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
14945
14946 PR target/42017
14947 * config/arm/arm.h (EPILOGUE_USES): Only return true
14948 for LR_REGNUM after epilogue_completed.
14949
12211b99 149502013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
14951
14952 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 14953 is error_mark_node.
6e022d7b 14954
56cf7859
RO
149552013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14956
14957 PR target/57261
14958 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
14959 and Solaris 11+/x86 with gld.
14960 * configure: Regenerate.
14961
75776c6d
JJ
149622013-05-14 Jakub Jelinek <jakub@redhat.com>
14963
14964 * expmed.c (expand_shift_1): Canonicalize rotates by
14965 constant bitsize / 2 to bitsize - 1.
7f998021 14966 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
14967 case ROTATERT>: Likewise.
14968
14969 Revert:
14970 2013-05-10 Jakub Jelinek <jakub@redhat.com>
14971
14972 * config/i386/i386.md (rotateinv): New code attr.
14973 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
14974 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
14975 roll $31, %eax, etc.
14976
df35498a
RB
149772013-05-14 Richard Biener <rguenther@suse.de>
14978
14979 PR middle-end/57235
14980 * tree-eh.c (sink_clobbers): Give up for successors with
14981 multiple predecessors and no virtual uses.
14982
cc6e7ece
EB
149832013-05-14 Eric Botcazou <ebotcazou@adacore.com>
14984
14985 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
14986 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
14987
f778dd4d
JJ
149882013-05-14 Jakub Jelinek <jakub@redhat.com>
14989
14990 PR middle-end/57251
14991 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
14992 the case when both op0 and op1 have VOIDmode.
14993
bad4df9b
KP
149942013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14995
14996 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
14997 in multiply-accumulate mode.
14998
56f3e9ac
GW
149992013-05-13 Guozhi Wei <carrot@google.com>
15000
15001 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
15002
a3d7ab92
KT
150032013-05-13 Kai Tietz <ktietz@redhat.com>
15004
15005 PR target/56975
15006 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 15007 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 15008 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 15009 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
15010 (ix86_expand_prologue): Likewise.
15011 (ix86_expand_split_stack_prologue): Likewise.
15012 (legitimate_pic_address_disp_p): Likewise.
15013 (legitimize_pic_address): Likewise.
15014 (legitimize_tls_address): Likewise.
15015 (legitimize_pe_coff_symbol): Likewise.
15016 (output_pic_addr_const): Likewise.
15017 (construct_plt_address): Likewise.
15018 (ix86_expand_call): Likewise.
15019 (x86_output_mi_thunk): Likewise.
15020 (x86_function_profiler): Likewise.
15021
c59b7e28
SN
150222013-05-13 Sofiane Naci <sofiane.naci@arm.com>
15023
15024 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
15025 similar switch cases.
15026 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
15027 (aarch64_simd_mov_to_<mode>low): Delete.
15028 (aarch64_simd_mov_to_<mode>high): Delete.
15029 (move_lo_quad_<mode>): Add w<-r alternative.
15030 (aarch64_simd_move_hi_quad_<mode>): Likewise.
15031 (aarch64_simd_mov_from_*): Update type attribute.
15032 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
15033 statement.
15034
5f28524a
JH
150352013-05-13 Jan Hubicka <jh@suse.cz>
15036
15037 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
15038 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
15039 ix86_expand_epilogue, emit_i387_cw_initialization,
15040 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
15041 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 15042
ae6fa899
JJ
150432013-05-13 Jakub Jelinek <jakub@redhat.com>
15044
15045 PR tree-optimization/45216
15046 PR tree-optimization/57157
15047 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
15048 the (-Y) & (B - 1) variant if OP is |.
15049 * expmed.c (expand_shift_1): For rotations by const0_rtx just
15050 return shifted. Use (-op1) & (prec - 1) as other_amount
15051 instead of prec - op1.
15052
4502fe8d
MJ
150532013-05-13 Martin Jambor <mjambor@suse.cz>
15054
15055 PR middle-end/42371
15056 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
15057 (ipa_constant_data): New type.
15058 (ipa_jump_func): Use ipa_constant_data to hold information about
15059 constant jump functions.
15060 (ipa_get_jf_constant): Adjust to jump function type changes.
15061 (ipa_get_jf_constant_rdesc): New function.
15062 (ipa_param_descriptor): New field controlled_uses.
15063 (ipa_get_controlled_uses): New function.
15064 (ipa_set_controlled_uses): Likewise.
15065 * ipa-ref.h (ipa_find_reference): Declare.
15066 * ipa-prop.c (ipa_cst_ref_desc): New type.
15067 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
15068 changes.
15069 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
15070 New parameter cs. Adjust all callers.
15071 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
15072 (remove_described_reference): New function.
15073 (jfunc_rdesc_usable): Likewise.
15074 (try_make_edge_direct_simple_call): Decrement controlled use count,
15075 attempt to remove reference if it hits zero.
15076 (combine_controlled_uses_counters): New function.
15077 (propagate_controlled_uses): Likewise.
15078 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
15079 (ipa_edge_duplication_hook): Duplicate reference descriptions.
15080 (ipa_print_node_params): Print described use counter.
15081 (ipa_write_jump_function): Adjust to jump function type changes.
15082 (ipa_read_jump_function): New parameter CS, pass it to
15083 ipa_set_jf_constant. Adjust caller.
15084 (ipa_write_node_info): Stream controlled use count
15085 (ipa_read_node_info): Likewise.
15086 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
15087 asserting.
15088 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
15089 count. Remove cloning-added reference if it reaches zero.
15090 * ipa-ref.c (ipa_find_reference): New function.
15091
0864bfc2
GG
150922013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15093
e7208ea3 15094 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
15095 alignment values for AMD BD and BT architectures.
15096
640bfeb2
MG
150972013-05-13 Marc Glisse <marc.glisse@inria.fr>
15098
15099 * tree-vect-generic.c (uniform_vector_p): Move ...
15100 * tree.c (uniform_vector_p): ... here.
15101 * tree.h (uniform_vector_p): Declare it.
15102 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
15103 into a scalar.
15104
3a60f32b
JJ
151052013-05-13 Jakub Jelinek <jakub@redhat.com>
15106
198fe1bf
JJ
15107 PR tree-optimization/57230
15108 * tree-ssa-strlen.c (handle_char_store): Record length for
15109 array store from STRING_CST.
15110
3a60f32b
JJ
15111 PR tree-optimization/57230
15112 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
15113 check.
15114
566be57c
JR
151152013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
15116
15117 * config/epiphany/epiphany.c (epiphany_init): Check size of
15118 NUM_MODES_FOR_MODE_SWITCHING.
15119 (epiphany_expand_prologue):
15120 Remove CONFIG_REGNUM initial value handling code.
15121 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
15122 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 15123 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
15124 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
15125 Don't return 1 for FP_MODE_NONE.
15126 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
15127 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
15128 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
15129 * config/epiphany/epiphany.md (save_config): New pattern.
15130
0f2c2331
UB
151312013-05-12 Uros Bizjak <ubizjak@gmail.com>
15132
15133 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
15134
5b3f93c7
UB
151352013-05-10 Uros Bizjak <ubizjak@gmail.com>
15136
15137 * config/i386/i386.md (memory): Handle sseishft1.
15138 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
15139 (*vec_extractv2di_1): Ditto.
15140
1f873f0e
VM
151412013-05-10 Vladimir Makarov <vmakarov@redhat.com>
15142
15143 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
15144 saved registers.
15145
341427fa 151462013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
15147
15148 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
15149 Add mthumb/march=armv7-a multilib.
15150 Add mthumb/march=armv7-r multilib.
15151 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
15152
9e69bdde
RC
151532013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
15154
15155 * config/v850/t-rtems: Add more multilibs.
15156
9ff09a22
RB
151572013-05-10 Richard Biener <rguenther@suse.de>
15158
15159 PR tree-optimization/57214
15160 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
15161 not propagate from SSA names that occur in abnormal PHI nodes.
15162
a5e0cd1d
MG
151632013-05-10 Marc Glisse <marc.glisse@inria.fr>
15164
15165 * stor-layout.c (element_precision): New function.
15166 * machmode.h (element_precision): Declare it.
15167 * tree.c (build_minus_one_cst): New function.
15168 (element_precision): Likewise.
15169 * tree.h (build_minus_one_cst): Declare new function.
15170 (element_precision): Likewise.
15171 * fold-const.c (operand_equal_p): Use element_precision.
15172 (fold_binary_loc): Handle vector types.
15173 * convert.c (convert_to_integer): Use element_precision.
15174 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
15175 separately.
15176
cb2558bc
RS
151772013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
15178
15179 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
15180 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
15181 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
15182 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
15183 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
15184 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
15185 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
15186 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
15187 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
15188 (Uuw8): New constraints.
15189 (Usb4): Move into alphabetical order.
15190 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
15191 (sd8_operand, ub8_operand, uw8_operand): New predicates.
15192 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
15193 previously unnamed patterns.
15194 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
15195 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
15196 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
15197 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
15198 of set_attr_alternative/if_then_else. Use extended_mips16 instead
15199 of specific lengths.
15200
cb3b8d33
JJ
152012013-05-10 Jakub Jelinek <jakub@redhat.com>
15202
6f93c008
JJ
15203 * config/i386/i386.md (rotateinv): New code attr.
15204 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
15205 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
15206 roll $31, %eax, etc.
15207
cb3b8d33
JJ
15208 PR tree-optimization/45216
15209 PR tree-optimization/57157
15210 * tree-ssa-forwprop.c (simplify_rotate): New function.
15211 (ssa_forward_propagate_and_combine): Call it.
15212
afb119be
RB
152132013-05-10 Richard Biener <rguenther@suse.de>
15214
15215 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
15216 disable peeling when we version for aliasing.
15217 (vector_alignment_reachable_p): Honor explicit user alignment.
15218 (vect_supportable_dr_alignment): Likewise.
15219 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
15220 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
15221 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
15222 then peeling to arrange for the cost-model check to come first.
15223
01ae4861
AM
152242013-05-10 Alan Modra <amodra@gmail.com>
15225
15226 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
15227 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
15228 * configure: Regenerate.
15229
ebc9a431
AM
152302013-05-10 Alan Modra <amodra@gmail.com>
15231
15232 PR target/55033
15233 * varasm.c (default_elf_select_section): Move !DECL_P check..
15234 (get_named_section): ..to here before calling get_section_name.
15235 Adjust assertion.
15236 (default_section_type_flags): Add DECL_P check.
15237 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
15238 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
15239
d4bca93c
JR
152402013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
15241
15242 * config/epiphany/epiphany.c (epiphany_expand_prologue):
15243 When using gen_stack_adjust_str with a register offset, add a
15244 REG_FRAME_RELATED_EXPR note.
15245
60ca9a65
UB
152462013-05-09 Uros Bizjak <ubizjak@gmail.com>
15247
15248 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
15249 (*vec_extractv4si_zext_mem): Ditto.
15250 (*vec_extractv2di): Add 0->x and x->x alternatives.
15251 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
15252 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
15253
a3409c02
JM
152542013-05-09 Jason Merrill <jason@redhat.com>
15255
0138d6b2
JM
15256 N3639 C++1y VLA support
15257 * gimplify.c (gimplify_vla_decl): Don't touch an existing
15258 DECL_VALUE_EXPR.
15259
a3409c02
JM
15260 * tree.c (build_constructor_va): New.
15261 * tree.h: Declare it.
15262
66e6b990
MJ
152632013-05-09 Martin Jambor <mjambor@suse.cz>
15264
15265 PR lto/57084
15266 * gimple-fold.c (canonicalize_constructor_val): Call
15267 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
15268
64cfa6c0
JH
152692013-05-09 Jan Hubicka <jh@suse.cz>
15270 Richard Biener <rguenther@suse.de>
15271
15272 PR lto/54095
15273 * symtab.c (symtab_make_decl_local): Do not add private names.
15274
c3167b00
JH
152752013-05-09 Jan Hubicka <jh@suse.cz>
15276
15277 PR lto/54095
15278 * symtab.c (insert_to_assembler_name_hash): Handle clones.
15279 (unlink_from_assembler_name_hash): Likewise.
15280 (symtab_prevail_in_asm_name_hash, symtab_register_node,
15281 symtab_unregister_node, symtab_initialize_asm_name_hash,
15282 change_decl_assembler_name): Update.
15283
12dc6974
SN
152842013-05-09 Sofiane Naci <sofiane.naci@arm.com>
15285
15286 * config/aarch64/aarch64.md: New movtf split.
15287 (*movtf_aarch64): Update.
15288 (aarch64_movdi_tilow): Handle TF modes and rename to
15289 aarch64_movdi_<mode>low.
15290 (aarch64_movdi_tihigh): Handle TF modes and rename to
15291 aarch64_movdi_<mode>high
15292 (aarch64_movtihigh_di): Handle TF modes and rename to
15293 aarch64_mov<mode>high_di
15294 (aarch64_movtilow_di): Handle TF modes and rename to
15295 aarch64_mov<mode>low_di
15296 (aarch64_movtilow_tilow): Remove spurious whitespace.
15297 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
15298 splits.
15299 (aarch64_print_operand): Update.
15300
227eb343
AM
153012013-05-09 Alan Modra <amodra@gmail.com>
15302
15303 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
15304 powerpc64le.
15305 * configure: Regenerate.
15306
0b013847
UB
153072013-05-08 Uros Bizjak <ubizjak@gmail.com>
15308
15309 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
15310 splitter preparation statements.
15311 * config/i386/sse.md (*vec_extract* splitters): Ditto.
15312 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
15313 adjust_address_nv.
15314
1dc3d6e9
BS
153152013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15316
15317 * gimple-ssa-strength-reduction.c (count_candidates): Change
15318 return value to int.
15319 (analyze_candidates_and_replace): Change type of length to int.
15320
e61e7d28
UB
153212013-05-08 Uros Bizjak <ubizjak@gmail.com>
15322
15323 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
15324 (*vec_extract<mode>): Use VI12_128 mode iterator.
15325 (*vec_extract<mode>_mem): Ditto.
15326 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
15327 attribute.
15328
4fbfcf44
DN
153292013-05-08 Diego Novillo <dnovillo@google.com>
15330
15331 PR bootstrap/54659
15332
15333 Revert:
4fbfcf44
DN
15334 2012-08-17 Diego Novillo <dnovillo@google.com>
15335
e61e7d28
UB
15336 PR bootstrap/54281
15337 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
15338 * config.in: Regenerate.
15339 * configure: Regenerate.
15340 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 15341
702d8703
JH
153422013-05-08 Jan Hubicka <jh@suse.cz>
15343
15344 PR lto/54095
15345 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
15346 * cgraph.h (symtab_node_base): Add unique_name.
15347 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
15348 input_overwrite_node, input_varpool_node): Stream unique_name.
15349 * cgraphclones.c (cgraph_create_virtual_clone,
15350 cgraph_function_versioning): Set unique_name.
15351 * ipa.c (function_and_variable_visibility): Set unique_name.
15352
8b28cf47
BS
153532013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15354
15355 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
15356 (alloc_cand_and_find_basis): Restrict conditional candidate
15357 processing to CAND_MULTs.
15358
e86074fd
JH
153592013-05-08 Jan Hubicka <jh@suse.cz>
15360
15361 PR lto/54095
15362 lto-symtab.c (lto_symtab_symbol_p): New function.
15363 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
15364 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
15365 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
15366 Skip static symbols.
15367
44398cbe
PC
153682013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
15369
15370 PR tree-optimization/57200
15371 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
15372 Only call inform if the preceding warning_at returns true.
15373
f6bc1c4a
HS
153742013-05-07 Han Shen <shenhan@google.com>
15375
15376 * cfgexpand.c (record_or_union_type_has_array_p): New function.
15377 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
15378 * common.opt (fstack-protector-strong): New option.
15379 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
15380 * doc/invoke.texi (Optimization Options): Document
15381 "-fstack-protector-strong".
15382 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
15383
4ffecb1f
SB
153842013-05-06 Steven Bosscher <steven@gcc.gnu.org>
15385
15386 * config/mips/mips.c (mips_machine_reorg2): Return 0.
15387
5a107a0f
VM
153882013-05-07 Vladimir Makarov <vmakarov@redhat.com>
15389
15390 * ira.c (update_equiv_regs): Add insn having equiv memory even if
15391 it is not lhs of the insn.
15392 (setup_reg_equiv): Remove insn having equiv memory which it is not
15393 lhs of the insn.
15394 * lra-constraints.c (process_address): Try to improve generation
15395 code for address base + disp.
15396 (lra_constraints): Make correct the code for checking insn setting
15397 up backward equivalence. Remove insn only if it is in the init
15398 insn list.
15399 * lra-eliminations.c (update_reg_eliminate): Change return value.
15400 (lra_eliminate): Use the result.
15401
3f5783ea
UB
154022013-05-07 Uros Bizjak <ubizjak@gmail.com>
15403
15404 * config/i386/sse.md (ssescalarnummask): New mode attribute.
15405 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
15406 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
15407 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
15408 register target operands.
15409 (*vec_extractv8hi_sse2): New pattern.
15410 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
15411 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
15412 (*vec_extract<mode>_mem): New insn and split pattern.
15413
8a5800b8
CL
154142013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
15415
15416 * config/arm/arm.c (arm_asan_shadow_offset): New function.
15417 (TARGET_ASAN_SHADOW_OFFSET): Define.
15418 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
15419 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
15420
7bf55a70
BS
154212013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15422
15423 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
15424 (incr_vec_index): Return -1 if increment not found.
15425 (create_add_on_incoming_edge): Assert if increment not found.
15426 (record_increment): Limit number of increments recorded.
15427 (all_phi_incrs_profitable): Return false if an increment not found.
15428 (replace_profitable_candidates): Don't process increments that were
15429 not recorded.
15430 (analyze_candidates_and_replace): Limit size of incr_vec.
15431
3f8825c0
RB
154322013-05-07 Richard Biener <rguenther@suse.de>
15433
15434 * calls.c (special_function_p): setjmp-like functions are leaf.
15435 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
15436 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
15437
fd4842cd
SN
154382013-05-07 Sofiane Naci <sofiane.naci@arm.com>
15439
15440 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
15441 (aarch64_simd_mov<mode>): New expander.
15442 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
15443 (aarch64_simd_mov_to_<mode>high): Likewise.
15444 (aarch64_simd_mov_from_<mode>low): Likewise.
15445 (aarch64_simd_mov_from_<mode>high): Likewise.
15446 (aarch64_dup_lane<mode>): Update.
15447 (aarch64_dup_lanedi): New instruction pattern.
15448 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
15449 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
15450
a7a7d10e
BS
154512013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15452
15453 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
15454 (replace_mult_candidate): Remove unnecessary argument; remove
15455 unnecessary parameter from call to introduce_cast_before_cand.
15456 (replace_unconditional_candidate): Remove unnecessary parameter
15457 from call to replace_mult_candidate.
15458 (replace_conditional_candidate): Likewise.
15459 (insert_initializers): Use make_temp_ssa_name.
15460 (introduce_cast_before_cand): Remove unnecessary argument; use
15461 make_temp_ssa_name.
15462 (replace_one_candidate): Remove unnecessary argument; remove
15463 unnecessary parameter from calls to introduce_cast_before_cand.
15464 (replace_profitable_candidates): Remove unnecessary parameters
15465 from calls to replace_one_candidate.
15466
29105868
BS
154672013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15468
15469 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
15470 phi def as possibly hiding a basis for a CAND_ADD whose operands
15471 have been commuted in the analysis.
15472 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
15473
4095f9fa
N
154742013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15475
15476 * config/aarch64/aarch64.md
15477 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
15478 shift value between 0-4.
15479
39e843e8
RB
154802013-05-07 Richard Biener <rguenther@suse.de>
15481
15482 * double-int.h (rshift): New overload.
15483 * double-int.c (rshift): New function.
15484 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
15485 (create_reference_ops_from_ref): Remove.
15486 (vn_reference_insert): Use shared ops for constructing the
15487 reference and copy it.
15488
0a1a83cb
RB
154892013-05-07 Richard Biener <rguenther@suse.de>
15490
15491 PR middle-end/57190
15492 * tree-eh.c (sink_clobbers): Properly propagate
15493 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15494
43303d6f
JJ
154952013-05-07 Jakub Jelinek <jakub@redhat.com>
15496
ba7e83f8
JJ
15497 PR tree-optimization/57149
15498 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
15499 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
15500 collect_phi_def_edges, execute_late_warn_uninitialized): Use
15501 uninit_undefined_value_p instead of ssa_undefined_value_p.
15502
43303d6f
JJ
15503 PR debug/57184
15504 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
15505 for modifier == EXPAND_INITIALIZER.
15506
14523c25
AB
155072013-05-07 Anton Blanchard <anton@samba.org>
15508
15509 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
15510 for powerpc64 little endian.
15511 * configure: Regenerate.
15512
cb7c8be9
GS
155132013-05-06 Graham Stott <grahams@btinternet.com>
15514
15515 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
15516 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
15517 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
15518 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
15519
155202013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
15521
15522 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
15523 codes which allow non-lvalues.
15524
9a0ee7b0
MG
155252013-05-06 Marc Glisse <marc.glisse@inria.fr>
15526
15527 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
15528 components are all 1s.
15529 (integer_minus_onep): New function.
15530 * tree.h (integer_minus_onep): Declare it.
15531 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
15532 integer_minus_onep instead of integer_all_onesp.
15533
f2c17ea9
OE
155342013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15535
15536 PR target/52933
15537 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
15538 variations of these patterns.
15539
f75e6a51
UB
155402013-05-06 Uros Bizjak <ubizjak@gmail.com>
15541
15542 * config/i386/i386.md (isa): Add x64_sse4 member.
15543 (enabled): Handle x64_sse4.
15544 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
15545 instruction for 64bit SSE4_1 targets. Update insn attributes.
15546 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
15547 instruction for SSE4_1 targets. Update insn attributes.
15548 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
15549 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
15550 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
15551 const_1 selector.
15552 (*vec_extractv4si): Rename from *sse4_1_pextrd.
15553 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
15554 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
15555
a986d468
OE
155562013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15557
15558 PR target/57108
15559 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
15560
382522cb
MK
155612013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
15562
15563 * final.c (do_assembler_dialects): Don't handle curly braces and
15564 vertical bar escaped by % as dialect delimiters.
15565 (output_asm_insn): Print curly braces and vertical bar if escaped
15566 by % and ASSEMBLER_DIALECT defined.
15567 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
15568 * doc/tm.texi: Regenerated.
15569
fb0d5c60
SB
155702013-05-06 Steven Bosscher <steven@gcc.gnu.org>
15571
fb0d5c60
SB
15572 * config/mips/mips.c: Include tree-pass.h.
15573 (mips_reorg): Split in pre- and post-dbr_schedule parts.
15574 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
15575 (pass_mips_machine_reorg2): New machine specific pass.
15576 (insert_pass_mips_machine_reorg2): New pass plugin definition.
15577 (mips_option_override): Register the new pass.
15578 * rtl.h (cleanup_barriers): Remove prototype.
15579 (dbr_schedule): Likewise.
15580 * jump.c (cleanup_barriers): Make static.
15581 * reorg.c (dbr_schedule): Likewise.
15582
aa06a978
RB
155832013-05-06 Richard Biener <rguenther@suse.de>
15584
15585 PR tree-optimization/57185
15586 * tree-parloops.c (add_field_for_reduction): Handle anonymous
15587 SSA names properly.
15588
0b953bec
UB
155892013-05-06 Uros Bizjak <ubizjak@gmail.com>
15590
15591 PR target/57106
15592 * config/i386/i386.c (add_parameter_dependencies): Add dependence
15593 between "first_arg" and "insn", not "last" and "insn".
15594
28708525
WS
155952013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15596
15597 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
15598 (find_candidates_in_block): Re-enable slsr_process_phi.
15599 (create_phi_basis): Fix double counting of candidate adjustment.
15600
0107dca2
RB
156012013-05-06 Richard Biener <rguenther@suse.de>
15602
15603 PR middle-end/57147
15604 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
15605 the edge is also fallthru, preserve it and just clear the
15606 abnormal flag.
15607 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
15608 also complex, preserve that and just clear the fallthru flag.
15609 * tree-inline.c (update_ssa_across_abnormal_edges): Also
15610 update virtual operands.
15611
470d4d13
AM
156122013-05-06 Alan Modra <amodra@gmail.com>
15613
15614 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
15615 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
15616 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
15617 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
15618 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
15619 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
15620
8f1dbf8d
AM
156212013-05-06 Alan Modra <amodra@gmail.com>
15622
15623 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
15624 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
15625 (DEFAULT_ASM_ENDIAN): Define.
15626 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
15627 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
15628 Update -K PIC clause from sysv4.h.
15629 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
15630 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
15631
54890767
AM
156322013-05-06 Alan Modra <amodra@gmail.com>
15633
15634 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
15635 twice for little-endian.
15636 (ashrdi3_no_power, ashrdi3): Support little-endian.
15637
2353515d
OE
156382013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15639
15640 PR target/55303
15641 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
15642 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
15643 related expanders.
15644 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
15645 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
15646 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
15647 New predicates.
15648
33e67557
SB
156492013-05-05 Steven Bosscher <steven@gcc.gnu.org>
15650 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15651
15652 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
15653 * config/pa/pa.opt: Make mbig-switch a no-op.
15654 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
15655 (CASE_VECTOR_MODE): Always return SImode.
15656 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
15657 for the !TARGET_BIG_SWITCH case.
15658 * config/pa/pa-linux.h: Likewise.
15659 * config/pa/pa-openbsd.h: Likewise.
15660 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
15661 * config/pa/pa.md (short_jump): Remove define_insn.
15662 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
15663 (casesi0): Remove define_insn.
15664 (type): Remove btable_branch.
15665 (pa_combine_type): Likewise.
15666 (in_nullified_branch_delay): Likewise.
15667 (in_call_delay): Likewise.
15668 (define_delay): Likewise.
15669 (define_insn_reservation "Z3"): Likewise.
15670 (define_insn_reservation "Z4"): Likewise.
15671 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
15672 (pa_adjust_insn_length): Remove adjustment for btable branches.
15673 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
15674 and mno-big-switch
15675
3095685e
UB
156762013-05-05 Uros Bizjak <ubizjak@gmail.com>
15677
15678 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
15679 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
15680 Add m->r,x alternatives.
15681 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
15682 splitters using SWI48x mode iterator.
15683 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
15684 TARGET_64BIT. Add m->x alternative.
15685 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
15686 Add o->x alternative. Enable for TARGET_SSE.
15687 (sse_storeq): Remove expander.
15688 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
15689 with memory input operand.
15690 (*vec_extractv2di_1 splitter): New.
15691 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
15692 * config/i386/i386.md (ssevecmodelower): New mode attribute.
15693
4b36ae28
SB
156942013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15695
15696 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
15697 (INT_LOWPART): Delete.
15698 (extract_MB): Adjust.
15699 (extract_ME): Adjust.
15700 (print_operand): Adjust.
15701
da226db2
SB
157022013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15703
15704 * config/rs6000/predicates.md (reg_or_add_cint_operand,
15705 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
15706 (reg_or_logical_cint_operand, easy_fp_constant,
15707 logical_const_operand): Delete "CONST_DOUBLE" case.
15708 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
15709 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 15710 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
15711 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
15712 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
15713 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
15714 test.
15715 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
15716 CONST_DOUBLE DImode/VOIDmode case.
15717 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
15718 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
15719 CONST_DOUBLE VOIDmode case.
15720 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
15721 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
15722 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
15723 Delete CONST_DOUBLE case.
15724 (splitters for mov FMOVE64 const_double): Delete
15725 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
15726 "HOST_BITS_PER_WIDE_INT >= 64" test.
15727 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
15728 case.
15729 (mov DI const_double): Delete.
15730
40de22d6
JJ
157312013-05-04 Jakub Jelinek <jakub@redhat.com>
15732
15733 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
15734 on op shows all bits zero in mode of a lowpart subreg, return zero.
15735
5ec6aff2
MM
157362013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15737
15738 PR target/57150
15739 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
15740 to save TFmode registers and DImode to save TImode registers for
15741 caller save operations.
15742 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
15743 mark being partially clobbered since they only use the first
15744 double word.
15745
15746 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
15747 and TDmode only use the upper 64-bits of each VSX register.
15748
2cefad90
BS
157492013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15750
15751 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
15752 (find_candidates_in_block): Disable slsr_process_phi.
15753
d6d7eee1
GW
157542013-05-03 Guozhi Wei <carrot@google.com>
15755
15756 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
15757 constructor to ...
15758 (build_init_ctor): ... here.
d6d7eee1 15759
9b92d12b
BS
157602013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15761
15762 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
15763 (slsr_cand_d): Redefine def_phi.
15764 (stride_status, phi_adjust_status, count_phis_status): New enums.
15765 (find_phi_def): New.
15766 (find_basis_for_base_expr): New.
15767 (find_basis_for_candidate): Handle hidden bases.
15768 (alloc_cand_and_find_basis): Handle phi candidates.
15769 (slsr_process_phi): New.
15770 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
15771 (create_mul_imm_cand): Likewise.
15772 (create_add_ssa_cand): Exclude phi base candidates.
15773 (create_add_imm_cand): Likewise.
15774 (slsr_process_cast): Likewise.
15775 (slsr_process_copy): Likewise.
15776 (find_candidates_in_block): Handle phi candidates.
15777 (dump_candidate): Likewise.
15778 (unconditional_cands): Delete.
15779 (unconditional_cands_with_known_stride_p): Delete.
15780 (phi_dependent_cand_p): New.
15781 (cand_increment): Handle phi-dependent candidates.
15782 (replace_dependent): Delete.
15783 (replace_mult_candidate): New.
15784 (replace_unconditional_candidate): New.
15785 (incr_vec_index): Move to avoid forward reference.
15786 (create_add_on_incoming_edge): New.
15787 (create_phi_basis): New.
15788 (replace_dependents): Delete.
15789 (replace_conditional_candidate): New.
15790 (phi_add_costs): New.
15791 (replace_uncond_cands_and_profitable_phis): New.
15792 (record_increment): Handle phi adjustments.
15793 (record_phi_increments): New.
15794 (record_increments): Handle phi adjustments.
15795 (phi_incr_cost): New.
15796 (lowest_cost_path): Handle phis.
15797 (total_savings): Likewise.
15798 (analyze_increments): Likewise.
15799 (ncd_with_phi): New.
15800 (ncd_of_cand_and_phis): New.
15801 (nearest_common_dominator_for_cands): Handle phi increments.
15802 (all_phi_incrs_profitable): New.
15803 (replace_profitable_candidates): Handle phi-dependent candidates.
15804 (analyze_candidates_and_replace): Likewise.
15805
68f073d4
TJ
158062013-05-03 Teresa Johnson <tejohnson@google.com>
15807
15808 PR bootstrap/57154
15809 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
15810 do not exceed REG_BR_PROB_BASE.
15811
a4ee7cb9
JL
158122013-05-03 Jeff Law <law@redhat.com>
15813
ade67f70 15814 PR tree-optimization/57144
a4ee7cb9
JL
15815 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
15816 operand of the condition will bit into the new type when eliminating
15817 a cast feeding a condition.
15818
47954c4e
JJ
158192013-05-03 Jakub Jelinek <jakub@redhat.com>
15820
15821 PR rtl-optimization/57130
3095685e
UB
15822 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
15823 of COMPARE as in_code to the recursive call if needed.
47954c4e 15824
3c21604f
UB
158252013-05-03 Uros Bizjak <ubizjak@gmail.com>
15826
15827 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
15828 (enabled): Handle new members.
15829 * config/i386/sse.md (*vec_concatv2si): Merge from
15830 *vec_concatv2si_sse2 and vec_concatv2si_sse.
15831 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
15832
12211b99 158332013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
15834
15835 PR tree-optimization/57027
15836 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
15837 for fnms opportunity, check we got the prerequisite kind
15838 of tree / gimple before using accessor functions.
15839
07bfc9ec
RB
158402013-05-03 Richard Biener <rguenther@suse.de>
15841
15842 * double-int.h (lshift): New overload without precision
15843 and arith argument.
15844 (operator *=, operator +=, operator -=): Move ...
15845 * double-int.c (operator *=, operator +=, operator -=): ... here
15846 and implement more efficiently.
15847 (mul_double_with_sign): Remove.
15848 (lshift_double): Adjust to take unsinged shift argument, push
15849 dispatching code to callers.
15850 (mul_double_wide_with_sign): Add early out for callers that
15851 are not interested in high parts or overflow.
15852 (lshift): New function.
15853 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
15854 dispatch code here.
15855 (lrotate, rrotate): Use logical shifts.
15856 * expr.c (get_inner_reference): Use lshift.
15857 * fixed-value.c (do_fixed_divide): Likewise.
15858 * tree-dfa.c (get_ref_base_and_extent): Likewise.
15859 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15860 (indirect_refs_may_alias_p): Likewise.
15861 (stmt_kills_ref_p_1): Likewise.
15862
7769bb64
VP
158632013-05-03 Vidya Praveen <vidyapraveen@arm.com>
15864
15865 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
15866
1d0c8e5c
VP
158672013-05-03 Vidya Praveen <vidyapraveen@arm.com>
15868
15869 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
15870 scalar form of FABD instruction.
15871
f15feaf9
VM
158722013-05-02 Vladimir Makarov <vmakarov@redhat.com>
15873
15874 * lra-constraints.c (process_alt_operands): Add checking alt
15875 number to choose the best alternative.
15876
d90e76d4
RB
158772013-05-02 Richard Biener <rguenther@suse.de>
15878
15879 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
15880 bitmap and its handling.
15881 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
15882
9f8e7a96
RB
158832013-05-02 Richard Biener <rguenther@suse.de>
15884
15885 PR middle-end/57140
15886 * tree-inline.c (copy_loops): Properly handle removed loops.
15887 (copy_cfg_body): Mark destination loops for fixup if source
15888 loops needed fixup.
15889
f3a81b39
GY
158902013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
15891
15892 PR target/56732
15893 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
15894 generating simple_return for naked functions.
15895
7b920a9a
MJ
158962013-05-02 Martin Jambor <mjambor@suse.cz>
15897
15898 PR middle-end/56988
15899 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
15900 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
15901 flags match.
15902 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
15903 ipa_agg_replacement_value structures.
15904 (known_aggs_to_agg_replacement_list): Likewise.
15905 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
15906 (read_agg_replacement_chain): Likewise.
15907 (ipcp_transform_function): Also check that by_ref flags match.
15908
2c41c19d
RB
159092013-05-02 Richard Biener <rguenther@suse.de>
15910
15911 * graphds.h (struct graph): Add obstack member.
15912 * graphds.c (new_graph): Initialize obstack and allocate
15913 vertices from it.
15914 (add_edge): Allocate edge from the obstack.
3c21604f 15915 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 15916
8b47039c
TJ
159172013-05-02 Teresa Johnson <tejohnson@google.com>
15918
15919 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
15920 divides.
15921 * cfg.c (update_bb_profile_for_threading): Ditto.
15922 * tree-inline.c (copy_bb): Ditto.
15923 (copy_edges_for_bb): Ditto.
15924 (initialize_cfun): Ditto.
15925 (copy_cfg_body): Ditto.
15926 (expand_call_inline): Ditto.
15927 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
15928 (estimate_node_size_and_time): Ditto.
15929 (inline_merge_summary): Ditto.
15930 * cgraphclones.c (cgraph_clone_edge): Ditto.
15931 (cgraph_clone_node): Ditto.
15932 * sched-rgn.c (compute_dom_prob_ps): Ditto.
15933 (compute_trg_info): Ditto.
15934
da65928c
IB
159352013-05-02 Ian Bolton <ian.bolton@arm.com>
15936
15937 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
15938 S reg when fp attribute set.
15939 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
15940
add3c965
IB
159412013-05-02 Ian Bolton <ian.bolton@arm.com>
15942
15943 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
15944 New pattern.
15945 (*and_one_cmplsi3_compare0_uxtw): Likewise.
15946 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
15947 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
15948
fdd43ac4
RB
159492013-05-02 Richard Biener <rguenther@suse.de>
15950
15951 * tree-scalar-evolution.c (scev_info_hasher): Remove.
15952 (struct instantiate_cache_entry): New type.
15953 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
15954 (struct instantiate_cache_type): New type.
15955 (set_instantiated_value, get_instantiated_value): Remove.
15956 (get_instantiated_value_entry): New function.
15957 (instantiate_scev_name): Use the new cache and adjust.
15958 (instantiate_scev_poly): Adjust.
15959 (instantiate_scev_binary): Likewise.
15960 (instantiate_array_ref): Likewise.
15961 (instantiate_scev_convert): Likewise.
15962 (instantiate_scev_not): Likewise.
15963 (instantiate_scev_3): Likewise.
15964 (instantiate_scev_2): Likewise.
15965 (instantiate_scev_r): Likewise.
15966 (instantiate_scev): Likewise.
15967 (resolve_mixers): Likewise.
15968
36ff9dfb
VM
159692013-05-01 Vladimir Makarov <vmakarov@redhat.com>
15970
15971 PR target/57091
15972 * lra-constraints.c (best_small_class_operands_num): Remove.
15973 (process_alt_operands): Remove small_class_operands_num. Take
15974 small classes operands into losers and only if the operand is not
15975 matched. Modify debugging output.
15976 (curr_insn_transform): Remove best_small_class_operands_num.
15977 Print insn name.
15978
36054fab
JG
159792013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15980
15981 * config/aarch64/aarch64-builtins.c
15982 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
15983 * config/aarch64/aarch64-simd-builtins.def
15984 (reduc_splus_): Add new modes.
15985 (reduc_uplus_): New.
15986 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
15987 (reduc_uplus_v4sf): Likewise.
15988 (reduc_splus_v4sf): Likewise.
15989 (aarch64_addv<mode>): Likewise.
15990 (reduc_uplus_<mode>): Likewise.
15991 (reduc_splus_<mode>): Likewise.
15992 (aarch64_addvv2di): Likewise.
15993 (reduc_uplus_v2di): Likewise.
15994 (reduc_splus_v2di): Likewise.
15995 (aarch64_addvv2si): Likewise.
15996 (reduc_uplus_v2si): Likewise.
15997 (reduc_splus_v2si): Likewise.
15998 (reduc_<sur>plus_<mode>): New.
15999 (reduc_<sur>plus_v2di): Likewise.
16000 (reduc_<sur>plus_v2si): Likewise.
16001 (reduc_<sur>plus_v4sf): Likewise.
16002 (aarch64_addpv4sf): Likewise.
16003 * config/aarch64/arm_neon.h
16004 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
16005 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
16006 add UNSPEC_SADDV, UNSPEC_UADDV.
16007 (SUADDV): New.
16008 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
16009
6dce23a8
JG
160102013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16011
16012 * config/aarch64/arm_neon.h
16013 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
16014
1598945b
JG
160152013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16016
16017 * config/aarch64/aarch64-builtins
16018 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
16019
998eaf97
JG
160202013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16021
16022 * config/aarch64/aarch64-simd-builtins.def
16023 (reduc_smax_): New.
16024 (reduc_smin_): Likewise.
16025 (reduc_umax_): Likewise.
16026 (reduc_umin_): Likewise.
16027 (reduc_smax_nan_): Likewise.
16028 (reduc_smin_nan_): Likewise.
16029 (fmax): Remove.
16030 (fmin): Likewise.
16031 (smax): Update for V2SF, V4SF and V2DF modes.
16032 (smin): Likewise.
16033 (smax_nan): New.
16034 (smin_nan): Likewise.
16035 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
16036 (<su><maxmin><mode>3): ...This, refactor.
16037 (s<maxmin><mode>3): New.
16038 (<maxmin_uns><mode>3): Likewise.
16039 (reduc_<maxmin_uns>_<mode>): Refactor.
16040 (reduc_<maxmin_uns>_v4sf): Likewise.
16041 (reduc_<maxmin_uns>_v2si): Likewise.
16042 (aarch64_<fmaxmin><mode>: Remove.
16043 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
16044 new builtin names.
16045 (vmin<q>_f<32,64>): Likewise.
16046 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16047 (FMAXMIN): New.
16048 (su): Add mappings for smax, smin, umax, umin.
16049 (maxmin): New.
16050 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16051 (FMAXMIN): Rename as...
16052 (FMAXMIN_UNS): ...This.
16053 (maxminv): Remove.
16054 (fmaxminv): Likewise.
16055 (fmaxmin): Likewise.
16056 (maxmin_uns): New.
16057 (maxmin_uns_op): Likewise.
16058
bd11644e
JG
160592013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16060
16061 * config/aarch64/arm_neon.h
16062 (vac<ge, gt><sd>_f<32, 64>): Rename to...
16063 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
16064 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
16065
75dd5ace
JG
160662013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16067
16068 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
16069 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
16070
7c19979f
JG
160712013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16072
16073 * config/aarch64/aarch64-simd.md
16074 (vcond<mode>_internal): Handle special cases for constant masks.
16075 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
16076 (vcondu<mode><mode>): Likewise.
16077 (vcond<v_cmp_result><mode>): New.
16078
bb60efd9
JG
160792013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16080
16081 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
16082 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
16083 * config/aarch64/aarch64-simd-builtins.def
16084 (cmeq): Update to BUILTIN_VALLDI.
16085 (cmgt): Likewise.
16086 (cmge): Likewise.
16087 (cmle): Likewise.
16088 (cmlt): Likewise.
16089 * config/aarch64/arm_neon.h
16090 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
16091 to builtins or C as appropriate.
16092
889b9412
JG
160932013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16094
16095 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
16096 (cmgeu): ...This.
16097 (cmhi): Rename to...
16098 (cmgtu): ...This.
16099 * config/aarch64/aarch64-simd.md
16100 (simd_mode): Add SF.
16101 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
16102 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
16103 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
16104 (cstore<mode>_neg): ...This.
16105 * config/aarch64/iterators.md
16106 (VALLF): new.
16107 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
16108 (COMPARISONS): New.
16109 (UCOMPARISONS): Likewise.
16110 (optab): Add missing comparisons.
16111 (n_optab): New.
16112 (cmp_1): Likewise.
16113 (cmp_2): Likewise.
16114 (CMP): Likewise.
16115 (cmp): Remove.
16116 (VCMP_S): Likewise.
16117 (VCMP_U): Likewise.
16118 (V_cmp_result): Add DF, SF modes.
16119 (v_cmp_result): Likewise.
16120 (v): Likewise.
16121 (vmtype): Likewise.
16122 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
16123
0a7dbb76
GY
161242013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
16125
16126 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
16127 define_insn to define_insn_and_split.
16128 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
16129 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
16130 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
16131 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
16132 (thumb2_negscc): Likewise.
16133
fb614ca6
GY
161342013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
16135
16136 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
16137
9e64a0bf
GY
161382013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
16139
16140 * config/arm/thumb2.md: Remove trailing whitespaces.
16141
d6b28156
RS
161422013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16143
16144 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
16145 Use gen_int_mode rather than GEN_INT.
16146
f91674c3
L
161472013-04-30 H.J. Lu <hongjiu.lu@intel.com>
16148
b0dec607 16149 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
16150 debug_gimple_stmt.
16151
3551257c
RB
161522013-04-30 Richard Biener <rguenther@suse.de>
16153
16154 PR middle-end/57122
3c21604f 16155 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 16156
4c1aff1c
RB
161572013-04-30 Richard Biener <rguenther@suse.de>
16158
16159 PR middle-end/57107
16160 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
16161
54b8379a
AB
161622013-04-30 Andrey Belevantsev <abel@ispras.ru>
16163
16164 PR rtl-optimization/56957
16165 PR rtl-optimization/57105
54b8379a
AB
16166 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
16167 variable. Use just INSN_UID for determining whether an insn
16168 should be only disconnected from the insn stream.
16169 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
16170
abc27962
JJ
161712013-04-30 Jakub Jelinek <jakub@redhat.com>
16172
16173 PR tree-optimization/57104
16174 * tsan.c (instrument_expr): Don't instrument accesses to
16175 DECL_HARD_REGISTER VAR_DECLs.
16176
0fc822d0
RB
161772013-04-30 Richard Biener <rguenther@suse.de>
16178
16179 * function.h (loops_for_fn): New inline function.
16180 (set_loops_for_fn): Likewise.
16181 * cfgloop.h (place_new_loop): Add struct function parameter.
16182 (get_loop): Likewise.
16183 (get_loops): Likewise.
16184 (number_of_loops): Likewise.
16185 (fel_next): Adjust.
16186 (fel_init): Likewise.
16187 * cfg.c (get_loop_copy): Adjust.
16188 * cfgloop.c (flow_loops_dump): Likewise.
16189 (record_loop_exits): Likewise.
16190 (verify_loop_structure): Likewise.
16191 * cfgloopanal.c (mark_irreducible_loops): Likewise.
16192 (estimate_reg_pressure_cost): Likewise.
16193 (mark_loop_exit_edges): Likewise.
16194 * cfgloopmanip.c (place_new_loop): Likewise.
16195 (add_loop): Likewise.
16196 (duplicate_loop): Likewise.
16197 * graph.c (draw_cfg_nodes): Likewise.
16198 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
16199 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
16200 (extract_affine_chrec): Likewise.
16201 (build_scop_iteration_domain): Likewise.
16202 * graphite.c (graphite_initialize): Likewise.
16203 * ira-build.c (create_loop_tree_nodes): Likewise.
16204 (more_one_region_p): Likewise.
16205 (rebuild_regno_allocno_maps): Likewise.
16206 (mark_loops_for_removal): Likewise.
16207 (mark_all_loops_for_removal): Likewise.
16208 (remove_unnecessary_regions): Likewise.
16209 (ira_build): Likewise.
16210 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
16211 * loop-init.c (fix_loop_structure): Likewise.
16212 (gate_rtl_move_loop_invariants): Likewise.
16213 (gate_rtl_unswitch): Likewise.
16214 (gate_rtl_unroll_and_peel_loops): Likewise.
16215 (rtl_doloop): Likewise.
16216 * lto-streamer-in.c (input_cfg): Likewise.
16217 * lto-streamer-out.c (output_cfg): Likewise.
16218 * modulo-sched.c (sms_schedule): Likewise.
16219 * predict.c (tree_estimate_probability): Likewise.
16220 (tree_estimate_probability_driver): Likewise.
16221 (estimate_loops): Likewise.
16222 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
16223 (move_sese_region_to_fn): Likewise.
16224 (debug_loop_num): Likewise.
16225 * tree-chrec.c (chrec_evaluate): Likewise.
16226 (hide_evolution_in_other_loops_than_loop): Likewise.
16227 (chrec_component_in_loop_num): Likewise.
16228 (reset_evolution_in_loop): Likewise.
16229 (evolution_function_is_invariant_rec_p): Likewise.
16230 * tree-if-conv.c (main_tree_if_conversion): Likewise.
16231 * tree-inline.c (copy_loops): Likewise.
16232 (copy_cfg_body): Likewise.
16233 (tree_function_versioning): Likewise.
16234 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
16235 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
16236 Likewise.
16237 (add_to_evolution_1): Likewise.
16238 (scev_const_prop): Likewise.
16239 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
16240 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
16241 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
16242 (tree_ssa_lim_initialize): Likewise.
16243 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
16244 (verify_loop_closed_ssa): Likewise.
16245 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
16246 (tree_ssa_loop_im): Likewise.
16247 (tree_ssa_loop_unswitch): Likewise.
16248 (tree_vectorize): Likewise.
16249 (check_data_deps): Likewise.
16250 (tree_ssa_loop_ivcanon): Likewise.
16251 (tree_ssa_loop_bounds): Likewise.
16252 (tree_complete_unroll): Likewise.
16253 (tree_complete_unroll_inner): Likewise.
16254 (tree_parallelize_loops): Likewise.
16255 (tree_ssa_loop_prefetch): Likewise.
16256 (tree_ssa_loop_ivopts): Likewise.
16257 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
16258 * tree-vectorizer.c (vectorize_loops): Likewise.
16259
37953bd3
MF
162602013-04-29 Mike Frysinger <vapier@gentoo.org>
16261
16262 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
16263 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
16264 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
16265 with EABI_LINK_SPEC.
16266
f9ed28db
UB
162672013-04-29 Uros Bizjak <ubizjak@gmail.com>
16268
16269 PR target/44578
16270 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
16271 alternative.
16272
deca73f5
VM
162732013-04-29 Vladimir Makarov <vmakarov@redhat.com>
16274
16275 PR target/57097
37953bd3 16276 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
16277 using memory for pseudos. Print cost dump for alternatives.
16278 Modify cost values for conflicts with early clobbers.
16279 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
16280
fdca7d03
UB
162812013-04-29 Uros Bizjak <ubizjak@gmail.com>
16282
16283 PR target/57098
16284 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
16285
0b064172
IB
162862013-04-29 Ian Bolton <ian.bolton@arm.com>
16287
16288 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
16289 from/to S register.
16290 (movdi_aarch64): Support LDR/STR from/to D register.
16291
473cec55
IB
162922013-04-29 Ian Bolton <ian.bolton@arm.com>
16293
16294 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
16295 or higher by default.
16296
a6f30e66
RB
162972013-04-29 Richard Biener <rguenther@suse.de>
16298
16299 PR middle-end/57075
16300 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
16301 even if not adding abnormal edges for calls that can make
16302 abnormal gotos.
16303
0c2b2040
RB
163042013-04-29 Richard Biener <rguenther@suse.de>
16305
16306 PR middle-end/57103
16307 * tree-cfg.c (move_stmt_op): Fix condition under which to update
16308 TREE_BLOCK.
16309 (move_stmt_r): Remove redundant checking.
16310
f41f80f9
TJ
163112013-04-29 Teresa Johnson <tejohnson@google.com>
16312
16313 PR bootstrap/57077
16314 * basic-block.h (apply_scale): New function.
16315 (apply_probability): Use apply_scale.
16316 * gimple-streamer-in.c (input_bb): Ditto.
16317 * lto-streamer-in.c (input_cfg): Ditto.
16318 * lto-cgraph.c (merge_profile_summaries): Ditto.
16319 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 16320 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
16321 (copy_edges_for_bb): Ditto.
16322 (copy_cfg_body): Ditto.
16323
315bbd2e
TV
163242013-04-29 Tom de Vries <tom@codesourcery.com>
16325
16326 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
16327 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
16328 (tail_merge_optimize): Handle current_loops == NULL.
16329
ebbd90d8
JL
163302013-04-26 Jeff Law <law@redhat.com>
16331
16332 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
16333 (simplify_cond_using_ranges): Generalize code to simplify
16334 COND_EXPRs where one argument is a constant and the other
16335 is an SSA_NAME created by an integral type conversion.
16336
8b9b57eb
KT
163372013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16338
16339 * config/arm/arm.md (store_minmaxsi): Use only when
16340 optimize_insn_for_size_p.
16341
9498e5dc
CB
163422013-04-29 Christian Bruel <christian.bruel@st.com>
16343
16344 PR target/57108
16345 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
16346
6093bc06
RB
163472013-04-29 Richard Biener <rguenther@suse.de>
16348
16349 PR middle-end/57089
fdca7d03
UB
16350 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
16351 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
16352 (expand_omp_for_generic): Properly add loops.
16353 (expand_omp_for_static_nochunk): Likewise.
16354 (expand_omp_for_static_chunk): Likewise.
16355 (expand_omp_for): For the degenerate case fixup loops.
16356 (expand_omp_sections): Fix default bb placement in loops.
16357 (expand_omp_atomic_pipeline): Properly add loops.
16358
84aacbfd
KT
163592013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16360
16361 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
16362
8dee4479
TV
163632013-04-29 Tom de Vries <tom@codesourcery.com>
16364
16365 * tree-ssa-tail-merge.c: Update header comment.
16366
47934dc4
JG
163672013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16368
16369 * config/aarch64/arm_neon.h
16370 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
16371 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
16372 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
16373 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
16374 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
16375 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
16376 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
16377 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
16378
384be29f
JG
163792013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16380
16381 * config/aarch64/aarch64-simd.md
16382 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
16383 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
16384 fix_trunc, fixuns_trunc.
16385 (ftrunc<VDQF:mode>2): New.
16386 * config/aarch64/iterators.md (optab): Add fix, fixuns.
16387 (fix_trunc_optab): New.
16388
0386b123
JG
163892013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16390
16391 * config/aarch64/aarch64-builtins.c
16392 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
16393 iceilf, lround, iroundf.
16394
00fcb892
UB
163952013-04-29 Uros Bizjak <ubizjak@gmail.com>
16396
16397 PR target/54349
16398 * config/i386/i386.h (enum ix86_tune_indices)
16399 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
16400 New, split from X86_TUNE_INTER_UNIT_MOVES.
16401 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
16402 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
16403 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
16404 (TARGET_INTER_UNIT_MOVES): Remove.
16405 * config/i386/i386.c (initial_ix86_tune_features): Update.
16406 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
16407 (ix86_expand_convert_uns_didf_sse): Use
16408 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
16409 (ix86_expand_vector_init_one_nonzero): Ditto.
16410 (ix86_expand_vector_init_interleave): Ditto.
16411 (inline_secondary_memory_needed): Return true for moves from SSE class
16412 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
16413 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
16414 * config/i386/constraints.md (Yi, Ym): Depend on
16415 TARGET_INTER_UNIT_MOVES_TO_VEC.
16416 (Yj, Yn): New constraints.
16417 * config/i386/i386.md (*movdi_internal): Change constraints of
16418 operand 1 from Yi to Yj and from Ym to Yn.
16419 (*movsi_internal): Ditto.
16420 (*movdf_internal): Ditto.
16421 (*movsf_internal): Ditto.
16422 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
16423 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
16424 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
16425 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
16426 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
16427 * config/i386/sse.md (movdi_to_sse): Ditto.
16428 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
16429 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
16430 TARGET_INTER_UNIT_MOVES.
16431 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
16432 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
16433 instead of TARGET_INTER_UNIT_MOVES.
16434 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
16435 operand 1 from Yi to Yj and from Ym to Yn.
16436
4c871069
JG
164372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16438
16439 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
16440 (float_truncate_hi_): Likewise.
16441 (float_extend_lo_): Likewise.
16442 (float_truncate_lo_): Likewise.
16443 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
16444 (aarch64_float_extend_lo_v2df): Likewise.
16445 (vec_unpacks_hi_v4sf): Likewise.
16446 (aarch64_float_truncate_lo_v2sf): Likewise.
16447 (aarch64_float_truncate_hi_v4sf): Likewise.
16448 (vec_pack_trunc_v2df): Likewise.
16449 (vec_pack_trunc_df): Likewise.
16450
1709ff9b
JG
164512013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16452
16453 * config/aarch64/aarch64-builtins.c
16454 (aarch64_fold_builtin): Fold float conversions.
16455 * config/aarch64/aarch64-simd-builtins.def
16456 (floatv2si, floatv4si, floatv2di): New.
16457 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
16458 * config/aarch64/aarch64-simd.md
16459 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
16460 * config/aarch64/iterators.md (FLOATUORS): New.
16461 (optab): Add float, floatuns.
16462 (su_optab): Likewise.
16463
ce966824
JG
164642013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16465
16466 * config/aarch64/aarch64-builtins.c
16467 (aarch64_builtin_vectorized_function): Use new names for
16468 fcvt builtins.
16469 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
16470 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
16471 (fcvtzu): Split as...
16472 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
16473 (fcvtas): Split as...
16474 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
16475 (fcvtau): Split as...
16476 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
16477 (fcvtps): Split as...
16478 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
16479 (fcvtpu): Split as...
16480 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
16481 (fcvtms): Split as...
16482 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
16483 (fcvtmu): Split as...
16484 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
16485 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
16486 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
16487 (lfrintnusf, lfrintnudf): Likewise.
16488 * config/aarch64/aarch64-simd.md
16489 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
16490 define_insn.
16491 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
16492 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
16493 (fcvt_pattern): Likewise.
16494
b9de24fe
JG
164952013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16496
16497 * config/aarch64/aarch64-simd.md
16498 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
16499 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
16500
77a205be
JG
165012013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16502
16503 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
16504 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
16505 (vrnd<a,m,n,p>_f32): Implement using builtins.
16506 (vrnd<i,x><q>_f<32, 64>): New.
16507
0659ce6f
JG
165082013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16509
16510 * config/aarch64/aarch64-builtins.c
16511 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
16512 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
16513 (frintz): Rename to...
16514 (btrunc): ...this.
16515 (frintp): Rename to...
16516 (ceil): ...this.
16517 (frintm): Rename to...
16518 (floor): ...this.
16519 (frinti): Rename to...
16520 (nearbyint): ...this.
16521 (frintx): Rename to...
16522 (rint): ...this.
16523 (frinta): Rename to...
16524 (round): ...this.
16525 * config/aarch64/aarch64-simd.md
16526 (aarch64_frint<frint_suffix><mode>): Delete.
16527 (<frint_pattern><mode>2): Convert to insn.
16528 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
16529 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
16530 (frint_pattern): Likewise.
16531 (frint_suffix): Likewise.
16532
ea78906a
RB
165332013-04-29 Richard Biener <rguenther@suse.de>
16534
16535 PR tree-optimization/57081
16536 * loop-init.c: Include tree-flow.h.
16537 (loop_optimizer_finalize): Free number of iteration estimates.
16538 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
16539
baee1763
JJ
165402013-04-29 Jakub Jelinek <jakub@redhat.com>
16541
94dc5332
JJ
16542 PR tree-optimization/57083
16543 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
16544 non-singleton shift count range, zero extend low_bound for uns case.
16545
baee1763
JJ
16546 * config/i386/predicates.md (general_vector_operand): New predicate.
16547 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
16548 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
16549 if they aren't nonimmediate operands. If their original values
16550 satisfy const_vector_equal_evenodd_p, don't shift them.
16551 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
16552 predicates. For the SSE4.1 case force operands[{1,2}] into registers
16553 if not nonimmediate_operand.
16554 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
16555 instead of register_operand.
16556 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
16557
a9073727 165582013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
16559
16560 * stor-layout.c (finalize_size_functions): Allocate a structure and
16561 reset cfun before dumping the functions.
16562
ba8011e6
JJ
165632013-04-27 Jakub Jelinek <jakub@redhat.com>
16564
d6fde69e
JJ
16565 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
16566
ba8011e6
JJ
16567 PR target/56866
16568 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
16569 use xop_pmacsdqh if uns_p.
16570 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
16571 the immediate rotate count.
16572
2c62cbaa
VM
165732013-04-26 Vladimir Makarov <vmakarov@redhat.com>
16574
16575 * rtl.h (struct rtx_def): Add comment for field jump.
16576 (LRA_SUBREG_P): New macro.
16577 * recog.c (register_operand): Check LRA_SUBREG_P.
16578 * lra.c (lra): Add note at the end of RTL code. Align non-empty
16579 stack frame.
16580 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
16581 (lra_final_code_change): Skip subreg change for operators.
16582 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
16583 if there are no operand changes.
16584 * lra-constraints.c (curr_insn_set): New.
16585 (match_reload): Set LRA_SUBREG_P.
16586 (emit_spill_move): Ditto.
16587 (check_and_process_move): Use curr_insn_set. Process only single
16588 set insns. Don't initialize sec_mem_p and change_p.
16589 (simplify_operand_subreg): Use LRA_SUBREG_P.
16590 (reg_in_class_p): New function.
16591 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
16592 of #ifdef. Add code to remove cycling.
16593 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
16594 non-null disp. Reload inner instead of disp when base and index
16595 are null. Try to put lo_sum into register.
16596 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
16597 (check_and_process_move): Move code for move cost check to
16598 simple_move_p. Remove equiv_substitution.
16599 (simple_move_p): New function.
16600 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
16601 curr_insn_set. Call check_and_process_move only for single set
16602 insns. Use the new function. Move call of check_and_process_move
16603 after operand equiv substitution and address process.
16604
e7d764f3
JJ
166052013-04-26 Jakub Jelinek <jakub@redhat.com>
16606
16607 PR go/57045
16608 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
16609 with nonlocal goto receivers or returns twice calls, ignore
16610 unininitialized values from abnormal edges to nl goto receiver
16611 or returns twice call.
16612
41e10689
JJ
166132013-04-26 Jakub Jelinek <jakub@redhat.com>
16614
16615 PR tree-optimization/57051
16616 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
16617 and VEC_RSHIFT_EXPR if shift count is a multiple of element
16618 bitsize.
16619
d7ed20db
RB
166202013-04-26 Richard Biener <rguenther@suse.de>
16621
16622 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
16623 (expand_omp_taskreg): Likewise. Mark loops for fixup.
16624 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
16625 (fixup_loop_arrays_after_move): New function.
16626 (move_sese_region_to_fn): Properly outline the loop tree parts
16627 of the SESE region.
16628
df93505e
UB
166292013-04-26 Uros Bizjak <ubizjak@gmail.com>
16630
16631 * config/i386/i386.md (type, unit): Fix long lines.
16632
dd366ec3
RB
166332013-04-26 Richard Biener <rguenther@suse.de>
16634
16635 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
16636 (lto-streamer-out.o): Likewise.
16637 * cfgloop.c (init_loops_structure): Export, add struct function
16638 argument and adjust.
16639 (flow_loops_find): Adjust.
16640 * cfgloop.h (enum loop_estimation): Add EST_LAST.
16641 (init_loops_structure): Declare.
16642 * lto-streamer-in.c: Include cfgloop.h.
16643 (input_cfg): Input the loop tree.
16644 * lto-streamer-out.c: Include cfgloop.h.
16645 (output_cfg): Output the loop tree.
16646 (output_struct_function_base): Do not drop PROP_loops.
16647
a9e0d843
RB
166482013-03-26 Richard Biener <rguenther@suse.de>
16649
16650 * tree-cfg.c (execute_build_cfg): Build the loop tree.
16651 (pass_build_cfg): Provide PROP_loops.
16652 (move_sese_region_to_fn): Remove loops that are outlined into fn
16653 for now.
16654 * tree-inline.c: Include cfgloop.h.
16655 (initialize_cfun): Do not drop PROP_loops.
16656 (copy_loops): New function.
16657 (copy_cfg_body): Copy loop structure.
16658 (tree_function_versioning): Initialize destination loop tree.
16659 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
16660 (pass_parallelize_loops): Do IL verification.
16661 * loop-init.c (loop_optimizer_init): Fixup loops if required.
16662 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
16663 the CFG make sure we fixup loops as well.
16664 * tree-ssa-tail-merge.c: Include cfgloop.h.
16665 (replace_block_by): When merging loop latches mark loops for fixup.
16666 * lto-streamer-out.c (output_struct_function_base): Drop
16667 PROP_loops for now.
16668 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
16669 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
16670 * ipa-split.c: Include cfgloop.h.
16671 (split_function): Add the new return block to the loop tree root.
16672 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
16673 whether we have removed the forwarder block.
16674 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
16675 * cfgloop.h (place_new_loop): Declare.
16676 * cfgloopmanip.c (place_new_loop): Export.
16677 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
16678 (tree-switch-conversion.o): Likewise.
16679 (tree-complex.o): Likewise.
16680 (tree-inline.o): Likewise.
16681 (tree-ssa-tailmerge.o): Likewise.
16682 (ipa-split.o): Likewise.
16683 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
16684 (tree-ssa-copy.o): Likewise.
16685 * tree-switch-conversion.c: Include cfgloop.h
16686 (process_switch): If we emit a bit-test cascade, schedule loops
16687 for fixup.
16688 * tree-complex.c: Include cfgloop.h.
16689 (expand_complex_div_wide): Properly add new basic-blocks to loops.
16690 * asan.c: Include cfgloop.h.
16691 (create_cond_insert_point): Properly add new basic-blocks to
16692 loops, schedule loop fixup.
16693 * cfgloop.c (verify_loop_structure): Check that looks are not
16694 marked for fixup.
16695 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
16696 to loops.
16697 (expand_omp_for_generic): Likewise.
16698 (expand_omp_sections): Likewise.
16699 (expand_omp_atomic_pipeline): Schedule loops for fixup.
16700 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
16701 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
16702 is initialized, not when loops are present.
16703 * tree-parloops.c (parallelize_loops): Remove checking here.
16704 * passes.c (init_optimization_passes): Schedule a copy-propagation
16705 pass before complete unrolling of inner loops.
16706
e78e8a0b
JJ
167072013-04-26 Jakub Jelinek <jakub@redhat.com>
16708
a2e836b2
JJ
16709 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
16710 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
16711 (colorize_init): Add argument to _WIN32 version.
16712 * toplev.c: Include diagnostic-color.h.
16713 (process_options): Default to -fdiagnostics-color=auto if
16714 GCC_COLORS env var is in the environment.
16715 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
16716 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
16717 env var is in the environment, the default is auto rather than never.
a2e836b2 16718
e78e8a0b
JJ
16719 * diagnostic.h (file_name_as_prefix): Add context argument.
16720 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
16721 the string as locus.
16722 * langhooks.c (lhd_print_error_function): Adjust caller.
16723
013e5ef9
LC
167242013-04-25 Lawrence Crowl <crowl@google.com>
16725
16726 * var-tracking.c (shared_hash_def::htab):
16727 Change type to hash_table. Update dependent calls and types.
16728
4a8fb1a1
LC
167292013-04-25 Lawrence Crowl <crowl@google.com>
16730
16731 * Makefile.in: Update as needed below.
16732
16733 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
16734 Move declaration to after the type's method definitons.
16735
16736 * attribs.c (htab_t scoped_attributes::attribute_hash):
16737 Change type to hash_table. Update dependent calls and types.
16738
16739 * bitmap.c (htab_t bitmap_desc_hash):
16740 Change type to hash_table. Update dependent calls and types.
16741
16742 * cselib.c (htab_t cselib_hash_table):
16743 Change type to hash_table. Update dependent calls and types.
16744
16745 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
16746 (hash_string_slot_node): Move implementation into lto-streamer.h
16747 struct string_slot_hasher.
16748 (eq_string_slot_node): Likewise.
16749
16750 * data-streamer-out.c: Update output_block::string_hash_table
16751 dependent calls and types.
16752
16753 * dwarf2cfi.c (htab_t trace_index):
16754 Change type to hash_table. Update dependent calls and types.
16755
16756 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
16757 Change type to hash_table. Update dependent calls and types.
16758 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
16759 (htab_t optimize_external_refs::map): Likewise.
16760 (htab_t output_comp_unit::extern_map): Likewise.
16761 (htab_t output_comdat_type_unit::extern_map): Likewise.
16762 (htab_t output_macinfo::macinfo_htab): Likewise.
16763 (htab_t optimize_location_lists::htab): Likewise.
16764 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
16765
16766 * except.c (htab_t ehspec_hash_type):
16767 Change type to hash_table. Update dependent calls and types.
16768 (assign_filter_values::ttypes): Likewise.
16769 (assign_filter_values::ehspec): Likewise.
16770 (sjlj_assign_call_site_values::ar_hash): Likewise.
16771 (convert_to_eh_region_ranges::ar_hash): Likewise.
16772
16773 * gcse.c (htab_t pre_ldst_table):
16774 Change type to hash_table. Update dependent calls and types.
16775
16776 * ggc-common.c (htab_t saving_htab):
16777 Change type to hash_table. Update dependent calls and types.
16778 (htab_t loc_hash): Likewise.
16779 (htab_t ptr_hash): Likewise.
16780 (call_count): Rename ggc_call_count.
16781 (call_alloc): Rename ggc_call_alloc.
16782 (loc_descriptor): Rename make_loc_descriptor.
16783 (add_statistics): Rename ggc_add_statistics.
16784
16785 * ggc-common.c (saving_htab):
16786 Change type to hash_table. Update dependent calls and types.
16787
16788 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
16789 (push_gimplify_context): Likewise.
16790 (pop_gimplify_context): Likewise.
16791 (struct gimple_temp_hash_elt): Added.
16792 (struct gimplify_hasher): Likewise.
16793 (struct gimplify_ctx.temp_htab):
16794 Change type to hash_table. Update dependent calls and types.
16795
16796 * gimple-fold.c: Include gimplify-ctx.h.
16797
16798 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
16799 Change type to hash_table. Update dependent calls and types.
16800 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
16801 avoid potential global name collision.
16802
16803 * gimplify.c: Include gimplify-ctx.h.
16804 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
16805 (htab_t gimplify_ctx::temp_htab):
16806 Update dependent calls and types for new type hash_table.
16807 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
16808 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
16809
16810 * gimplify-ctx.h: New.
16811 (struct gimple_temp_hash_elt): Move from gimplify.c.
16812 (class gimplify_hasher): New.
16813 (struct gimplify_ctx): Move from gimple.h.
16814 (htab_t gimplify_ctx::temp_htab):
16815 Change type to hash_table. Update dependent calls and types.
16816
16817 * graphite-clast-to-gimple.c: Include graphite-htab.h.
16818 (htab_t ivs_params::newivs_index):
16819 Change type to hash_table. Update dependent calls and types.
16820 (htab_t ivs_params::params_index): Likewise.
16821 (htab_t print_generated_program::params_index): Likewise.
16822 (htab_t gloog::newivs_index): Likewise.
16823 (htab_t gloog::params_index): Likewise.
16824
16825 * graphite.c: Include graphite-htab.h.
16826 4htab_t graphite_transform_loops::bb_pbb_mapping):
16827 Change type to hash_table. Update dependent calls and types.
16828
16829 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
16830 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
16831 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
16832
16833 * graphite-dependences.c: Include graphite-htab.h.
16834 (loop_is_parallel_p): Change hash table type of parameter.
16835
16836 * graphite-htab.h: New.
16837 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
16838 (extern find_pbb_via_hash): Move from graphite-poly.h.
16839 (extern loop_is_parallel_p): Move from graphite-poly.h.
16840 (extern get_loop_body_pbbs): Move from graphite-poly.h.
16841
16842 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
16843 (extern loop_is_parallel_p): Move to graphite-htab.h.
16844 (extern get_loop_body_pbbs): Move to graphite-htab.h.
16845
16846 * haifa-sched.c (htab_t delay_htab):
16847 Change type to hash_table. Update dependent calls and types.
16848 (htab_t delay_htab_i2): Likewise.
16849
16850 * ira-color.c (htab_t allocno_hard_regs_htab):
16851 Change type to hash_table. Update dependent calls and types.
16852
16853 * ira-costs.c (htab_t cost_classes_htab):
16854 Change type to hash_table. Update dependent calls and types.
16855
16856 * loop-invariant.c (htab_t merge_identical_invariants::eq):
16857 Change type to hash_table. Update dependent calls and types.
16858
16859 * loop-iv.c (htab_t bivs):
16860 Change type to hash_table. Update dependent calls and types.
16861
16862 * loop-unroll.c (htab_t opt_info::insns_to_split):
16863 Change type to hash_table. Update dependent calls and types.
16864 (htab_t opt_info::insns_with_var_to_expand): Likewise.
16865
16866 * lto-streamer.h (struct string_slot): Move from data-streamer.h
16867 (struct string_slot_hasher): New.
16868 (htab_t output_block::string_hash_table):
16869 Change type to hash_table. Update dependent calls and types.
16870
16871 * lto-streamer-in.c (freeing_string_slot_hasher): New.
16872 (htab_t file_name_hash_table):
16873 Change type to hash_table. Update dependent calls and types.
16874
16875 * lto-streamer-out.c: Update output_block::string_hash_table dependent
16876 calls and types.
16877
16878 * lto-streamer.c (htab_t tree_htab):
16879 Change type to hash_table. Update dependent calls and types.
16880
16881 * omp-low.c: Include gimplify-ctx.h.
16882
16883 * passes.c (htab_t name_to_pass_map):
16884 Change type to hash_table. Update dependent calls and types.
16885 (pass_traverse): Rename to passes_pass_traverse.
16886
16887 * plugin.c (htab_t event_tab):
16888 Change type to hash_table. Update dependent calls and types.
16889
16890 * postreload-gcse.c (htab_t expr_table):
16891 Change type to hash_table. Update dependent calls and types.
16892 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
16893
16894 * sese.c (debug_rename_map_1): Make extern.
16895 (htab_t copy_bb_and_scalar_dependences::rename_map):
16896 Change type to hash_table. Update dependent calls and types.
16897
16898 * sese.h (extern debug_rename_map): Move to .c file.
16899
16900 * store-motion.c (htab_t store_motion_mems_table):
16901 Change type to hash_table. Update dependent calls and types.
16902
16903 * trans-mem.c (htab_t tm_new_mem_hash):
16904 Change type to hash_table. Update dependent calls and types.
16905
16906 * tree-browser.c (htab_t TB_up_ht):
16907 Change type to hash_table. Update dependent calls and types.
16908
16909 * tree-cfg.c (htab_t discriminator_per_locus):
16910 Change type to hash_table. Update dependent calls and types.
16911
16912 * tree-complex.c: Include tree-hasher.h
16913 (htab_t complex_variable_components):
16914 Change type to hash_table. Update dependent calls and types.
16915
16916 * tree-eh.c (htab_t finally_tree):
16917 Change type to hash_table. Update dependent calls and types.
16918
16919 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
16920 struct int_tree_hasher.
16921 (extern int_tree_map_eq): Likewise.
16922 (uid_decl_map_hash): Removed.
16923 (extern decl_tree_map_eq): Likewise.
16924
16925 * tree-hasher.h: New.
16926 (struct int_tree_hasher): New.
16927 (typedef int_tree_htab_type): New.
16928
16929 * tree-inline.c: Include gimplify-ctx.h.
16930
16931 * tree-mudflap.c: Include gimplify-ctx.h.
16932
16933 * tree-parloops.c: Include tree-hasher.h.
16934 (htab_t eliminate_local_variables_stmt::decl_address):
16935 Change type to hash_table. Update dependent calls and types.
16936 (htab_t separate_decls_in_region::decl_copies): Likewise.
16937
16938 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
16939 Change type to hash_table. Update dependent calls and types.
16940
16941 * tree-sra.c (candidates):
16942 Change type to hash_table. Update dependent calls and types.
16943
16944 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
16945 in tree-flow.h.
16946 (int_tree_map_hash): Likewise.
16947
16948 * tree-ssa-dom.c (htab_t avail_exprs):
16949 Change type to hash_table. Update dependent calls and types.
16950
16951 * tree-ssa-live.c (var_map_base_init::tree_to_index):
16952 Change type to hash_table. Update dependent calls and types.
16953
16954 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
16955 Change type to hash_table. Update dependent calls and types.
16956
16957 * tree-ssa-phiopt.c (seen_ssa_names):
16958 Change type to hash_table. Update dependent calls and types.
16959
16960 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
16961 Change type to hash_table. Update dependent calls and types.
16962
16963 * tree-ssa-uncprop.c (equiv):
16964 Change type to hash_table. Update dependent calls and types.
16965
c5a44004
JJ
169662013-04-25 Jakub Jelinek <jakub@redhat.com>
16967
16968 PR rtl-optimization/57003
16969 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
16970 call note_stores with kill_clobbered_value callback again after
16971 killing regs_invalidated_by_call.
16972
09962a4a
JG
169732013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16974
16975 * config/aarch64/aarch64-simd.md
16976 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
16977 (aarch64_simd_bsl<mode>): Likewise.
16978 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
16979
ea28bb0b
MP
169802013-04-25 Marek Polacek <polacek@redhat.com>
16981
16982 PR tree-optimization/57066
3c21604f 16983 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 16984
96659611
JG
169852013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
16986
16987 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
16988
9697e620
JG
169892013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16990
16991 * config/aarch64/aarch64-builtins.c
16992 (aarch64_fold_builtin): New.
16993 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
16994 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
16995 * config/aarch64/aarch64-simd-builtins.def (abs): New.
16996 * config/aarch64/arm_neon.h
16997 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
16998
0ac198d3
JG
169992013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17000 Tejas Belagod <tejas.belagod@arm.com>
17001
17002 * config/aarch64/aarch64-builtins.c
17003 (aarch64_gimple_fold_builtin): New.
17004 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
17005 * config/aarch64/aarch64-simd-builtins.def (addv): New.
17006 * config/aarch64/aarch64-simd.md (addpv4sf): New.
17007 (addvv4sf): Update.
17008 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
17009
58cff58c
N
170102013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17011
df93505e 17012 * config/aarch64/aarch64.md
58cff58c
N
17013 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
17014
7e0228bf
N
170152013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17016
17017 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
17018 (*ngcsi_uxtw): New pattern.
17019
5819f96f 170202013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 17021 Julian Brown <julian@codesourcery.com>
5819f96f
KT
17022
17023 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
17024 (TB_DREG): Add T_V4HF.
17025 (v4hf_UP): New macro.
17026 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 17027 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17028 Handle initialisation of V4HF. Adjust initialisation of reinterpret
17029 built-ins.
df93505e 17030 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17031 (arm_vector_mode_supported_p): Handle V4HF.
17032 (arm_mangle_map): Handle V4HFmode.
17033 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
17034 * config/arm/arm_neon_builtins.def: Add entries for
17035 vcvtv4hfv4sf, vcvtv4sfv4hf.
17036 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
17037 (neon_vcvtv4hfv4sf): Likewise.
17038 * config/arm/neon-gen.ml: Handle half-precision floating point
17039 features.
17040 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
17041 * config/arm/arm_neon.h: Regenerate.
17042 * config/arm/neon.ml (type elts): Add F16.
17043 (type vectype): Add T_float16x4, T_floatHF.
17044 (type vecmode): Add V4HF.
17045 (type features): Add Requires_FP_bit feature.
17046 (elt_width): Handle F16.
17047 (elt_class): Likewise.
17048 (elt_of_class_width): Likewise.
17049 (mode_of_elt): Refactor.
17050 (type_for_elt): Handle F16, fix error messages.
17051 (vectype_size): Handle T_float16x4.
17052 (vcvt_sh): New function.
17053 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
17054 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
17055 (string_of_mode): Handle V4HF.
17056 * doc/arm-neon-intrinsics.texi: Regenerate.
17057
1ef395e4
JG
170582013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17059
17060 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
17061 format specifier in 'X' case.
17062
41c34e94
AM
170632013-04-25 Alan Modra <amodra@gmail.com>
17064
17065 PR target/57052
17066 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
17067 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
17068 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
17069 Repeat for many other rotate/shift and mask patterns using subregs.
17070 Name lshiftrt insns.
17071 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
17072 on WORDS_BIG_ENDIAN.
17073
b9a7eb5d
AM
170742013-04-25 Alan Modra <amodra@gmail.com>
17075
17076 * config.gcc: Support little-endian powerpc-linux targets.
17077 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
17078 (LINK_OS_LINUX_SPEC): Define.
17079 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
17080 Preserve MASK_LITTLE_ENDIAN.
17081 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
17082 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
17083 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
17084 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
17085 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
17086 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
17087 Correct fp word order for little-endian. Don't shift toc entries
17088 smaller than a word for little-endian.
17089 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
17090 (bswapdi2 splits): Correct low-part subreg for little-endian.
17091 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
17092 low/high where such is correct only for be.
17093 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
17094 little-endian for -mcall-aixdesc.
17095
87f73374
AM
170962013-04-25 Alan Modra <amodra@gmail.com>
17097
17098 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
17099 replace_equiv_address_nv.
17100
cabf91cd
AM
171012013-04-25 Alan Modra <amodra@gmail.com>
17102
17103 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
17104
0ae24cc8
VM
171052013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17106
17107 Revert:
17108 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17109 * rtl.h (struct rtx_def): ...
cabf91cd 17110
77bce07c
VM
171112013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17112
17113 PR rtl-optimizations/57046
17114 * lra-constraints (split_reg): Set up lra_risky_transformations_p
17115 for multi-reg splits.
17116
0db63e7f
L
171172013-04-24 H.J. Lu <hongjiu.lu@intel.com>
17118
17119 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
17120
3362b6b6
SA
171212013-04-24 Sterling Augustine <saugustine@google.com>
17122
17123 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
17124 (comp_dir_string, debug_str_dwo_section): New.
17125 (DEBUG_STR_DWO_SECTION): Rename to ...
17126 (DEBUG_DWO_STR_SECTION): ... this.
17127 (DEBUG_NORM_STR_SECTION): Delete.
17128 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
17129 (DEBUG_STR_DWO_SECTION_FLAGS): New.
17130 (find_AT_string): Move most logic to ...
17131 (find_AT_string_in_table): ... here. New.
17132 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
17133 add_skeleton_AT_string. Delete logic.
17134 (output_skeleton_debug_sections): Remove call to
17135 add_top_level_skeleton_die_attrs.
17136 (add_comp_dir_attribute): Move logic to comp_dir_string.
17137 (dwarf2out_init): Initialize debug_str_dwo_section.
17138 (output_indirect_string): Call find_string_form.
17139 (output_indirect_strings): Rewrite.
17140 (prune_unused_types): Empty skeleton_debug_str_hash.
17141 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
17142 (dwarf2out_finish): Call output_indirect_strings.
17143
e93e18e9
PC
171442013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
17145
17146 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
17147
f6ce35ac
VM
171482013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17149
cabf91cd 17150 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
17151 (LRA_SUBREG_P): New macro.
17152 * recog.c (register_operand): Check LRA_SUBREG_P.
17153 * lra.c (lra): Add note at the end of RTL code. Align non-empty
17154 stack frame.
17155 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
17156 (lra_final_code_change): Skip subreg change for operators.
17157 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
17158 if there are no operand changes.
17159 * lra-constraints.c (curr_insn_set): New.
17160 (match_reload): Set LRA_SUBREG_P.
17161 (emit_spill_move): Ditto.
17162 (check_and_process_move): Use curr_insn_set. Process only single
17163 set insns. Don't initialize sec_mem_p and change_p.
17164 (simplify_operand_subreg): Use LRA_SUBREG_P.
17165 (reg_in_class_p): New function.
17166 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
17167 of #ifdef. Add code to remove cycling.
17168 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
17169 non-null disp. Reload inner instead of disp when base and index
17170 are null. Try to put lo_sum into register.
17171 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 17172 (check_and_process_move): Move code for move cost check to
f6ce35ac 17173 simple_move_p. Remove equiv_substitution.
cabf91cd 17174 (simple_move_p): New function.
f6ce35ac
VM
17175 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
17176 curr_insn_set. Call check_and_process_move only for single set
17177 insns. Use the new function. Move call of check_and_process_move
17178 after operand equiv substitution and address process.
17179
38047d90
JG
171802013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
17181
17182 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
17183 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
17184 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
17185
13f39b2e
PC
171862013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
17187
17188 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
17189
97c116dc
MP
171902013-04-24 Marek Polacek <polacek@redhat.com>
17191
17192 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
17193 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
17194 (select_loops_exit_conditions): Likewise.
17195 (number_of_iterations_for_all_loops): Likewise.
17196 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
17197 (scev_analysis): Likewise.
17198
83082391 171992013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 17200 Chao-ying Fu <fu@mips.com>
83082391 17201
cabf91cd
AM
17202 * config/mips/micromips.md (jraddiusp): New pattern.
17203 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
17204 instruction if possible.
83082391 17205
19e34aa2
AM
172062013-04-24 Alan Modra <amodra@gmail.com>
17207
17208 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
17209
fdb6603c
JB
172102013-04-24 Julian Brown <julian@codesourcery.com>
17211 Chung-Lin Tang <cltang@codesourcery.com>
17212
17213 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
17214 dependency behavior in enumeration type DIE generation. Add TODO note
17215 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 17216
bf190e8d
LC
172172013-04-23 Lawrence Crowl <crowl@google.com>
17218
17219 * Makefile.in: Update as needed below.
17220
17221 * hash-table.h (class hash_table):
17222 Correct many methods with parameter types compare_type to the correct
17223 value_type. (Correct code was unlikely to notice the change.)
17224 (hash_table::elements_with_deleted) New.
17225 (class hashtable::iterator): New.
17226 (hashtable::begin()): New.
17227 (hashtable::end()): New.
17228 (FOR_EACH_HASH_TABLE_ELEMENT): New.
17229
17230 * statistics.c (statistics_hashes):
17231 Change type to hash_table. Update dependent calls and types.
17232
17233 * tree-into-ssa.c (var_infos):
17234 Change type to hash_table. Update dependent calls and types.
17235
17236 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
17237 Change type to hash_table. Update dependent calls and types.
17238
17239 * tree-ssa-loop-im.c (struct mem_ref.refs):
17240 Change type to hash_table. Update dependent calls and types.
17241
17242 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
17243 Change type to hash_table. Update dependent calls and types.
17244
17245 * tree-ssa-sccvn.c (vn_tables_s::nary):
17246 Change type to hash_table. Update dependent calls and types.
17247 (vn_tables_s::phis): Likewise.
17248 (vn_tables_s::references): Likewise.
17249
17250 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
17251 (vn_reference_eq): Update parameter and return types.
17252
17253 * tree-ssa-structalias.c (pointer_equiv_class_table):
17254 Change type to hash_table. Update dependent calls and types.
17255 (location_equiv_class_table): Likewise.
17256
17257 * tree-vect-data-refs.c: Consequential changes for making
17258 peeling a hash_table.
17259
17260 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
17261 (destroy_loop_vec_info): Dependent hash_table update.
17262
17263 * tree-vectorizer.h (peeling_htab):
17264 Change type to hash_table. Update dependent calls and types.
17265
d70a81dd
SC
172662013-04-23 Shiva Chen <shiva0217@gmail.com>
17267
cabf91cd
AM
17268 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
17269 to check the register content is equal or not.
17270 * lra-constraints.c (match_reload): Use lra_assign_reg_val
17271 to assign register content record.
17272 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 17273 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
17274 * lra-int.h (struct lra_reg): Add offset member.
17275 (lra_reg_val_equal_p): New static inline function.
17276 (lra_update_reg_val_offset): New static inline function.
17277 (lra_assign_reg_val): New static inline function.
17278 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
17279 to assign register content record.
17280 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 17281
b894a1f3
CM
172822013-04-23 Catherine Moore <clm@codesourcery.com>
17283
17284 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
17285 operands. Record compression.
17286
ecd14de9
XDL
172872013-04-23 Xinliang David Li <davidxl@google.com>
17288
17289 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
17290
92e776e9
RB
172912013-04-23 Richard Biener <rguenther@suse.de>
17292
17293 PR middle-end/57036
17294 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
17295 parameter, only add abnormal goto edges from the copied body
17296 if the call could perform abnormal gotos.
17297 (copy_cfg_body): Adjust.
17298
a15ee567
SN
172992013-04-23 Sofiane Naci <sofiane.naci@arm.com>
17300
17301 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
17302
08c52234
AS
173032013-04-23 Andreas Schwab <schwab@linux-m68k.org>
17304
17305 * coretypes.h (gimple_stmt_iterator): Add struct to make
17306 compatible with C.
17307
999c1171
RB
173082013-04-23 Richard Biener <rguenther@suse.de>
17309
17310 PR tree-optimization/57026
17311 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
17312 from SSA names occuring in abnormal PHI nodes.
17313
53669259
AK
173142013-04-22 Andi Kleen <ak@linux.intel.com>
17315
17316 * lto/lto.c (print_lto_report_1): Fix LTO report names.
17317
1a0ad150
AK
173182013-04-22 Andi Kleen <ak@linux.intel.com>
17319
17320 * lto/lto.c (print_lto_report_1): Declare early.
17321 (read_cgraph_and_symbols): Call print_lto_report_1 early.
17322
057f8f20
AK
173232013-04-22 Andi Kleen <ak@linux.intel.com>
17324
17325 * common.opt (-flto-report-wpa): Add.
17326 * doc/invoke.texi (-flto-report-wpa): Add.
17327 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
17328 (lto_main): dito.
17329
473b1e05
XDL
173302013-04-22 Xinliang David Li <davidxl@google.com>
17331
17332 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
17333 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
17334 * Makefile.in: New dependency
17335
cabf91cd 17336 David Daney <ddaney.cavm@gmail.com>
b1485a33 17337
cabf91cd
AM
17338 * configure.ac (gcc_cv_as_micromips_support): Use the
17339 --fatal-warnings option.
17340 * configure: Regenerate.
b1485a33 17341
829d0168
MP
173422013-04-22 Marek Polacek <polacek@redhat.com>
17343
17344 PR sanitizer/56990
17345 * tsan.c (instrument_expr): Don't instrument expression
17346 in case its size is zero.
17347
6d9b7208
UB
173482013-04-22 Uros Bizjak <ubizjak@gmail.com>
17349
17350 PR target/57032
17351 Revert:
17352 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
17353
17354 * config/alpha/alpha.c (TARGET_LRA_P): New define.
17355
ea679d55
JG
173562013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
17357
17358 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
17359 (gimple_stmt_iterator): New typedef.
17360 * gimple.h (gimple_stmt_iterator): Rename to...
17361 (gimple_stmt_iterator_d): ... This.
17362 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
17363 trees be valid for GIMPLE and GENERIC.
17364 (TARGET_GIMPLE_FOLD_BUILTIN): New.
17365 * gimple-fold.c (gimple_fold_call): Call target hook
17366 gimple_fold_builtin.
17367 * hooks.c (hook_bool_gsiptr_false): New.
17368 * hooks.h (hook_bool_gsiptr_false): New.
17369 * target.def (fold_stmt): New.
17370 * doc/tm.texi: Regenerate.
17371
88a581da
VM
173722013-04-22 Vladimir Makarov <vmakarov@redhat.com>
17373
17374 PR target/57018
17375 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
17376 a set sp if no stack realignment.
17377
92be22dc
NC
173782013-04-22 Nick Clifton <nickc@redhat.com>
17379
17380 * config.gcc (tilegx-linux): Extend extra_objs rather than
17381 overwriting it.
17382 (tilepro-linux): Likewise.
17383
0ddec79f
JG
173842013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
17385
17386 * config/aarch64/aarch64-builtins.c
17387 (CF): Remove.
17388 (CF0, CF1, CF2, CF3, CF4, CF10): New.
17389 (VAR<1-12>): Add MAP parameter.
17390 (BUILTIN_*): Likewise.
17391 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
17392 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
17393 (aarch64_ushl_n<mode>): Likewise.
17394 (aarch64_sshr_n<mode>): Likewise.
17395 (aarch64_ushr_n<mode>): Likewise.
17396 (aarch64_<maxmin><mode>): Likewise.
17397 (aarch64_sqrt<mode>): Likewise.
17398 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
17399 (vshr<q>_n_*): Likewise.
17400
0050faf8
JG
174012013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
17402
17403 * config/aarch64/aarch64-builtins.c
17404 (aarch64_simd_builtin_type_mode): Handle SF types.
17405 (sf_UP): Define.
17406 (BUILTIN_GPF): Define.
17407 (aarch64_init_simd_builtins): Handle SF types.
17408 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
17409 (frecps): Likewise.
17410 (frecpx): Likewise.
17411 * config/aarch64/aarch64-simd.md
17412 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
17413 (aarch64_frecpe<mode>): New.
17414 (aarch64_frecps<mode>): Likewise.
17415 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
17416 (v8type): Add frecp<esx>.
17417 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
17418 (aarch64_frecps<mode>): Likewise.
17419 * config/aarch64/iterators.md (FRECP): New.
17420 (frecp_suffix): Likewise.
17421 * config/aarch64/arm_neon.h
17422 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
17423
0fad3dbc 174242013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
17425
17426 PR target/56995
17427 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
17428 (REG_CLASS_NAMES): Idem.
17429 (REG_CLASS_CONTENTS): Idem.
17430 (REGCLASS_HAS_FP_REG): Idem.
17431 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
17432 (sh_conditional_register_usage): Idem.
17433
3e8a33f9
JL
174342013-04-21 Jeff Law <law@redhat.com>
17435
17436 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
17437 (ssa_forward_propagate_and_combine): Use it.
17438
f38e1b0a
VM
174392013-04-19 Vladimir Makarov <vmakarov@redhat.com>
17440
17441 * lra.c: Update the flow chart diagram.
17442
682303da
VM
174432013-04-19 Vladimir Makarov <vmakarov@redhat.com>
17444
17445 PR rtl-optimization/56847
17446 * lra-constraints.c (process_alt_operands): Discourage alternative
17447 with non-matche doffsettable memory constraint fro memory with
17448 known offset.
17449
f6b64c35
RB
174502013-04-19 Richard Biener <rguenther@suse.de>
17451
17452 PR tree-optimization/56982
17453 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
17454 function.
17455 * gimplify.c (gimplify_call_expr): Notice special calls.
17456 (gimplify_modify_expr): Likewise.
17457 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
17458 abnormal control flow receivers.
17459 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
17460 in the same way as cfun->has_nonlocal_labels.
17461 (gimple_purge_dead_abnormal_call_edges): Likewise.
17462 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
17463 receivers start a basic-block.
17464
01d8bf07
RB
174652013-04-19 Richard Biener <rguenther@suse.de>
17466
17467 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
17468 member ...
17469 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
17470 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
17471 (SLP_TREE_LOAD_PERMUTATION): Add.
17472 (vect_transform_slp_perm_load): Adjust prototype.
17473 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
17474 (vect_free_slp_instance): Likewise.
17475 (vect_create_new_slp_node): Likewise.
17476 (vect_supported_slp_permutation_p): Remove.
17477 (vect_slp_rearrange_stmts): Adjust.
17478 (vect_supported_load_permutation_p): Likewise. Inline
17479 vect_supported_slp_permutation_p here.
17480 (vect_analyze_slp_instance): Compute load permutations per
17481 slp node instead of per instance.
17482 (vect_get_slp_defs): Adjust.
17483 (vect_transform_slp_perm_load): Likewise.
17484 (vect_schedule_slp_instance): Remove redundant code.
17485 (vect_schedule_slp): Remove hack for PR56270, add it ...
17486 * tree-vect-stmts.c (vectorizable_load): ... here, do not
17487 CSE loads for SLP. Adjust.
17488
ede22fc3
GY
174892013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
17490
17491 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
17492 spelling in two comments.
17493
67bc84fb
GY
174942013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
17495
17496 PR target/56797
17497 * config/arm/arm.c (load_multiple_sequence): Require SP
17498 as base register for loads if SP is in the register list.
17499
e248d83f
MJ
175002013-04-19 Martin Jambor <mjambor@suse.cz>
17501
17502 PR tree-optimization/56718
17503 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
17504 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
17505 and made public. Adjusted all callers.
17506 (ipa_intraprocedural_devirtualization): New function.
17507 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
17508 (ipa_intraprocedural_devirtualization): Likewise.
17509 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
17510
4891e8f8
RB
175112013-04-19 Richard Biener <rguenther@suse.de>
17512
17513 PR tree-optimization/57000
17514 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
17515
dad89f7c
TG
175162013-04-19 Terry Guo <terry.guo@arm.com>
17517
17518 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
17519 Replace with ...
17520 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
17521 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
17522 (cortex_m4_fmacs): Use new reservations.
17523 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
17524
72ea0d47
VM
175252013-04-18 Vladimir Makarov <vmakarov@redhat.com>
17526
f1e6512c 17527 PR rtl-optimization/56999
72ea0d47
VM
17528 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
17529 related code.
17530 (lra_coalesce): Remove split_origin_bitmap and related code.
17531 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
17532 ranges if necessary.
17533
780a5b71
UB
175342013-04-18 Uros Bizjak <ubizjak@gmail.com>
17535
17536 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
17537 New array.
17538 (ix86_expand_call): Remove clobbered_registers array and use
17539 x86_64_ms_sysv_extra_clobbered_registers instead.
17540 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
17541 Declare here.
17542 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
17543 predicate.
17544 * config/i386/i386.md (*call_rex64_ms_sysv): Use
17545 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
17546 (*call_value_rex64_ms_sysv): Ditto.
17547
6f5a366a
CC
175482013-04-18 Cary Coutant <ccoutant@google.com>
17549
17550 * dwarf2out.c (output_pubnames): Check die_perennial_p of
17551 parent instead of die_mark.
17552
475b8f37
DN
175532013-04-18 Diego Novillo <dnovillo@google.com>
17554
17555 * gimple.c (create_gimple_tmp): New.
17556 (get_expr_type): New.
17557 (build_assign): New.
17558 (build_type_cast): New.
17559 * gimple.h (enum ssa_mode): Define.
17560 (gimple_seq_set_location): New.
17561 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 17562 to use build_assign and build_type_cast.
475b8f37 17563
08940f33
RB
175642013-04-18 Richard Biener <rguenther@suse.de>
17565
17566 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
17567 handle negative step. Remove redundant checks.
17568 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
17569 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
17570 for negative step and grouped loads fail to vectorize.
17571
0e0f87d4
SB
175722013-04-18 Steven Bosscher <steven@gcc.gnu.org>
17573
17574 * emit-rtl.c (reset_insn_used_flags): New function.
17575 (reset_all_used_flags): Use it.
17576 (verify_insn_sharing): New function.
17577 (verify_rtl_sharing): Fix verification for SEQUENCEs.
17578
4c445590
JJ
175792013-04-18 Jakub Jelinek <jakub@redhat.com>
17580
17581 PR tree-optimization/56984
17582 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
17583 and (x >> M) >= N don't register any assertion if N << M is the
17584 minimum value.
17585
6873ecab
SB
175862013-04-18 Steven Bosscher <steven@gcc.gnu.org>
17587
17588 * lower-subreg.c (resolve_simple_move): If called self-recursive,
17589 do not delete_insn insns that have not yet been emitted, only
17590 unlink them with remove_insn.
17591 * df-scan.c (df_insn_delete): Revert r197492.
17592
3ccb989e
SB
175932013-04-17 Steven Bosscher <steven@gcc.gnu.org>
17594
17595 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
17596 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
17597
175982013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
17599
17600 * config/arm/arm.md (movsicc_insn): Convert define_insn into
17601 define_insn_and_split.
17602 (and_scc,ior_scc,negscc): Likewise.
17603 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
17604
3ccb989e 176052013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
17606
17607 * config/arm/arm.c (use_return_insn): Return 0 for targets that
17608 can benefit from using a sequence of LDRD instructions in epilogue
17609 instead of a single LDM instruction.
17610
6d10a203
MLI
176112013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
17612
17613 PR 45688
17614 * doc/extend.texi: Fix typo.
17615
6983e6b5
RB
176162013-04-17 Richard Biener <rguenther@suse.de>
17617
17618 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
17619 (vect_build_slp_tree): ... here.
17620 (vect_build_slp_tree_1): Compute which stmts of the SLP group
17621 match. Remove special-casing of mismatched complex loads.
17622 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
17623 re-try the match with swapped commutative operands.
17624 (vect_supported_load_permutation_p): Remove special-casing of
17625 mismatched complex loads.
17626 (vect_analyze_slp_instance): Adjust.
17627
ef23e6a2
RB
176282013-04-17 Richard Biener <rguenther@suse.de>
17629
17630 PR rtl-optimization/56921
17631 * cfgloop.h (struct loop): Add simple_loop_desc member.
17632 (struct niter_desc): Mark with GTY(()).
17633 (simple_loop_desc): Do not use aux field but simple_loop_desc.
17634 * loop-iv.c (get_simple_loop_desc): Likewise.
17635 (free_simple_loop_desc): Likewise.
17636
17637 Revert
17638 2013-04-16 Richard Biener <rguenther@suse.de>
17639
17640 PR rtl-optimization/56921
17641 * loop-init.c (pass_rtl_move_loop_invariants): Add
17642 TODO_do_not_ggc_collect to todo_flags_finish.
17643 (pass_rtl_unswitch): Same.
17644 (pass_rtl_unroll_and_peel_loops): Same.
17645 (pass_rtl_doloop): Same.
17646
fc6f94f5
EB
176472013-04-17 Eric Botcazou <ebotcazou@adacore.com>
17648
17649 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
17650 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
17651 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
17652 references.
17653 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
17654 * tree-streamer.c (record_common_node): Adjust reference in comment.
17655
10a88311
TG
176562013-04-17 Terry Guo <terry.guo@arm.com>
17657
17658 * config/arm/cortex-m4.md: Add a new bypass.
17659
6d9b7208 176602013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
17661
17662 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
17663 New pattern.
17664 (*subs_<optab><mode>_multp2): New pattern.
17665 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
17666 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
17667
6d9b7208 176682013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
17669
17670 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
17671 (*subs_mul_imm_<mode>): New pattern.
17672
18a6701e
DE
176732013-04-16 David Edelsohn <dje.gcc@gmail.com>
17674
17675 PR target/56948
17676 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
17677 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
17678 (vsx_movti_32bit): Change j->wa to O->wa.
17679
07c37b2f
RB
176802013-04-16 Richard Biener <rguenther@suse.de>
17681
17682 PR rtl-optimization/56921
17683 * loop-init.c (pass_rtl_move_loop_invariants): Add
17684 TODO_do_not_ggc_collect to todo_flags_finish.
17685 (pass_rtl_unswitch): Same.
17686 (pass_rtl_unroll_and_peel_loops): Same.
17687 (pass_rtl_doloop): Same.
17688
0e0f87d4 176892013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
17690
17691 * config/arm/arm.c (emit_multi_reg_push): New declaration
17692 for an existing function.
17693 (arm_emit_strd_push): New function.
17694 (arm_expand_prologue): Used here.
17695 (arm_emit_ldrd_pop): New function.
17696 (arm_expand_epilogue): Used here.
17697 (arm_get_frame_offsets): Update condition.
17698 (arm_emit_multi_reg_pop): Add a special case for load of a single
17699 register with writeback.
17700
5e8e2af4
UB
177012013-04-16 Uros Bizjak <ubizjak@gmail.com>
17702
17703 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
17704 description.
17705
9fd9ccf7
RB
177062013-04-16 Richard Biener <rguenther@suse.de>
17707
17708 PR tree-optimization/56756
17709 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
17710 (first_mem_ref_loc): New.
17711 (execute_sm): Place the load temporarily before a previous
17712 access instead of in the latch edge to ensure its SSA dependencies
17713 are defined at points dominating the load.
17714
96fba521
SB
177152013-04-16 Steven Bosscher <steven@gcc.gnu.org>
17716
4c8af858
SB
17717 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
17718 correct fix by moving header and footer insn to the footer of
17719 the merged basic block. Clear BB_END of the merged-away block.
17720
96fba521
SB
17721 PR middle-end/43631
17722 * emit-rtl.c (make_note_raw): New function.
17723 (link_insn_into_chain): New static inline function.
17724 (add_insn): Use it.
17725 (add_insn_before, add_insn_after): Factor insn chain linking code...
17726 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
17727 using link_insn_into_chain.
17728 (note_outside_basic_block_p): New helper function for emit_note_after
17729 and emit_note_before.
17730 (emit_note_after): Use nobb variant of add_insn_after if the note
17731 should not be contained in a basic block.
17732 (emit_note_before): Use nobb variant of add_insn_before if the note
17733 should not be contained in a basic block.
17734 (emit_note_copy): Use make_note_raw.
17735 (emit_note): Likewise.
17736 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
17737 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
17738 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
17739 the moved barrier the tail of the basic block it follows.
17740 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
17741
7b8265ba
JJ
177422013-04-15 Jakub Jelinek <jakub@redhat.com>
17743
17744 PR tree-optimization/56962
17745 * gimple-ssa-strength-reduction.c (record_increment): Only set
17746 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
17747 either rhs1 or rhs2 is equal to c->base_expr.
17748
5185d248
RB
177492013-04-15 Richard Biener <rguenther@suse.de>
17750
17751 PR tree-optimization/56933
17752 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
17753 member.
17754 (GROUP_READ_WRITE_DEPENDENCE): Remove.
17755 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
17756 * tree-vect-data-refs.c (vect_analyze_group_access): Move
17757 dependence check ...
17758 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
17759 ... here.
17760 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
17761 GROUP_READ_WRITE_DEPENDENCE.
17762
a24243a0
AK
177632013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17764
17765 * emit-rtl.c (reset_all_used_flags): New function.
17766 (verify_rtl_sharing): Call reset_all_used_flags before and after
17767 performing the checks.
17768
1c50eada
KT
177692013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17770
17771 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
17772 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
17773 * config/arm/constraints.md (De): New constraint.
17774 * config/arm/neon.md (anddi3_neon): Delete.
17775 (neon_vand<mode>): Expand to standard anddi3 pattern.
17776 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
17777 Move earlier in the file.
17778 (neon_inv_logic_op2): Likewise.
17779 (arm_anddi_operand_neon): New predicate.
17780
e927b6ad
RO
177812013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17782
17783 * configure.ac (gcc_cv_ld_as_needed): Set
17784 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
17785 Use -z ignore, -z record on *-*-solaris2*.
17786 (HAVE_LD_AS_NEEDED): Update comment.
17787 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
17788 * configure: Regenerate.
17789 * config.in: Regenerate.
17790 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
17791 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
17792 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
17793 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
17794 equivalents. Fix markup.
17795 * doc/tm.texi: Regenerate.
17796
e0ea8797
AH
177972013-04-15 Andrew Hsieh <andrewhsieh.google.com>
17798
17799 * config/i386/i386.opt: New option mstack-protector-guard=.
17800 * config/i386/i386-opts.h: Add enum stack_protector_guard.
17801 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
17802 TARGET_SSP_TLS_GUARD.
17803 * config/i386/i386.c (ix86_option_override_internal): Set
17804 ix86_stack_protector_guard.
17805 * config/i386/i386.md (stack_protect_set): Enable for
17806 TARGET_SSP_TLS_GUARD only.
17807 (stack_protect_set_<mode>): Ditto.
17808 (stack_protect_test): Ditto.
17809 (stack_protect_test_<mode>): Ditto.
17810 * doc/invoke.texi (i386 Option): Document.
17811
811b72f9
EB
178122013-04-15 Eric Botcazou <ebotcazou@adacore.com>
17813
17814 PR target/56890
17815 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
17816 (S_MODES): Set H_MODE bit.
17817 (SF_MODES): Set only S_MODE and SF_MODE bits.
17818 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
17819 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
17820 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
17821 <MODE_FLOAT>: Likewise.
17822
5529fdd6
JY
178232013-04-15 Joey Ye <joey.ye@arm.com>
17824
17825 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
17826
517b1da2
JY
178272013-04-15 Joey Ye <joey.ye@arm.com>
17828
17829 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
17830 for real far jump.
17831 (thumb_far_jump_used_p): Count instruction size and set
17832 far_jump_used.
17833
01007ae0
EB
178342013-04-14 Eric Botcazou <ebotcazou@adacore.com>
17835
17836 * reorg.c (fill_simple_delay_slots): Reindent block of code.
17837 * resource.c (mark_target_live_regs): Reformat conditional block.
17838
c46f6580
SB
178392013-04-13 Steven Bosscher <steven@gcc.gnu.org>
17840
17841 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
17842 notes, they are emitted only just before final.
17843 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
17844
1f397f45
SB
178452013-04-13 Steven Bosscher <steven@gcc.gnu.org>
17846
17847 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
17848 * cfgrtl.c (delete_insn): Call it here instead.
17849 * lra-spills.c (lra_final_code_change): Use delete_insn.
17850 * haifa-sched.c (sched_remove_insn): Likewise.
17851 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
17852 returning to the nop pool.
17853 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
17854 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
17855
58a51369
SB
178562013-04-12 Steven Bosscher <steven@gcc.gnu.org>
17857
17858 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
17859 * doc/tm.texi: Regenerated.
17860
33159866
UB
178612013-04-12 Uros Bizjak <ubizjak@gmail.com>
17862
17863 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
17864 QImode checks.
17865
226e378f
SB
178662013-04-12 Steven Bosscher <steven@gcc.gnu.org>
17867
17868 * df-core.c (df_find_def): Compare register numbers.
17869 (df_find_use): Likewise.
17870
fafb9b18
VM
178712013-04-12 Vladimir Makarov <vmakarov@redhat.com>
17872
17873 PR target/56903
17874 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
17875 lra_in_progress for return.
17876
9a946fd6
GY
178772013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
17878
17879 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
17880 define_insn into define_insn_and_split and emit movsicc patterns.
17881
41b83758
GY
178822013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
17883
17884 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
17885
d3afd9aa
RB
178862013-04-12 Richard Biener <rguenther@suse.de>
17887
17888 * tree-pass.h (TODO_do_not_ggc_collect): New.
17889 * passes.c (execute_one_ipa_transform_pass): Honor
17890 TODO_do_not_ggc_collect.
17891 (execute_one_pass): Likewise.
17892
17893 Revert
17894 2013-04-10 Richard Biener <rguenther@suse.de>
17895
17896 * passes.c (init_optimization_passes): Remove reload pass.
17897 * ira.c (do_reload): Merge into ...
17898 (ira): ... this.
17899 (rest_of_handle_reload): Remove.
17900 (pass_reload): Likewise.
17901 * config/i386/i386.c (ix86_option_override): Refer to ira instead
17902 of reload for vzeroupper pass placement.
17903
06f9b387
JJ
179042013-04-12 Jakub Jelinek <jakub@redhat.com>
17905
17906 PR tree-optimization/56918
17907 PR tree-optimization/56920
17908 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
17909 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
17910 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
17911 use wide_mul_with_sign method.
17912
953094d2
RB
179132013-04-12 Richard Biener <rguenther@suse.de>
17914
17915 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
17916 not be considered a gimple constant.
17917
bb506982
MG
179182013-04-12 Marc Glisse <marc.glisse@inria.fr>
17919
17920 * fold-const.c (const_binop): Handle vector shifts by a scalar.
17921 (fold_binary_loc): Call const_binop also for mixed vector-scalar
17922 operations.
17923
4b84d650
JJ
179242013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
17925 Jakub Jelinek <jakub@redhat.com>
17926
17927 * opts.c: Include diagnostic-color.h.
17928 (common_handle_option): Handle OPT_fdiagnostics_color_.
17929 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
17930 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
17931 (diagnostic-color.o): New.
17932 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
17933 (diagnostic_color_rule): New enum.
17934 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
17935 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
17936 the location string.
17937 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
17938 either NULL, or color kind.
17939 * diagnostic-color.c: New file.
17940 * diagnostic-color.h: New file.
17941 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
17942 arguments.
17943 * doc/invoke.texi (-fdiagnostics-color): Document.
17944 * pretty-print.h (pp_show_color): Define.
17945 (struct pretty_print_info): Add show_color field.
17946 * diagnostic.c: Include diagnostic-color.h.
17947 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
17948 macros. Colorize error:, warning: etc. strings and also the location
17949 string.
17950 (diagnostic_show_locus): Colorize the caret line.
17951 * pretty-print.c: Include diagnostic-color.h.
17952 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
17953 inside of %< %> quotes or quoted through q format modifier.
17954
067a1e71
AK
179552013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17956
33159866 17957 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 17958
33159866 179592013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
17960
17961 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
17962 code in CC_NZ mode.
17963 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
17964 pattern.
17965
7b55f98f
MP
179662013-04-11 Marek Polacek <polacek@redhat.com>
17967
17968 PR tree-optimization/48184
33159866 17969 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 17970
966b587e
EB
179712013-04-11 Eric Botcazou <ebotcazou@adacore.com>
17972
17973 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
17974 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
17975 (skip_simple_arithmetic): Tidy up.
17976 * tree.h (skip_simple_constant_arithmetic): Declare.
17977
33159866 179782013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
17979
17980 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
17981
1d42c1ec
RB
179822013-04-11 Richard Biener <rguenther@suse.de>
17983
17984 * tree-vect-loop.c (get_initial_def_for_induction): Properly
17985 generate vector constants.
17986
4ba5ea11
RB
179872013-04-11 Richard Biener <rguenther@suse.de>
17988
17989 PR tree-optimization/56878
17990 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
17991 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
17992 New function.
17993 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17994 Prefer to align the DR with the most invariant base address.
17995
f0defe58
SKS
179962013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17997
17998 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
17999 comment.
18000
d07458be
JG
180012013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18002
18003 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
18004 floating-point vector comparisons against 0.
18005
146b8692
JJ
180062013-04-11 Jakub Jelinek <jakub@redhat.com>
18007
18008 PR tree-optimization/56899
18009 * fold-const.c (extract_muldiv_1): Apply distributive law
18010 only if TYPE_OVERFLOW_WRAPS (ctype).
18011
b8578ff7
BC
180122013-04-11 Bin Cheng <bin.cheng@arm.com>
18013
18014 PR target/56124
18015 * ira-costs.c (scan_one_insn): Check whether the source rtx of
18016 loading has side effect.
18017
0ea8a6f9
SB
180182013-04-10 Steven Bosscher <steven@gcc.gnu.org>
18019
18020 * config/sparc/sparc.c: Include tree-pass.h.
18021 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
18022 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
18023 head of file. Change return type. Split off gate function.
18024 (sparc_gate_work_around_errata): New function.
18025 (pass_work_around_errata): New pass definition.
18026 (insert_pass_work_around_errata) New pass insert definition to
18027 insert pass_work_around_errata just after delayed-branch scheduling.
18028 (sparc_option_override): Insert the pass.
18029 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
18030
42e37616
DM
180312013-04-10 David S. Miller <davem@davemloft.net>
18032
89deeb3b
DM
18033 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
18034 or -mcpu=hypersparc.
18035
42e37616
DM
18036 * target.def (cstore_mode): New hook.
18037 * target.h: Include insn-codes.h
18038 * targhooks.c: Likewise.
18039 (default_cstore_mode): New function.
18040 * targhooks.h: Declare it.
18041 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
18042 * doc/tm.texi: Rebuild.
18043 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
18044 target hook, rather than inspecting the insn_data.
18045 * config/sparc/sparc.c (sparc_cstore_mode): New function.
18046 (TARGET_CSTORE_MODE): Redefine.
18047 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
18048 result patterns.
18049 * config/sparc/predicates.md (cstore_result_operand): New special
18050 predicate.
18051 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
18052 Use it for operand 0.
18053 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
18054 (*snesi_special): Likewise.
18055 (*snesi_zero): Likewise.
18056 (*seqsi_zero): Likewise.
18057 (*sltu_insn): Likewise.
18058 (*sgeu_insn): Likewise.
18059 (*seqdi_special): Make operand 0 and comparison operation be of
18060 DImode.
18061 (*snedi_special): Likewise.
18062 (*snedi_special_vis3): Likewise.
18063 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
18064 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
18065 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
18066 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
18067 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
18068 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
18069 (*sltu_extend_sp64): Likewise.
18070 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
18071 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
18072 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
18073 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
18074 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
18075
95ca411e
YZ
180762013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
18077
18078 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
18079 (aarch64_start_file): Use the new function.
18080
6782438d 180812013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 18082 Jason Merrill <jason@redhat.com>
6782438d
SKS
18083
18084 * common.opt: Add -gdwarf.
18085 * opts.c (common_handle_option): Handle it.
18086 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
18087
bb313b93
RB
180882013-04-10 Richard Biener <rguenther@suse.de>
18089
18090 * passes.c (execute_todo): Do not call ggc_collect conditional here.
18091 (execute_one_ipa_transform_pass): But unconditionally here.
18092 (execute_one_pass): And here.
18093 (init_optimization_passes): Remove reload pass.
18094 * tree-pass.h (TODO_ggc_collect): Remove.
18095 (pass_reload): Likewise.
18096 * ira.c (do_reload): Merge into ...
18097 (ira): ... this.
18098 (rest_of_handle_reload): Remove.
18099 (pass_reload): Likewise.
18100 * config/i386/i386.c (ix86_option_override): Refer to ira instead
18101 of reload for vzeroupper pass placement.
18102 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
18103 and todo_flags_finish of all passes.
18104
793d9a16
RB
181052013-04-10 Richard Biener <rguenther@suse.de>
18106
18107 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
18108 first_const_oprnd field, rename first_def_type to first_op_type.
18109 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
18110 (vect_get_and_check_slp_defs): Always use the type of the
18111 operand. Allow mixed vect_external_def, vect_constant_def types.
18112 (vect_get_constant_vectors): Handle mixed vect_external_def,
18113 vect_constant_def types.
18114
12211b99 181152013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
18116
18117 PR tree-optimization/55524
18118 * tree-ssa-math-opts.c
18119 (convert_mult_to_fma): Don't use an fms construct
18120 when we don't have an fms operation, but fnma, and it looks
18121 likely that we'll be able to use the latter.
18122
12211b99 181232013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
18124
18125 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
18126 function.
18127 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
18128 inline fail caused by overwritable functions.
18129
34ab4a5b
CJW
181302013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
18131
18132 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
18133 unnecessary bits in the constant power of two case.
18134
abf9bfbc
RB
181352013-04-10 Richard Biener <rguenther@suse.de>
18136
18137 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
18138 broken code swapping operands.
18139 (vect_build_slp_tree): Do not compute load permutations here.
18140 (vect_analyze_slp_instance): Compute load permutations here,
18141 after building the SLP tree.
18142
f408477e
CB
181432013-04-09 Christian Bruel <christian.bruel@st.com>
18144
18145 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
18146 of next/prev_real_insn.
18147
5ac42672
JH
181482013-04-09 Jan Hubicka <jh@suse.cz>
18149
abf9bfbc
RB
18150 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
18151 Drop aliased parameter.
5ac42672
JH
18152 (function_and_variable_visibility): Do not handle alias pairs.
18153 * cgraph.c (varpool_externally_visible_p): Update prototype.
18154 * varpool.c (varpool_add_new_variable): Update.
18155
5017f1d2
KT
181562013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18157
18158 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
18159
48eecbee
SB
181602013-04-09 Steven Bosscher <steven@gcc.gnu.org>
18161
a949cf1c
SB
18162 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
18163
48eecbee
SB
18164 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
18165
75ef8e3d
MP
181662013-04-09 Marek Polacek <polacek@redhat.com>
18167
18168 PR tree-optimization/48762
33159866 18169 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 18170
23847df4
RB
181712013-04-09 Richard Biener <rguenther@suse.de>
18172
18173 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
18174 dealing with cost.
18175 (vect_build_slp_tree): Likewise.
18176 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
18177 calculating the cost of a SLP instance.
18178 (vect_analyze_slp_instance): Use it from here, after building
18179 the SLP tree.
18180
ea3a0fde
JJ
181812013-04-09 Jakub Jelinek <jakub@redhat.com>
18182
18183 PR middle-end/56883
18184 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
18185 expand_omp_for_static_chunk): Use simple_p = true in
18186 force_gimple_operand_gsi calls when assigning to addressable decls.
18187
a32dfe9d
JL
181882013-04-09 Jeff Law <law@redhat.com>
18189
18190 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
18191 when the boolean was created by converting a wider object which
18192 had a boolean range.
18193
d755c7ef
RB
181942013-04-09 Richard Biener <rguenther@suse.de>
18195
18196 * tree-vectorizer.h (slp_void_p): Remove.
18197 (slp_tree): Typedef before _slp_tree declaration.
18198 (struct _slp_tree): Use a vector of slp_tree as children.
18199 (vect_get_place_in_interleaving_chain): Remove.
18200 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
18201 Move ...
18202 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
18203 and make static.
18204 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
18205 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
18206 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
18207 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
18208 Use slp_node instead of slp_void_p and adjust.
18209
3d741091
RB
182102013-04-09 Richard Biener <rguenther@suse.de>
18211
18212 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
18213 work that is not necessary.
18214
39307ba7
JJ
182152013-04-09 Jakub Jelinek <jakub@redhat.com>
18216
18217 PR tree-optimization/56854
18218 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
18219 forward into clobber stmts if it would change MEM_REF lhs into
18220 non-MEM_REF.
18221
343881fd
MK
182222013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
18223
18224 * tree.c (type_hash_lookup, type_hash_add): Make static.
18225 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
18226
3922658a
RB
182272013-04-09 Richard Biener <rguenther@suse.de>
18228
18229 * tree.h (unsave_expr_now): Remove.
18230 * tree-inline.c (mark_local_for_remap_r): Remove.
18231 (unsave_expr_1): Likewise.
18232 (unsave_r): Likewise.
18233 (unsave_expr_now): Likewise.
18234 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
18235 (propagate_tree_value): Likewise.
18236
9fb6b620
SB
182372013-04-08 Steven Bosscher <steven@gcc.gnu.org>
18238
18239 * doc/rtl.texi (sequence): Rewrite documentation to match the
18240 current use of SEQUENCE rtl objects.
18241 * rtl.def (SEQUENCE): Likewise.
18242
18243 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
18244 Update documentation.
18245 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
18246 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
18247
18248 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
18249
8ddb5a29
TJ
182502013-04-08 Teresa Johnson <tejohnson@google.com>
18251
18252 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
18253 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 18254 methods.
8ddb5a29
TJ
18255 (estimate_edge_size_and_time): Add comment to suggest using rounding
18256 methods.
18257 (estimate_node_size_and_time): Ditto.
18258 (remap_edge_change_prob): Use helper rounding divide methods.
18259 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
18260 (gimple_mod_pow2_value_transform): Ditto.
18261 (gimple_mod_subtract_transform): Ditto.
18262 (gimple_ic_transform): Ditto.
18263 (gimple_stringops_transform): Ditto.
18264 * stmt.c (conditional_probability): Ditto.
18265 (emit_case_dispatch_table): Ditto.
18266 * lto-cgraph.c (merge_profile_summaries): Ditto.
18267 * tree-optimize.c (execute_fixup_cfg): Ditto.
18268 * cfgcleanup.c (try_forward_edges): Ditto.
18269 * cfgloopmanip.c (scale_loop_profile): Ditto.
18270 (loopify): Ditto.
18271 (duplicate_loop_to_header_edge): Ditto.
18272 (lv_adjust_loop_entry_edge): Ditto.
18273 * tree-vect-loop.c (vect_transform_loop): Ditto.
18274 * profile.c (compute_branch_probabilities): Ditto.
18275 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
18276 * lto-streamer-in.c (input_cfg): Ditto.
18277 * gimple-streamer-in.c (input_bb): Ditto.
18278 * ipa-cp.c (update_profiling_info): Ditto.
18279 (update_specialized_profile): Ditto.
18280 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
18281 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 18282 rounding methods.
8ddb5a29
TJ
18283 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18284 (compute_trg_info): Ditto.
18285 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
18286 (purge_dead_edges): Ditto.
18287 * loop-unswitch.c (unswitch_loop): Ditto.
18288 * cgraphclones.c (cgraph_clone_edge): Ditto.
18289 (cgraph_clone_node): Ditto.
18290 * tree-inline.c (copy_bb): Ditto.
18291 (copy_edges_for_bb): Ditto.
18292 (initialize_cfun): Ditto.
18293 (copy_cfg_body): Ditto.
18294 (expand_call_inline): Ditto.
18295
661e6bd7
KT
182962013-04-08 Kai Tietz <ktietz@redhat.com>
18297
18298 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
18299 TARGET_CYGWIN64 by TARGET_64BIT.
18300
105766f3
JR
183012013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
18302
18303 * config/epiphany/epiphany.md (GPR_1): New constant.
18304 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
18305 * config/epiphany/epiphany.c (gen_compare_reg):
18306 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
18307 is already in place.
18308 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
18309 Don't require being called during rtl expansion; If y operlaps r0,
18310 return 0.
18311 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
18312 (epiphany_expand_epilogue): Likewise.
18313
8afab237
JR
18314 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
18315 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 18316 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 18317
fa7707d6
JR
18318 * config/epiphany/constraints.md (CnL): New constraint.
18319 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
18320 * config/epiphany/predicates.md (add_operand): Allow 1024.
18321
5138e18d
JR
18322 * config/epiphany/epiphany.md (logical_op): New code iterator.
18323 (op_mnc): New code attribute.
18324 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
18325 (mov_f+1, mov_f+2): New peephole2 patterns.
18326
2ccc703d
JR
18327 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
18328 (cstoresi4): Also allow re-use of zero result when doing a NE
18329 comparison to a non-zero operand.
aefb0819 18330 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 18331
093ac0a5
JR
18332 * config/epiphany/epiphany.md (<insn_opname>v2si3):
18333 Use gen_addsi3_i / gen_subsi3_i.
18334
f223bb13
JJ
183352013-04-08 Jakub Jelinek <jakub@redhat.com>
18336
18337 PR c++/34949
18338 PR c++/50243
18339 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
18340 contain anything but clobbers, at most one __builtin_stack_restore,
18341 optionally debug stmts and final resx, and if it has at least one
18342 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
18343 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
18344 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
18345 which isn't defaut definition, remove them.
18346 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
18347 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
18348 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
18349 with MEM_REF LHS with SSA_NAME address.
18350
4481581f
JL
183512013-04-08 Jeff Law <law@redhat.com>
18352
18353 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 18354
451dabda
RB
183552013-04-08 Richard Biener <rguenther@suse.de>
18356
18357 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
18358 extra newline.
18359 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
18360 determined vector type.
18361 (vect_analyze_data_refs): Likewise.
18362 (vect_get_new_vect_var): Adjust.
18363 (vect_create_destination_var): Preserve SSA name versions.
18364 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
18365 not dump anything here.
18366
3b088b47
JR
183672013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
18368
18369 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
18370 Add member lr_slot_known.
18371 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
18372 if necessary.
18373 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
18374 Remove code that sets lr_slot_offset according to what a previous
18375 version of epiphany_emit_save_restore used to do.
18376 (epiphany_emit_save_restore): When doing an lr save or restore,
18377 set/verify lr_slot_known and lr_slot_offset.
18378
d8484d41
XQ
183792013-04-08 Xinyu Qi <xyqi@marvell.com>
18380
33159866
UB
18381 PR target/54338
18382 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
18383 in ALL_REGS.
18384
481be1c4
RB
183852013-04-08 Richard Biener <rguenther@suse.de>
18386
18387 * alias.c (find_base_term): Fix thinko in previous change.
18388
401f3a81
JJ
183892013-04-08 Jakub Jelinek <jakub@redhat.com>
18390
18391 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
18392 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
18393 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
18394 if possible to compute val.
18395 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
18396 For QImode integers don't require anything about precision. Use
18397 const_with_all_bytes_same to find out if the constant doesn't have
18398 repeated bytes in it.
18399
03ed99a8
AK
184002013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18401
18402 * config/s390/s390.c (s390_expand_insv): Only accept insertions
18403 within mode size.
18404
781b2e62
MP
184052013-04-08 Marek Polacek <polacek@redhat.com>
18406
18407 PR rtl-optimization/48182
18408 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
18409 value to 1.
18410
27e430a2
JDA
184112013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18412
18413 PR target/55487
18414 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
18415 nuses, make sure we have a label.
18416
4902aa64
BS
184172013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18418
18419 PR target/56843
18420 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
18421 (rs6000_emit_swdiv_low_precision): Remove.
18422 (rs6000_emit_swdiv): Rewrite to handle between one and four
18423 iterations of Newton-Raphson generally; modify required number of
18424 iterations for some cases.
18425 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
18426
7bca81dc
SB
184272013-04-05 Steven Bosscher <steven@gcc.gnu.org>
18428
18429 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
18430 set-but-unused variable.
18431
18432 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
18433 basic blocks of released function bodies garbage-collectable.
18434
18435 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
18436 (struct rtl_opt_pass): Add TODO_df_finish.
18437
18438 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
18439
4542a38a
GY
184402013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18441
18442 * config/arm/constraints.md (q): New constraint.
18443 * config/arm/ldrdstrd.md: New file.
18444 * config/arm/arm.md (ldrdstrd.md) New include.
18445 (arm_movdi): Use "q" instead of "r" constraint
18446 for double-word memory access.
18447 (movdf_soft_insn): Likewise.
18448 * config/arm/vfp.md (movdi_vfp): Likewise.
18449 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 18450 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
18451 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
18452 (mem_ok_for_ldrd_strd): Likewise.
18453 (output_move_double): Update assertion.
18454
2385b218
GY
184552013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18456
18457 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
18458
75fe1cb5
GY
184592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18460
18461 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
18462 define_insn_and_split.
18463 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
18464
dd660e8e
GY
184652013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18466
18467 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
18468 define_insn_and_split.
33159866 18469 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
18470 (shiftsi3_compare): New pattern.
18471 (rrx): New pattern.
18472 * config/arm/unspecs.md (UNSPEC_RRX): New.
18473
045e472c
GY
184742013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18475
18476 * config/arm/arm.md (negdi_extendsidi): New pattern.
18477 (negdi_zero_extendsidi): Likewise.
18478
3f3bf1a8
GY
184792013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18480
18481 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
18482 define_insn_and_split.
18483 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
18484 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
18485
b0b49556
GY
184862013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18487
18488 * config/arm/arm.md (arm_subdi3): Convert define_insn into
18489 define_insn_and_split.
18490 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
18491 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
18492
d633dd84
GY
184932013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18494
18495 * config/arm/arm.md (subsi3_carryin): New pattern.
18496 (subsi3_carryin_const): Likewise.
18497 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
18498 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
18499
f4499066
GY
185002013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18501
18502 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
18503
ceef6fd9
GY
185042013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18505
18506 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 18507 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 18508
ddbdd8a7
KT
185092013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18510
18511 * config/arm/arm.c (arm_expand_builtin): Change fcode
18512 type to unsigned int.
18513
8456d78a
RR
185142013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18515
18516 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
18517
526c230f
ILT
185182013-04-04 Ian Lance Taylor <iant@google.com>
18519
33159866
UB
18520 * doc/standards.texi (Standards): The Go frontend supports the Go 1
18521 language standard.
526c230f 18522
3cfbe04d
SB
185232013-04-04 Steven Bosscher <steven@gcc.gnu.org>
18524
18525 PR middle-end/56729
18526 * df-scan.c (df_insn_delete): Disable failing assert.
18527
dfa3f8d0
KT
185282013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18529
18530 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
18531 New function prototype.
18532 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
18533 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
18534 (arm_builtin_vectorized_function): New function.
18535
f7837758
KT
185362013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18537
18538 * config/arm/arm_neon_builtins.def: New file.
18539 * config/arm/arm.c (neon_builtin_data): Move contents to
18540 arm_neon_builtins.def.
18541 (enum arm_builtins): Include neon builtin definitions.
18542 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 18543 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 18544
39c1b6db
MP
185452013-04-04 Marek Polacek <polacek@redhat.com>
18546
18547 PR tree-optimization/48186
18548 * predict.c (maybe_hot_frequency_p): Return false if
18549 HOT_BB_FREQUENCY_FRACTION is 0.
18550 (cgraph_maybe_hot_edge_p): Likewise.
18551
314f64eb
RB
185522013-04-04 Richard Biener <rguenther@suse.de>
18553
18554 PR tree-optimization/56826
18555 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
18556 more accurately.
18557
51a905b2
RB
185582013-04-04 Richard Biener <rguenther@suse.de>
18559
18560 PR tree-optimization/56213
18561 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 18562 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 18563
f1bf4f3a
RB
185642013-04-04 Richard Biener <rguenther@suse.de>
18565
18566 PR tree-optimization/56837
18567 * tree-loop-distribution.c (classify_partition): For non-zero
18568 values require that the value has the same precision as its
18569 mode to be useful as memset value.
18570
0bca7ded
NC
185712013-04-03 Nick Clifton <nickc@redhat.com>
18572
33159866 18573 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
18574 (fmssf4): Use fmsf.s on E3V5 architectures.
18575 (fnmasf4): Use fnmaf.s on E3V5 architectures.
18576 (fnmssf4): Use fnmsf.s on E3V5 architectures.
18577
b4019227
JL
185782013-04-03 Jeff Law <law@redhat.com>
18579
18580 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
18581 (lra-eliminations.o): Likewise.
18582
f57ddb5b
TJ
185832013-04-03 Teresa Johnson <tejohnson@google.com>
18584
18585 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 18586 compute_working_sets here from profile.c.
f57ddb5b 18587 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
18588 (gcov_working_set_t): Moved typedef here from basic-block.h
18589 (compute_working_set): Declare.
f57ddb5b
TJ
18590 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
18591 (get_working_sets): Renamed from compute_working_set,
33159866 18592 replace most of body with call to new compute_working_sets.
f57ddb5b 18593 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
18594 to get_working_sets.
18595 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 18596 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 18597 to get_working_sets.
f57ddb5b
TJ
18598 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
18599 * gcov-dump.c (dump_working_sets): New function.
18600
12211b99 186012013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
18602
18603 * hwint.c (sext_hwi, zext_hwi): New functions.
18604 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
18605 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
18606 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
18607 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
18608 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
18609 (sext_hwi, zext_hwi): New functions.
0bca7ded 18610
be672e08
JL
186112013-04-03 Jeff Law <law@redhat.com>
18612
18613 PR tree-optimization/56799
33159866
UB
18614 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
18615 back test for widening conversion erroneously dropped in prior change.
be672e08 18616
9d821fa5
KT
186172013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18618
18619 PR target/56809
18620 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
18621 instead of next_real_insn.
18622
71c581e7
MP
186232013-04-03 Marek Polacek <polacek@redhat.com>
18624
18625 PR sanitizer/55702
33159866 18626 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 18627
4a32ef80
KT
186282013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18629
18630 PR target/56809
18631 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
18632 next_real_insn.
18633 (thumb1_output_casesi): Likewise.
18634 (thumb2_output_casesi): Likewise.
18635
1b2253d4
RB
186362013-04-03 Richard Biener <rguenther@suse.de>
18637
18638 PR tree-optimization/56817
18639 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18640 Split out ...
18641 (tree_unroll_loops_completely_1): ... new function to manually
18642 walk the loop tree, properly defering outer loops of unrolled
18643 loops to later iterations.
18644
38000232
MG
186452013-04-03 Marc Glisse <marc.glisse@inria.fr>
18646
18647 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
18648 (vectorizable_load): Likewise.
18649 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
18650 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
18651
3fa35298
MG
186522013-04-03 Marc Glisse <marc.glisse@inria.fr>
18653
18654 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
18655 BIT_FIELD_REF.
18656
b3d45ff0
UW
186572013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18658
18659 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
18660
ec9202a8
BC
186612013-04-03 Bin Cheng <bin.cheng@arm.com>
18662
18663 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
18664
6805bd36
MG
186652013-04-03 Marc Glisse <marc.glisse@inria.fr>
18666
18667 PR tree-optimization/56790
33159866
UB
18668 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
18669 folding.
6805bd36 18670
da694a77
MG
186712013-04-03 Marc Glisse <marc.glisse@inria.fr>
18672
18673 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
18674 Handle VEC_MERGE.
18675 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
18676 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
18677 equal arguments.
18678
4e7d7b3d
JJ
186792013-04-03 Jakub Jelinek <jakub@redhat.com>
18680
18681 PR c/19449
18682 * tree.h (force_folding_builtin_constant_p): New decl.
18683 * builtins.c (force_folding_builtin_constant_p): New variable.
18684 (fold_builtin_constant_p): Fold immediately also if
18685 force_folding_builtin_constant_p.
18686
e6c9d234
RB
186872013-04-03 Richard Biener <rguenther@suse.de>
18688
18689 PR tree-optimization/56812
18690 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
18691 DRs of the same interleaving chain are independent.
18692
984d07dd
JM
186932013-04-02 Jason Merrill <jason@redhat.com>
18694
18695 * gdbinit.in (pbb): Use debug fn.
18696
622849c9
LC
186972013-04-02 Lawrence Crowl <crowl@google.com>
18698
18699 * sese.h (struct ivtype_map_elt_s): Remove unused.
18700 (extern debug_ivtype_map): Remove unused.
18701 (extern eq_ivtype_map_elts): Remove unused.
18702 * sese.c (debug_ivtype_map): Removed unused.
18703 (debug_ivtype_map_1): Removed unused.
18704 (debug_ivtype_elt): Remove unused.
18705 (eq_ivtype_map_elts): Remove unused.
18706
18707
82c0e1a0
KT
187082013-04-02 Kai Tietz <ktietz@redhat.com>
18709
18710 PR target/52790
18711 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
18712 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
18713 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
18714 function.
82c0e1a0
KT
18715 (legitimize_pe_coff_symbol): Likewise.
18716 (is_imported_p): New helper-function.
18717 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
18718 for Windows x64 targets.
18719 (ix86_expand_prologue): Optimize for pe-coff targets.
18720 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
18721 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
18722 medium/large code-model.
18723 (legitimize_pic_address): Likewise.
18724 (legitimize_tls_address): Likewise.
18725 (ix86_expand_call): Likewise.
18726 (x86_output_mi_thunk): Likewise.
18727 (get_dllimport_decl): Add new beimport argument.
18728 (construct_plt_address): Don't assert for x64 pe-coff targets.
18729 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
18730 targets.
18731 (SYMBOL_FLAG_STUBVAR): New macro.
18732 (SYMBOL_REF_STUBVAR_P): Likewise.
18733 * config/i386/winnt.c (stub_list): New structure.
18734 (stub_head): New local variable.
18735 (i386_pe_record_stub): New function.
18736 (i386_pe_file_end): Emit refptr-stubs.
18737
5d751b0c
JJ
187382013-04-02 Jakub Jelinek <jakub@redhat.com>
18739
09bb4c99
JJ
18740 PR rtl-optimization/56745
18741 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
18742 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
18743
a1d8947a
JJ
18744 PR c++/34949
18745 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
18746 and both of them are MEM_REFs, just compare first argument for
18747 equality and attempt to deal even with differing offsets.
18748
5d751b0c
JJ
18749 PR c++/34949
18750 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
18751 of gimple_clobber_p to be MEM_REF.
18752 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
18753 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
18754 after gimplification.
18755 * asan.c (get_mem_ref_of_assignment): Don't instrument
18756 gimple_clobber_p stmts.
18757 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
18758 gimple_clobber_p stmt if they have MEM_REF lhs and
18759 are dead because of another gimple_clobber_p stmt.
18760 * tree-ssa-live.c (clear_unused_block_pointer): Treat
18761 gimple_clobber_p stmts like debug stmts.
18762 (remove_unused_locals): Remove clobbers with MEM_REF lhs
18763 that refer to unused VAR_DECLs or uninitialized values.
18764 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
18765 gimple_clobber_p stmts if they refer to removed parameters.
18766 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
18767 formatting.
18768
e594716a
UB
187692013-04-02 Uros Bizjak <ubizjak@gmail.com>
18770
18771 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
18772 using SWI48 mode attribute.
18773
7a80735b
WM
187742013-04-02 Wei Mi <wmi@google.com>
18775
18776 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
18777 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
18778 *<rotate_insn><mode>3_mask in i386.md.
18779
f423a9e4
AI
187802013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
18781
18782 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
18783
90eb75f2
RB
187842013-04-02 Richard Biener <rguenther@suse.de>
18785
18786 PR tree-optimization/56778
18787 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18788 Runtime alias tests are not supported for gather loads.
18789 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
18790 stmts referenced from SSA operands before updating SSA form.
18791
d8c69a92
IC
187922013-04-02 Ian Caulfield <ian.caulfield@arm.com>
18793 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18794
18795 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
18796 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
18797 * config/arm/cortex-a53.md: New file.
18798 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
18799 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
18800 * config/arm/arm.c (arm_issue_rate): Likewise.
18801 * config/arm/arm-tune.md: Regenerate
18802 * config/arm/arm-tables.opt: Regenerate.
18803 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 18804
239eb04c
ZC
188052013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
18806
18807 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
18808 non-static link.
18809
c902d3c8
SN
188102013-04-02 Sofiane Naci <sofiane.naci@arm.com>
18811
d8c69a92
IC
18812 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
18813 scalar load/store operations using B/H registers.
c902d3c8
SN
18814 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
18815
051d0e2f
SN
188162013-04-02 Sofiane Naci <sofiane.naci@arm.com>
18817
18818 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
18819 scalar move.
18820 * config/aarch64/aarch64.c
18821 (aarch64_simd_scalar_immediate_valid_for_move): New.
18822 * config/aarch64/aarch64-protos.h
18823 (aarch64_simd_scalar_immediate_valid_for_move): New.
18824 * config/aarch64/constraints.md (Dh, Dq): New.
18825 * config/aarch64/iterators.md (hq): New.
18826
0ee1e3d9
EB
188272013-04-02 Eric Botcazou <ebotcazou@adacore.com>
18828
18829 * reorg.c (get_branch_condition): Deal with conditional returns.
18830 (fill_simple_delay_slots): Remove dead code dealing with jumps.
18831
136fb3f7
WM
188322013-04-01 Wei Mi <wmi@google.com>
18833
18834 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
18835 Truncate operand 2 using %b asm operand modifier.
18836 (*<shift_insn><mode>3_mask): Ditto.
18837 (*<rotate_insn><mode>3_mask): Ditto.
18838
6388c738
SB
188392013-04-01 Steven Bosscher <steven@gcc.gnu.org>
18840
18841 PR middle-end/56798
18842 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
18843
f7a4d826
KK
188442013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
18845
18846 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
18847 of next_real_insn.
18848 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
18849
4b943a49
LC
188502013-03-30 Lawrence Crowl <crowl@google.com>
18851
18852 * dse.c (clear_alias_sets): Remove never set.
18853 (disqualified_clear_alias_sets): Remove never set.
18854 (clear_alias_mode_pool): Remove never set.
18855 (dse_step0): Remove condition that is never true.
18856 (canon_address): Remove condition that is never true.
18857 (dse_step7): Remove condition that is never true.
18858 (rest_of_handle_dse): Remove condition that is never true.
18859 (rest_of_handle_dse::did_global): Remove never read from above.
18860 (dse_step2_spill): Remove never called from above.
18861 (dse_step5_spill): Remove never called from above.
18862
39718607
SB
188632013-03-30 Steven Bosscher <steven@gcc.gnu.org>
18864
da5c6bde
SB
18865 * doc/md.texi (Standard Names) <casesi>: Update documentation for
18866 JUMP_TABLE_DATA changes.
18867 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
18868 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
18869 (Insns) <jump_table_data>: New entry.
18870 * doc/tm.texi: Regenerate.
18871
39718607
SB
18872 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
18873
18874 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
18875 for table jump at the end of a basic block using tablejump_p.
18876 * targhooks.c (default_invalid_within_doloop): Likewise.
18877 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
18878 target hook implementation that is identical to the default hook.
18879 (rs6000_invalid_within_doloop): Remove.
18880
18881 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
18882 unused variable from tablejump_p call.
18883
18884 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
18885 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
18886 (INSN_DELETED_P): Likewise.
18887 (emit_jump_table_data): New prototype.
18888 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
18889 after 4th as unused.
18890 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
18891 * sched-vis.c (print_insn): Likewise.
18892 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
18893 insn for compatibility with back ends that use next_active_insn to
18894 identify jump table data.
18895 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
18896 (remove_insn): Likewise.
18897 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
18898 to be emitted.
18899 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
18900 (emit_jump_table_data): New function.
18901
18902 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
18903 basic block, a JUMP_TABLE_DATA never is.
18904 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
18905 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
18906 off from code handling real insns.
18907 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
18908 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
18909 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
18910 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
18911 is not a NONDEBUG_INSN_P.
18912 * ira-costs.c (scan_one_insn): Likewise.
18913 * jump.c (mark_all_labels): Likewise.
18914 (mark_jump_label_1): Likewise.
18915 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
18916 * lra.c (get_insn_freq): Expect all insns reaching here to be in
18917 a basic block.
18918 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
18919 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
18920 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
18921 JUMP_TABLE_DATA_P insns.
18922 (calculate_elim_costs_all_insns): Likewise.
18923 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
18924 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
18925 (delete_output_reload): Code style fixups.
18926 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
18927 insn flags on this non-insn.
18928 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
18929 as scheduling barriers, for pre-change compatibility.
18930 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
18931 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
18932
18933 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
18934 redundant JUMP_TABLE_DATA_P test.
18935 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
18936 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
18937 (frv_for_each_packet): Likewise.
18938 * config/i386/i386.c (min_insn_size): Likewise.
18939 (ix86_avoid_jump_mispredicts): Likewise.
18940 * config/m32r/m32r.c (m32r_is_insn): Likewise.
18941 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
18942 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
18943 (mips16_insn_length): Robustify.
18944 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
18945 (mips16_split_long_branches): Likewise.
18946 * config/pa/pa.c (pa_combine_instructions): Likewise.
18947 * config/rs6000/rs6000.c (get_next_active_insn): Treat
18948 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
18949 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
18950 as contributing to pool range lengths.
18951 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
18952 Remove redundant JUMP_TABLE_DATA_P test.
18953 (sh_loop_align): Likewise.
18954 (split_branches): Likewise.
18955 (sh_insn_length_adjustment): Likewise.
18956 * config/spu/spu.c (get_branch_target): Likewise.
18957
0208f7da
JH
189582013-03-29 Jan Hubicka <jh@suse.cz>
18959
18960 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
18961 gcov streaming; stream hot bb threshold to ltrans.
18962 * predict.c (get_hot_bb_threshold): Break out from ....
18963 (maybe_hot_count_p): ... here.
18964 (set_hot_bb_threshold): New function.
18965 * lto-section-in.c (lto_section_name): Add profile.
18966 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
18967 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
18968 and data-streamer.h
18969 (histogram_entry): New structure.
18970 (histogram, histogram_pool): New global vars.
18971 (histogram_hash): New structure.
18972 (histogram_hash::hash): New method.
18973 (histogram_hash::equal): Likewise.
18974 (account_time_size): New function.
18975 (cmp_counts): New function.
18976 (dump_histogram): New function.
18977 (ipa_profile_generate_summary): New function.
18978 (ipa_profile_write_summary): New function.
18979 (ipa_profile_read_summary): New function.
18980 (ipa_profile): Decide on threshold.
e594716a
UB
18981 (pass_ipa_profile): Add ipa_profile_write_summary and
18982 ipa_profile_read_summary.
0208f7da
JH
18983 * Makefile.in (ipa.o): Update dependencies.
18984 * lto-streamer.h (LTO_section_ipa_profile): New section.
18985
5a6ccc94
GDR
189862013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
18987
18988 * tree.h (VAR_P): New.
18989
39385fa6
PC
189902013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
18991
18992 PR lto/56777
18993 * doc/invoke.texi ([-fwhole-program]): Fix typo.
18994
34f0d87a
SB
189952013-03-29 Steven Bosscher <steven@gcc.gnu.org>
18996
18997 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
18998 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
18999 (control_flow_insn_p): Likewise.
19000 * cfgrtl.c (duplicate_insn_chain): Likewise.
19001 * final.c (get_attr_length_1): Likewise.
19002 (shorten_branches): Likewise.
19003 (final_scan_insn): Likewise.
19004 * function.c (instantiate_virtual_regs): Likewise.
19005 * gcse.c (insert_insn_end_basic_block): Likewise.
19006 * ira-costs.c (scan_one_insn): Likewise.
19007 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19008 * lra.c (check_rtl): Likewise.
19009 * reload1.c (elimination_costs_in_insn): Likewise.
19010 * reorg.c (follow_jumps): Likewise.
19011
19012 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
19013 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
19014 (thumb_far_jump_used_p): Likewise.
19015 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
19016 (workaround_speculation): Likewise.
19017 (add_sched_insns_for_speculation): Likewise.
19018 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
19019 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
19020 (frv_for_each_packet): Likewise.
19021 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
19022 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
19023 (final_emit_insn_group_barriers): Likewise.
19024 * config/m32r/m32r.c (m32r_is_insn): Likewise.
19025 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
19026 (mips16_insn_length): Likewise.
19027 * config/pa/pa.c (pa_reorg): Likewise.
19028 (pa_combine_instructions): Likewise.
19029 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
19030 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
19031 (sh_reorg): Likewise.
19032 (split_branches): Likewise.
19033 * config/spu/spu.c (get_branch_target): Likewise.
19034
19035 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
19036 JUMP_TABLE_DATA_P.
19037
4ac761b0
KY
190382013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
19039
39385fa6 19040 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
19041 Fix declaration name.
19042
58a49189
LC
190432013-03-28 Lawrence Crowl <crowl@google.com>
19044
19045 * graphds.h (struct graph.indicies): Remove unused.
19046 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
19047 (SCOP_ORIGINAL_PDDRS): Remove unused.
19048 * sese.h (extern insert_loop_close_phis): Removed unused.
19049 (extern insert_guard_phis): Removed unused.
19050 (extern ivtype_map_elt_info): Removed unused.
19051 (new_ivtype_map_elt): Removed unused.
19052 * sese.c (ivtype_map_elt_info): Removed unused.
19053
7b3b6ae4
LC
190542013-03-28 Lawrence Crowl <crowl@google.com>
19055
19056 * Makefile.in: Add several missing include dependences.
19057 (DUMPFILE_H): New.
19058 (test-dump.o): New. This object is not added to any executable,
19059 but is present for ad-hoc testing.
19060 * bitmap.c
19061 (debug (const bitmap_head_def &)): New.
19062 (debug (const bitmap_head_def *)): New.
19063 * bitmap.h
19064 (extern debug (const bitmap_head_def &)): New.
19065 (extern debug (const bitmap_head_def *)): New.
19066 * cfg.c
19067 (debug (edge_def &)): New.
19068 (debug (edge_def *)): New.
19069 * cfghooks.c
19070 (debug (basic_block_def &)): New.
19071 (debug (basic_block_def *)): New.
19072 * dumpfile.h
19073 (dump_node (const_tree, int, FILE *)): Correct source file.
19074 * dwarf2out.c
19075 (debug (die_struct &)): New.
19076 (debug (die_struct *)): New.
19077 * dwarf2out.h
19078 (extern debug (die_struct &)): New.
19079 (extern debug (die_struct *)): New.
19080 * gimple-pretty-print.c
19081 (debug (gimple_statement_d &)): New.
19082 (debug (gimple_statement_d *)): New.
19083 * gimple-pretty-print.h
19084 (extern debug (gimple_statement_d &)): New.
19085 (extern debug (gimple_statement_d *)): New.
19086 * ira-build.c
19087 (debug (ira_allocno_copy &)): New.
19088 (debug (ira_allocno_copy *)): New.
19089 (debug (ira_allocno &)): New.
19090 (debug (ira_allocno *)): New.
19091 * ira-int.h
19092 (extern debug (ira_allocno_copy &)): New.
19093 (extern debug (ira_allocno_copy *)): New.
19094 (extern debug (ira_allocno &)): New.
19095 (extern debug (ira_allocno *)): New.
19096 * ira-lives.c
19097 (debug (live_range &)): New.
19098 (debug (live_range *)): New.
19099 * lra-int.h
19100 (debug (lra_live_range &)): New.
19101 (debug (lra_live_range *)): New.
19102 * lra-lives.c
19103 (debug (lra_live_range &)): New.
19104 (debug (lra_live_range *)): New.
19105 * omega.c
19106 (debug (omega_pb_d &)): New.
19107 (debug (omega_pb_d *)): New.
19108 * omega.h
19109 (extern debug (omega_pb_d &)): New.
19110 (extern debug (omega_pb_d *)): New.
19111 * print-rtl.c
19112 (debug (const rtx_def &)): New.
19113 (debug (const rtx_def *)): New.
19114 * print-tree.c
19115 (debug_tree (tree): Move within file.
19116 (debug_raw (const tree_node &)): New.
19117 (debug_raw (const tree_node *)): New.
19118 (dump_tree_via_hooks (const tree_node *, int)): New.
19119 (debug (const tree_node &)): New.
19120 (debug (const tree_node *)): New.
19121 (debug_verbose (const tree_node &)): New.
19122 (debug_verbose (const tree_node *)): New.
19123 (debug_head (const tree_node &)): New.
19124 (debug_head (const tree_node *)): New.
19125 (debug_body (const tree_node &)): New.
19126 (debug_body (const tree_node *)): New.
19127 (debug_vec_tree (tree): Move and reimplement in terms of dump.
19128 (debug (vec<tree, va_gc> &)): New.
19129 (debug (vec<tree, va_gc> *)): New.
19130 * rtl.h
19131 (extern debug (const rtx_def &)): New.
19132 (extern debug (const rtx_def *)): New.
19133 * sbitmap.c
19134 (debug_raw (simple_bitmap_def &)): New.
19135 (debug_raw (simple_bitmap_def *)): New.
19136 (debug (simple_bitmap_def &)): New.
19137 (debug (simple_bitmap_def *)): New.
19138 * sbitmap.h
19139 (extern debug (simple_bitmap_def &)): New.
19140 (extern debug (simple_bitmap_def *)): New.
19141 (extern debug_raw (simple_bitmap_def &)): New.
19142 (extern debug_raw (simple_bitmap_def *)): New.
19143 * sel-sched-dump.c
19144 (debug (vinsn_def &)): New.
19145 (debug (vinsn_def *)): New.
19146 (debug_verbose (vinsn_def &)): New.
19147 (debug_verbose (vinsn_def *)): New.
19148 (debug (expr_def &)): New.
19149 (debug (expr_def *)): New.
19150 (debug_verbose (expr_def &)): New.
19151 (debug_verbose (expr_def *)): New.
19152 (debug (vec<rtx> &)): New.
19153 (debug (vec<rtx> *)): New.
19154 * sel-sched-dump.h
19155 (extern debug (vinsn_def &)): New.
19156 (extern debug (vinsn_def *)): New.
19157 (extern debug_verbose (vinsn_def &)): New.
19158 (extern debug_verbose (vinsn_def *)): New.
19159 (extern debug (expr_def &)): New.
19160 (extern debug (expr_def *)): New.
19161 (extern debug_verbose (expr_def &)): New.
19162 (extern debug_verbose (expr_def *)): New.
19163 (extern debug (vec<rtx> &)): New.
19164 (extern debug (vec<rtx> *)): New.
19165 * sel-sched-ir.h
19166 (_list_iter_cond_expr): Make inline instead of static.
19167 * sreal.c
19168 (debug (sreal &)): New.
19169 (debug (sreal *)): New.
19170 * sreal.h
19171 (extern debug (sreal &)): New.
19172 (extern debug (sreal *)): New.
19173 * tree.h
19174 (extern debug_raw (const tree_node &)): New.
19175 (extern debug_raw (const tree_node *)): New.
19176 (extern debug (const tree_node &)): New.
19177 (extern debug (const tree_node *)): New.
19178 (extern debug_verbose (const tree_node &)): New.
19179 (extern debug_verbose (const tree_node *)): New.
19180 (extern debug_head (const tree_node &)): New.
19181 (extern debug_head (const tree_node *)): New.
19182 (extern debug_body (const tree_node &)): New.
19183 (extern debug_body (const tree_node *)): New.
19184 (extern debug (vec<tree, va_gc> &)): New.
19185 (extern debug (vec<tree, va_gc> *)): New.
19186 * tree-cfg.c
19187 (debug (struct loop &)): New.
19188 (debug (struct loop *)): New.
19189 (debug_verbose (struct loop &)): New.
19190 (debug_verbose (struct loop *)): New.
19191 * tree-dump.c: Add header dependence.
19192 * tree-flow.h
19193 (extern debug (struct loop &)): New.
19194 (extern debug (struct loop *)): New.
19195 (extern debug_verbose (struct loop &)): New.
19196 (extern debug_verbose (struct loop *)): New.
19197 * tree-data-ref.c
19198 (debug (data_reference &)): New.
19199 (debug (data_reference *)): New.
19200 (debug (vec<data_reference_p> &)): New.
19201 (debug (vec<data_reference_p> *)): New.
19202 (debug (vec<ddr_p> &)): New.
19203 (debug (vec<ddr_p> *)): New.
19204 * tree-data-ref.h
19205 (extern debug (data_reference &)): New.
19206 (extern debug (data_reference *)): New.
19207 (extern debug (vec<data_reference_p> &)): New.
19208 (extern debug (vec<data_reference_p> *)): New.
19209 (extern debug (vec<ddr_p> &)): New.
19210 (extern debug (vec<ddr_p> *)): New.
19211 * tree-ssa-alias.c
19212 (debug (pt_solution &)): New.
19213 (debug (pt_solution *)): New.
19214 * tree-ssa-alias.h
19215 (extern debug (pt_solution &)): New.
19216 (extern debug (pt_solution *)): New.
19217 * tree-ssa-alias.c
19218 (debug (_var_map &)): New.
19219 (debug (_var_map *)): New.
19220 (debug (tree_live_info_d &)): New.
19221 (debug (tree_live_info_d *)): New.
19222 * tree-ssa-alias.h
19223 (extern debug (_var_map &)): New.
19224 (extern debug (_var_map *)): New.
19225 (extern debug (tree_live_info_d &)): New.
19226 (extern debug (tree_live_info_d *)): New.
19227
be77e1e5
JH
192282013-03-28 Jan Hubicka <jh@suse.cz>
19229
19230 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
19231
777e6976
IB
192322013-03-28 Ian Bolton <ian.bolton@arm.com>
19233
19234 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
19235 record only when desired or required.
19236
9cd347ae
UB
192372013-03-28 Uros Bizjak <ubizjak@gmail.com>
19238
19239 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
19240 *vec_extractv2di_1_rex64. Use x64 isa attribute.
19241
33159866 192422013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
19243
19244 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
19245 (*andsi3_compare0_uxtw): New pattern.
19246 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
19247 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
19248
89ab31c1
JH
192492013-03-28 Jan Hubicka <jh@suse.cz>
19250
19251 * data-streamer-in.c (streamer_read_gcov_count): New function.
19252 * gimple-streamer-out.c: Include value-prof.h.
19253 (output_gimple_stmt): Output histogram.
19254 (output_bb): Use streamer_write_gcov_count.
19255 * value-prof.c: Include data-streamer.h
19256 (dump_histogram_value): Add HIST_TYPE_MAX.
19257 (stream_out_histogram_value): New function.
19258 (stream_in_histogram_value): New function.
19259 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
19260 (stream_out_histogram_value, stream_in_histogram_value): Declare.
19261 * data-streamer-out.c (streamer_write_gcov_count): New function.
19262 (streamer_write_gcov_count_stream): New function.
19263 * lto-cgraph.c (lto_output_edge): Update counter streaming.
19264 (lto_output_node): Likewise.
19265 (input_node, input_edge): Likewise.
19266 * lto-streamer-out.c (output_cfg): Update streaming.
19267 * lto-streamer-in.c (input_cfg): Likewise.
19268 * data-streamer.h (streamer_write_gcov_count,
19269 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
19270 * gimple-streamer-in.c: Include value-prof.h
19271 (input_gimple_stmt): Input histograms.
19272 (input_bb): Update profile streaming.
19273
e594716a 192742013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 19275
33159866 19276 * genmodes.c (emit_max_int): New function.
8697be17 19277 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
19278 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
19279 Added doc.
8697be17 19280 * machmode.def: Fixed comment.
89ab31c1 19281
e594716a 192822013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
19283
19284 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
19285 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
19286
74946978
MP
192872013-03-28 Marek Polacek <polacek@redhat.com>
19288 Richard Biener <rguenther@suse.de>
19289
19290 PR tree-optimization/56695
19291 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
19292 build signed result of a vector comparison.
19293 * tree-cfg.c (verify_gimple_comparison): Check that a result
19294 of a vector comparison has signed type.
19295
a64b9c26
RB
192962013-03-28 Richard Biener <rguenther@suse.de>
19297
19298 PR tree-optimization/37021
19299 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
19300 do not restrict gaps between groups.
19301 * tree-vect-stmts.c (vectorizable_load): Properly account for
19302 a gap between groups.
19303
a9dc2a2f
EB
193042013-03-28 Eric Botcazou <ebotcazou@adacore.com>
19305
19306 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
19307 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
19308 is not enabled.
19309
53cb97f9
GP
193102013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
19311
19312 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
19313 * doc/extend.texi (Named Address Spaces): Ditto.
19314 (Variable Attributes): Ditto.
19315
b802ae5c
KT
193162013-03-27 Kai Tietz <ktietz@redhat.com>
19317
eddae10a
KT
19318 * config.build: Add support for cygwin x64 target.
19319 * config.gcc: Likewise.
19320 * config.host: Likewise.
19321 * configure.ac: Likewise
19322 * configure: Regenerated.
b802ae5c 19323
371e77e3 193242013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
19325
19326 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
19327 * config/i386/t-cygwin-w64: New file.
19328 * config/i386/cygwin-w64.h: New file.
19329 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
19330 and add support for x64-cygwin target.
19331 (CPP_SPEC): Likewise.
19332 (CXX_WRAP_SPEC_LIST): Undefine before define.
19333 (LIBGCJ_SONAME): Use 15 as version.
19334
f49b33cb
RB
193352013-03-27 Richard Biener <rguenther@suse.de>
19336
19337 PR tree-optimization/56716
19338 * tree-ssa-structalias.c (perform_var_substitution): Adjust
19339 dumping for ref nodes.
19340
b37a6ce5
MJ
193412013-03-27 Martin Jambor <mjambor@suse.cz>
19342
19343 PR tree-optimization/55334
19344 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
19345 restricted pointers to arrays.
19346
9469b9b2
GDR
193472013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
19348
19349 * Makefile.in (.SUFFIXES): Add .cc.
19350 (.c.o): Apply same recipe for implicit rule .cc.o.
19351
7d24f650
RB
193522013-03-27 Richard Biener <rguenther@suse.de>
19353
19354 PR tree-optimization/37021
19355 * tree-vect-data-refs.c (vect_check_strided_load): Allow
19356 REALPART/IMAGPART_EXPRs around the supported refs.
19357 * tree-ssa-structalias.c (find_func_aliases): Assume that
19358 floating-point values are not used to transfer pointers.
19359
2f251a05
AI
193602013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
19361
f43245d1
UB
19362 * target.def (TARGET_HAS_IFUNC_P): New target hook.
19363 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
19364 * doc/tm.texi: Regenerate.
19365 * targhooks.h (default_has_ifunc_p): New.
19366 * targhooks.c (default_has_ifunc_p): Ditto.
19367 * config/linux-protos.h: New file.
19368 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
19369 hook for linux which disables support of indirect functions in android.
19370 * config/linux-android.c: New file.
19371 * config/t-linux-android.c: Ditto.
19372 * config.gcc: Added new object file linux-android.o.
19373 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 19374 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 19375 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
19376 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
19377 doesn't support indirect functions.
19378 * configure: Regenerate.
19379
78b4e425
BC
193802013-03-27 Bin Cheng <bin.cheng@arm.com>
19381
19382 PR target/56102
19383 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
19384 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
19385 mult-word mode.
19386
a5ba7b92
AK
193872013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19388
19389 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
19390
be624986
TG
193912013-03-27 Terry Guo <terry.guo@arm.com>
19392
19393 * config/arm/arm-cores.def: Added core cortex-r7.
19394 * config/arm/arm-tune.md: Regenerated.
19395 * config/arm/arm-tables.opt: Regenerated.
19396 * doc/invoke.texi: Added entry for core cortex-r7.
19397
0a514f47
WL
193982013-03-27 Walter Lee <walt@tilera.com>
19399
19400 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
19401 double-decrement of next_scratch_regno.
19402
9332b0d2
WL
194032013-03-27 Walter Lee <walt@tilera.com>
19404
801d9b2a 19405 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
19406 input operands.
19407 (insn_v1mulus): Ditto.
19408 (insn_v2muls): Ditto.
19409
f54ea5dd
WL
194102013-03-27 Walter Lee <walt@tilera.com>
19411
e594716a 19412 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
19413 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
19414
bf60f4ca
WL
194152013-03-27 Walter Lee <walt@tilera.com>
19416
e594716a 19417 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
19418 (*sibcall_value): Ditto.
19419
e3b51eeb
WL
194202013-03-27 Walter Lee <walt@tilera.com>
19421
19422 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
19423 (insn_mnz_v8qi): ... this ...
19424 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
19425 vector equivalent.
19426 (insn_v<n>mnz): Replaced by ...
19427 (insn_v1mnz): ... this ...
19428 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
19429 equivalent.
19430 (insn_mz_<mode>): Replaced by ...
19431 (insn_mz_v8qi): ... this ...
19432 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
19433 vector equivalent.
19434 (insn_v<n>mz): Replaced by ...
19435 (insn_v1mz): ... this ...
19436 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
19437 equivalent.
19438
4fc7b145
EB
194392013-03-26 Eric Botcazou <ebotcazou@adacore.com>
19440
19441 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
19442
6f33817e
RM
194432013-03-26 Roland McGrath <mcgrathr@google.com>
19444
19445 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
19446 than fprintf with a non-constant, non-format string.
19447
93a4145b
UB
194482013-03-26 Uros Bizjak <ubizjak@gmail.com>
19449
19450 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
19451 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
19452 operand 0 predicate.
19453 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
19454 attribute. Use general_x64nomem_operand as operand 1 predicate.
19455 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
19456 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
19457 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
19458 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
19459 (mov<mode>_insv_1): Remove expander. Merge insn with
19460 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
19461 Use general_x64nomem_operand as operand 1 predicate.
19462 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
19463 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
19464 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
19465 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
19466 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
19467 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
19468 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
19469 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
19470 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
19471 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
19472 (general_x64nomem_operand): Ditto.
19473
c6a9ed5a 194742013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
19475
19476 * config/rtems.opt: Add -pthread option.
19477
31b0a960
RB
194782013-03-26 Richard Biener <rguenther@suse.de>
19479
93a4145b
UB
19480 * alias.c (find_base_term): Avoid redundant and not used recursion.
19481 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
19482 (true_dependence_1): Compute and pass base terms to base_alias_check.
19483 (write_dependence_p): Likewise.
19484 (may_alias_p): Likewise.
19485
79517551
SN
194862013-03-26 Sofiane Naci <sofiane.naci@arm.com>
19487
19488 * config/aarch64/aarch64.c (aarch64_classify_address): Support
19489 PC-relative load in SI modes and above only.
19490
a76213b9
XQ
194912013-03-26 Xinyu Qi <xyqi@marvell.com>
19492
19493 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
19494 * config/arm/iwmmxt.md (WCGR0): Update.
19495 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 19496
37ff9355
UB
194972013-03-26 Uros Bizjak <ubizjak@gmail.com>
19498
19499 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
19500 Use x64 and nox64 isa attributes.
19501
30b0317c
RB
195022013-03-26 Richard Biener <rguenther@suse.de>
19503
19504 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
19505 alignment computations and rely on get_object_alignment_1
19506 for the !TYPE_P case.
19507 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
19508
cbcdb140
WL
195092013-03-26 Walter Lee <walt@tilera.com>
19510
19511 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
19512 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
19513
dd884525 195142013-03-25 Jeff Law <law@redhat.com>
be672e08 19515
33159866
UB
19516 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
19517 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
19518 wrong version of prior patch.
19519
0051d3ec
WL
195202013-03-25 Walter Lee <walt@tilera.com>
19521
19522 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
19523 TILEGX_INSN_SHUFFLEBYTES1.
19524 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
19525 shufflebytes1.
19526 (tilegx_builtins): Ditto.
19527 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
19528
065a3605
WL
195292013-03-25 Walter Lee <walt@tilera.com>
19530
19531 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
19532 (floatunssisf2): New pattern.
19533 (floatsidf2): New pattern.
19534 (floatunssidf2): New pattern.
065a3605 19535
5b2a3c82
WL
195362013-03-25 Walter Lee <walt@tilera.com>
19537
19538 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
19539 tests for constraint J, K, N, P.
19540
192ea533
WL
195412013-03-25 Walter Lee <walt@tilera.com>
19542
19543 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
19544 Use indirect/pcrel encoding.
19545 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
19546 Ditto.
19547
855e0d0b
SE
195482013-03-25 Steve Ellcey <sellcey@mips.com>
19549
19550 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
19551 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
19552 * config/mips/mips.c (mips_option_override): Set IMADD default.
19553 * config/mips/mips.h (PTF_AVOID_IMADD): New.
19554 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
19555 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
19556 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
19557 * doc/invoke.texi (-mimadd/-mno-imadd): New.
19558
39e45653
JL
195592013-03-25 Jeff Law <law@redhat.com>
19560
19561 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
19562 slightly to avoid creating and folding useless trees. Simplify
19563 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
19564
7482c470
UB
195652013-03-25 Uros Bizjak <ubizjak@gmail.com>
19566
19567 * config/i386/i386.md (*zero_extendsidi2): Merge with
19568 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
19569 * config/i386/predicates.md (x86_64_zext_operand): Rename from
19570 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
19571 targets. Clarify comment.
19572
4a53743e
MJ
195732013-03-25 Martin Jambor <mjambor@suse.cz>
19574
19575 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
19576 pass-through jump functions differently.
19577 (ipa_read_jump_function): Likewise. Also use setter functions to set
19578 up jump functions.
19579
162712de
MJ
195802013-03-25 Martin Jambor <mjambor@suse.cz>
19581
19582 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
19583 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
19584 process it.
19585 (ipa_get_indirect_edge_target): New function.
19586 (devirtualization_time_bonus): New parameter known_aggs, pass it to
19587 ipa_get_indirect_edge_target. Update all callers.
19588 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
19589 ipa_get_indirect_edge_target_1 instead of calling
19590 ipa_get_indirect_edge_target.
19591 (create_specialized_node): Pass aggvlas to
19592 ipcp_discover_new_direct_edges.
19593
a5a4c20a
KT
195942013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19595
19596 * config/arm/arm.md (f_sels, f_seld): New types.
19597 (*cmov<mode>): New pattern.
19598 * config/arm/predicates.md (arm_vsel_comparison_operator): New
19599 predicate.
19600
f992b9fc
KT
196012013-03-25 Kai Tietz <ktietz@redhat.com>
19602
19603 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
19604 POSIX-printf for mingw-hosted builds.
19605
c16fd676
RB
196062013-03-25 Richard Biener <rguenther@suse.de>
19607
19608 PR middle-end/56694
19609 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
19610 must-not-throw stmt location.
19611
5ad29f12
KT
196122013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19613
19614 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
19615 Emit load-acquire versions when acq is true.
19616 (arm_emit_store_exclusive): Add rel parameter.
19617 Emit store-release versions when rel is true.
19618 (arm_split_compare_and_swap): Use acquire-release instructions
19619 instead.
19620 of barriers when appropriate.
19621 (arm_split_atomic_op): Likewise.
19622 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
19623 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
19624 (VUNSPEC_SLX): Likewise.
19625 (VUNSPEC_LDA): Likewise.
19626 (VUNSPEC_STL): Likewise.
19627 * config/arm/sync.md (atomic_load<mode>): New pattern.
19628 (atomic_store<mode>): Likewise.
19629 (arm_load_acquire_exclusive<mode>): Likewise.
19630 (arm_load_acquire_exclusivesi): Likewise.
19631 (arm_load_acquire_exclusivedi): Likewise.
19632 (arm_store_release_exclusive<mode>): Likewise.
19633
03a7dddb
CM
196342013-03-25 Catherine Moore <clm@codesourcery.com>
19635
19636 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
19637 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
19638 * config/mip/predicates.md (lwsp_swsp_operand,
19639 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
19640 sb16_operand, db4_operand, db7_operand, ib3_operand,
19641 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
19642 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
19643 andi16_operand): New predicates.
19644 * config/mips/mips.md (compression): New attribute.
19645 (enabled): New attribute.
19646 (length): Consider compression in computing length.
19647 (shift_compression): New code attribute.
19648 (*add<mode>3): New operands. Record compression.
19649 (sub<mode>3): Likewise.
19650 (one_cmpl<mode>2): Likewise.
19651 (*and<mode>3): Likewise.
19652 (*ior<mode>3): Likewise.
19653 (unnamed pattern for xor): Likewise.
19654 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
19655 (*<optab><mode>3): Likewise.
19656 (*mov<mode>_internal: Likewise.
19657 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
19658 (mips_unsigned_immediate_p): New.
19659 (umips_lwsp_swsp_address_p): New.
19660 (m16_based_address_p): New.
19661 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
19662 (mips_unsigned_immediate_p): New prototype.
19663 (lwsp_swsp_address_p): New prototype.
19664 (m16_based_address_p): New prototype.
19665 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
19666 (mips_signed_immediate_p): New function.
19667 (m16_based_address_p): New function.
19668 (lwsp_swsp_address_p): New function.
19669 (mips_print_operand_punctuation): Recognize short delay slot insns
19670 for microMIPS.add<mode>3"
19671
f35c297f 196722013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 19673
f35c297f
KT
19674 PR target/56720
19675 * config/arm/iterators.md (v_cmp_result): New mode attribute.
19676 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
19677
051b9446
RB
196782013-03-25 Richard Biener <rguenther@suse.de>
19679
19680 PR tree-optimization/56689
19681 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
19682 any edge.
19683
374001cb
RB
196842013-03-25 Richard Biener <rguenther@suse.de>
19685
19686 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
19687 of bitmap.
19688 (memory_references): Likewise.
19689 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
19690 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
19691 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
19692 (gather_mem_refs_in_loops): Fold into ...
19693 (analyze_memory_references): ... this. Move initialization
19694 to tree_ssa_lim_initialize.
19695 (fill_always_executed_in): Rename to ...
19696 (fill_always_executed_in_1): ... this.
19697 (fill_always_executed_in): Move contains_call computation to
19698 this new function from ...
19699 (tree_ssa_lim_initialize): ... here.
19700 (tree_ssa_lim): Call fill_always_executed_in.
19701
57895947
EB
197022013-03-25 Eric Botcazou <ebotcazou@adacore.com>
19703
19704 * postreload.c (reload_combine): Fix code detecting returns.
19705
1e1b18c1
EB
197062013-03-25 Eric Botcazou <ebotcazou@adacore.com>
19707
19708 * function.c (emit_use_return_register_into_block): On cc0 targets,
19709 do not emit the sequence between cc0 setter and user.
19710
9216baf1
KT
197112013-03-25 Kai Tietz <ktietz@redhat.com>
19712
1e1b18c1
EB
19713 * config/i386/predicates.md (local_symbolic_operand): Interpret
19714 dll-imported symbols as none-local.
9216baf1 19715
76421b44
RB
197162013-03-25 Richard Biener <rguenther@suse.de>
19717
19718 * tree-ssa-loop-im.c (struct depend): Remove.
19719 (struct lim_aux_data): Make depends a vec of gimples.
19720 (free_lim_aux_data): Adjust.
19721 (add_dependency): Likewise.
19722 (set_level): Likewise.
19723
d154bfa2
RB
197242013-03-25 Richard Biener <rguenther@suse.de>
19725
19726 PR middle-end/56434
19727 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
19728 the pointer returned by calls with ECF_MALLOC set.
19729
2cd9804e
UB
197302013-03-24 Uros Bizjak <ubizjak@gmail.com>
19731
acef5fe0
UB
19732 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
19733
197342013-03-24 Uros Bizjak <ubizjak@gmail.com>
19735
19736 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
19737 using MMXMODE mode iterator.
19738 (*move<mode>_internal): Merge with *movv2sf_internal and
19739 *movv2sf_internal_rex64 using MMXMODE mode iterator.
19740
225ccc68
SB
197412013-03-23 Steven Bosscher <steven@gcc.gnu.org>
19742
85c0f02d
SB
19743 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
19744 (record_last_mem_set_info): Likewise.
19745
225ccc68
SB
19746 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
19747 of XNEWVEC followed by memset.
19748 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
19749
b64925dc
SB
197502013-03-23 Steven Bosscher <steven@gcc.gnu.org>
19751
19752 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
19753 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
19754 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
19755 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
19756 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
19757 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
19758 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
19759 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
19760 BARRIER_P instead of GET_CODE.
19761
b9aaf52e
EB
197622013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19763
19764 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
19765 inaccuracy in the probing code.
19766
19767 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
19768 (ctrapdi4): Likewise.
19769
66de4d7c
EB
197702013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19771
19772 * calls.c (expand_call): Add missing guard to code handling return
19773 of non-BLKmode structures in MSB.
19774 * function.c (expand_function_end): Likewise.
19775
4f25c8fb
EB
197762013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19777
19778 * combine.c (try_combine): Adjust comment. Do not add the set of
19779 insn #0 if the destination indirectly is set or dies in insn #2.
19780 Tidy up code to distribute a new note.
19781
23b7850d
UB
197822013-03-22 Uros Bizjak <ubizjak@gmail.com>
19783
19784 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
19785 also for alternatives 16 and 17.
19786
bed852cf
UB
197872013-03-22 Uros Bizjak <ubizjak@gmail.com>
19788
19789 * config/i386/sse.md (*mov<mode>_internal): Merge with
19790 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
19791 Emit insn template depending on type attribute. Use
19792 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
19793 movd instead of movq mnemonic for interunit moves. Rewrite mode
19794 attribute calculation. Remove unit attribute calculation.
19795 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
19796 Set prefix_data16 attribute for DImode ssemov types.
19797 Use Ym instead of y for SSE-MMX conversion alternatives.
19798 Reorder operand constraints.
19799
1e8a7937
SB
198002013-03-22 Steven Bosscher <steven@gcc.gnu.org>
19801
19802 * df.h (df_insn_delete): Adjust prototype.
19803 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
19804 and let it decide whether mark the basic block dirty.
19805 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
19806 * df-scan.c (df_insn_info_delete): New helper function, split
19807 off from df_insn_delete.
19808 (df_scan_free_bb_info): Use it.
19809 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
19810 Likewise.
19811 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
19812 that the insn is actually an insn and it has a non-NULL basic block.
19813 Do not mark basic block dirty if only deleting a DEBUG_INSN.
19814
e14d094c
RB
198152013-03-22 Richard Biener <rguenther@suse.de>
19816
19817 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
19818 dep_ref members.
19819 (mem_ref_alloc): Do not allocate them.
19820 (refs_independent_p): Do not query or maintain a cache.
19821
e9cf7316
RB
198222013-03-22 Richard Biener <rguenther@suse.de>
19823
19824 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
19825 (gather_mem_refs_in_loops): Do not compute it.
19826 (analyze_memory_references): Do not allocate it.
19827 (tree_ssa_lim_finalize): Do not free it.
19828 (for_all_locs_in_loop): Do not query all_refs_in_loop.
19829
f046e81b
RB
198302013-03-22 Richard Biener <rguenther@suse.de>
19831
19832 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 19833
a05c0ddf
IB
198342013-03-22 Ian Bolton <ian.bolton@arm.com>
19835
19836 * config/aarch64/aarch64.c (aarch64_print_operand): New
19837 format specifier for printing a constant in hex.
19838 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
19839 format specifier for printing second operand.
19840
c00217fc
RB
198412013-03-22 Richard Biener <rguenther@suse.de>
19842
19843 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
19844 bitmaps.
19845 (gather_mem_refs_in_loops): Perform store accumulation here.
19846 (create_vop_ref_mapping_loop): Remove.
19847 (create_vop_ref_mapping): Likewise.
19848 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 19849 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
19850 (record_indep_loop): Remove.
19851 (record_dep_loop): New function.
19852 (ref_indep_loop_p_1): Adjust to only walk over references
19853 in the loop, not its subloops.
19854 (ref_indep_loop_p): Rename to ...
19855 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
19856 maintaining a more fine-grained cache.
19857 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
19858 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
19859
15d19bf8
RB
198602013-03-22 Richard Biener <rguenther@suse.de>
19861
19862 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
19863 (struct mem_ref): Make accesses_in_loop a vec of a vec of
19864 aggregate mem_ref_loc.
19865 (free_mem_ref_locs): Inline into ...
19866 (memref_free): ... this and adjust.
19867 (mem_ref_alloc): Adjust.
19868 (mem_ref_locs_alloc): Remove.
19869 (record_mem_ref_loc): Adjust.
19870 (get_all_locs_in_loop): Rewrite into ...
19871 (for_all_locs_in_loop): ... this iterator.
19872 (rewrite_mem_ref_loc): New functor.
19873 (rewrite_mem_refs): Use for_all_locs_in_loop.
19874 (sm_set_flag_if_changed): New functor.
19875 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
19876 (ref_always_accessed): New functor.
19877 (ref_always_accessed_p): Use for_all_locs_in_loop.
19878
6f37411d
MG
198792013-03-21 Marc Glisse <marc.glisse@inria.fr>
19880
19881 * tree-pass.h (PROP_gimple_lvec): New.
19882 * passes.c (dump_properties): Handle PROP_gimple_lvec.
19883 (init_optimization_passes): Move pass_lower_vector.
19884 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
19885 PROP_gimple_lvec.
19886 (pass_lower_vector): Provide PROP_gimple_lvec.
19887 (pass_lower_vector_ssa): Likewise.
19888 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
19889
511ef689
MW
198902013-03-21 Mark Wielaard <mjw@redhat.com>
19891
19892 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
19893
cc1df30b
UB
198942013-03-21 Uros Bizjak <ubizjak@gmail.com>
19895
19896 * config/i386/i386.md (*movdi_internal): Disparage slightly
19897 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
19898 conversion alternatives.
19899
c845cfe1
JJ
199002013-03-21 Jakub Jelinek <jakub@redhat.com>
19901
37e99116
JJ
19902 PR middle-end/48087
19903 * diagnostic.def (DK_WERROR): New kind.
19904 * diagnostic.h (werrorcount): Define.
19905 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
19906 promoted to DK_ERROR, increment DK_WERROR counter instead of
19907 DK_ERROR counter.
19908 * toplev.c (toplev_main): Call print_ignored_options even if
19909 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
19910 even if just werrorcount is non-zero.
19911
c845cfe1
JJ
19912 PR debug/55608
19913 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
19914 on failure.
19915 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
19916 (string_cst_pool_decl): New function.
19917 (optimize_one_addr_into_implicit_ptr): New function.
19918 (resolve_addr_in_expr): Optimize DWARF location expression
19919 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
19920 which doesn't live in memory, but has DW_AT_location or
19921 DW_AT_const_value, or refers to a string literal, into
19922 DW_OP_GNU_implicit_pointer.
19923 (optimize_location_into_implicit_ptr): New function.
19924 (resolve_addr): If removing DW_AT_location of a variable because
19925 it was DW_OP_addr of address of the variable, but the variable doesn't
19926 live in memory, try to emit const value attribute for the initializer.
19927
08e0cda6
MG
199282013-03-21 Marc Glisse <marc.glisse@inria.fr>
19929
19930 * tree.h (VECTOR_TYPE_P): New macro.
19931 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
19932 TYPE_MODE): Use it.
19933 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
19934 VEC_COND_EXPR cannot be lvalues.
19935 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
19936
d08633b4
MG
199372013-03-21 Marc Glisse <marc.glisse@inria.fr>
19938
19939 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
19940 Restrict the transformation to equal modes.
19941
e6647190
RB
199422013-03-21 Richard Biener <rguenther@suse.de>
19943
19944 PR tree-optimization/39326
19945 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
19946 (MEM_ANALYZABLE): Adjust.
19947 (record_mem_ref_loc): Move bitmap ops ...
19948 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
19949 unanalyzable refs, do not record locations for it.
19950 (analyze_memory_references): Allocate ref zero as shared
19951 unanalyzable ref.
19952 (refs_independent_p): Do not test for unanalyzed mems here.
19953 (ref_indep_loop_p_1): Special-case disambiguation against
19954 the unanalyzed ref.
cc1df30b 19955 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 19956
65074f54
CL
199572013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
19958
19959 * config/arm/arm-protos.h (tune_params): Add
19960 prefer_neon_for_64bits field.
19961 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
19962 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
19963 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19964 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19965 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
19966 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19967 (arm_option_override): Handle -mneon-for-64bits new option.
19968 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
19969 (prefer_neon_for_64bits): Declare new variable.
19970 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 19971 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
19972 (arch_enabled): Handle new arch types. Remove support for onlya8
19973 and nota8.
19974 (one_cmpldi2): Use new arch names.
bc5faa5b 19975 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
19976 * config/arm/arm.opt (mneon-for-64bits): Add option.
19977 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
19978 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
19979 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
19980 of onlya8.
19981 * doc/invoke.texi (-mneon-for-64bits): Document.
19982
5a2d2a79
RB
199832013-03-21 Richard Biener <rguenther@suse.de>
19984
19985 PR tree-optimization/39326
19986 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
19987 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 19988 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 19989
5abe1e05
RB
199902013-03-21 Richard Biener <rguenther@suse.de>
19991
19992 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
19993 (vect_insert_into_interleaving_chain): Likewise.
19994 (vect_drs_dependent_in_basic_block): Inline ...
19995 (vect_slp_analyze_data_ref_dependence): ... here. New function,
19996 split out from ...
19997 (vect_analyze_data_ref_dependence): ... here. Simplify.
19998 (vect_check_interleaving): Simplify.
19999 (vect_analyze_data_ref_dependences): Likewise. Split out ...
20000 (vect_slp_analyze_data_ref_dependences): ... this new function.
20001 (dr_group_sort_cmp): New function.
20002 (vect_analyze_data_ref_accesses): Compute data-reference groups
20003 here instead of in vect_analyze_data_ref_dependence. Use
20004 a more efficient algorithm.
20005 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
20006 vect_slp_analyze_data_ref_dependences. Call
20007 vect_analyze_data_ref_accesses earlier.
20008 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
20009 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
20010 (vect_slp_analyze_data_ref_dependences): New prototype.
20011
cad1735b
RB
200122013-03-21 Richard Biener <rguenther@suse.de>
20013
20014 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
20015 ref is stored in the loop.
20016 (find_refs_for_sm): Walk only over all stores.
20017 (store_motion_loop): Allocate from lim_bitmap_obstack.
20018 (store_motion): Likewise.
20019
141310ef
RB
200202013-03-21 Richard Biener <rguenther@suse.de>
20021
20022 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
20023 Update virtual SSA form.
20024
5022315a
RO
200252013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20026
20027 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
20028 * configure: Regenerate.
20029 * config.in: Regenerate.
20030 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
20031 if !HAVE_LD_EH_FRAME_CIEV3.
20032
50d4421c
RB
200332013-03-21 Richard Biener <rguenther@suse.de>
20034
20035 * tree-cfg.c (verify_expr_no_block): New function.
20036 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
20037 nor DECL_VALUE_EXPR have locations with associated blocks.
20038 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
20039 (clear_unused_block_pointer): Remove code dealing with
20040 blocks in DECL_DEBUG_EXPR locations.
20041
839b422f
RB
200422013-03-21 Richard Biener <rguenther@suse.de>
20043
20044 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
20045 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
20046 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
20047 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
20048 instead of DECL_DEBUG_EXPR_IS_FROM.
20049 * gimplify.c (gimplify_modify_expr): Likewise.
20050 * tree-cfg.c (verify_expr_location_1): Likewise.
20051 * tree-complex.c (create_one_component_var): Likewise.
20052 * tree-sra.c (create_access_replacement): Likewise.
20053 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
20054 (clear_unused_block_pointer): Likewise.
20055 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
20056 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
20057 * var-tracking.c (var_debug_decl): Likewise.
20058 (track_expr_p): Likewise.
20059 * tree-inline.c (add_local_variables): Likewise. Set
20060 DECL_HAS_DEBUG_EXPR_P after copying it.
20061 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
20062 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
20063
fe04878d
UB
200642013-03-21 Uros Bizjak <ubizjak@gmail.com>
20065
20066 PR bootstrap/56656
20067 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
20068 * configure: Regenerate.
20069 * config.in: Regenerate.
20070 * config/i386/i386.md (*movdf_internal): Use
20071 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
20072 movd instead of movq mnemonic for interunit moves.
20073 (*movdi_internal): Ditto.
20074
bd059b26 200752013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
20076
20077 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
20078 (abd<mode>_3): New pattern.
20079 (aba<mode>_3): New pattern.
20080 (fabd<mode>_3): New pattern.
20081
bd059b26 200822013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
20083
20084 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
20085 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
20086 occurrence of REGISTER_PREFIX as its empty string.
20087
4f1f78b9
JL
200882013-03-20 Jeff Law <law@redhat.com>
20089
20090 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
20091 addititional equivalences for equality comparisons between an SSA_NAME
20092 and a constant where the SSA_NAME was set from a widening conversion.
20093
327a1118
WL
200942013-03-20 Walter Lee <walt@tilera.com>
20095
20096 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
20097
813e0036
UB
200982013-03-20 Uros Bizjak <ubizjak@gmail.com>
20099
20100 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
20101 depending on type attribute.
20102 (*movti_internal): Ditto.
20103 (*movtf_internal): Ditto.
20104 (*movxf_internal): Ditto.
20105 (*movdf_internal): Ditto.
20106 (*movsf_internal): Ditto.
20107
7cf34aae
UB
201082013-03-20 Uros Bizjak <ubizjak@gmail.com>
20109
20110 * config/i386/i386.md (*movti_internal): Set prefix attribute to
20111 maybe_vex for sselog1 and ssemov types.
20112 (*movdi_internal): Reorder operand constraints.
20113 (*movsi_internal): Ditto. Set prefix attribute to
20114 maybe_vex for sselog1 and ssemov types.
20115 (*movtf_internal): Set prefix attribute to maybe_vex
20116 for sselog1 and ssemov types.
20117 (*movdf_internal): Ditto. Set prefix_data16 attribute for
20118 DImode ssemov types. Reorder operand constraints.
20119 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
20120 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
20121 attribute for SImode ssemov types. Reorder operand constraints.
20122
19321415
MJ
201232013-03-20 Martin Jambor <mjambor@suse.cz>
20124
20125 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
20126 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
20127
12211b99 201282013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
20129
20130 * config/rs6000/predicates.md (indexed_address, update_address_mem
20131 update_indexed_address_mem): New predicates.
20132 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
20133 attribute for load/store instructions.
20134 * config/rs6000/dfp.md (movsd_store): Likewise.
20135 (movsd_load): Likewise.
20136 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
20137 (unnamed HI->DI extend define_insn): Likewise.
20138 (unnamed SI->DI extend define_insn): Likewise.
20139 (unnamed QI->SI extend define_insn): Likewise.
20140 (unnamed QI->HI extend define_insn): Likewise.
20141 (unnamed HI->SI extend define_insn): Likewise.
20142 (unnamed HI->SI extend define_insn): Likewise.
20143 (extendsfdf2_fpr): Likewise.
20144 (movsi_internal1): Likewise.
20145 (movsi_internal1_single): Likewise.
20146 (movhi_internal): Likewise.
20147 (movqi_internal): Likewise.
20148 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
20149 attribute for load/store instructions.
20150 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
20151 instructions.
20152 (mov<mode>_softfloat): Likewise.
20153 (mov<mode>_hardfloat32): Likewise.
20154 (mov<mode>_hardfloat64): Likewise.
20155 (mov<mode>_softfloat64): Likewise.
20156 (movdi_internal32): Likewise.
20157 (movdi_internal64): Likewise.
20158 (probe_stack_<mode>): Likewise.
20159
201602013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
20161
20162 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
20163 floating point, and decimal floating point to reload iterator.
20164
20165 * config/rs6000/constraints.md (wl constraint): New constraints to
20166 return FLOAT_REGS if certain options are used to reduce the number
20167 of separate patterns that exist in the file.
20168 (wx constraint): Likewise.
20169 (wz constraint): Likewise.
20170
20171 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
20172 -mdebug=reg, print wg, wl, wx, and wz constraints.
20173 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
20174 Initialize the reload functions for 64-bit binary/decimal floating
20175 point types.
20176 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
20177 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
20178 create the buffer on the stack to overcome not having a 32-bit
20179 load and store.
20180 (rs6000_emit_move): Likewise.
20181 (rs6000_secondary_memory_needed_rtx): Likewise.
20182 (rs6000_alloc_sdmode_stack_slot): Likewise.
20183 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
20184 via xxlxor, just like DFmode 0.0.
20185
20186 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
20187 define as 1 if we are running on a power7 or newer.
20188 (enum r6000_reg_class_enum): Add new constraints.
20189
20190 * config/rs6000/dfp.md (movsd): Delete, combine with binary
20191 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
20192 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 20193 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
20194 (movsd splitter): Likewise.
20195 (movsd_hardfloat): Likewise.
20196 (movsd_softfloat): Likewise.
20197
20198 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
20199 binary and decimal floating point moves.
20200 (fmove_ok): New attributes to combine binary and decimal floating
20201 point moves, and to combine power6x (mfpgpr) moves along normal
20202 floating moves.
20203 (real_value_to_target): Likewise.
20204 (f32_lr): Likewise.
20205 (f32_lm): Likewise.
20206 (f32_li): Likewise.
20207 (f32_sr): Likewise.
20208 (f32_sm): Likewise.
20209 (f32_si): Likewise.
20210 (movsf): Combine binary and decimal floating point moves. Combine
20211 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 20212 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
20213 (mov<mode> for SFmode/SDmode); Likewise.
20214 (SFmode/SDmode splitters): Likewise.
20215 (movsf_hardfloat): Likewise.
20216 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
20217 (movsf_softfloat): Likewise.
20218 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
20219
20220 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
20221 wx and wz constraints.
20222
20223 * config/rs6000/constraints.md (wg constraint): New constraint to
20224 return FLOAT_REGS if -mmfpgpr (power6x) was used.
20225
20226 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
20227 constraint.
20228
20229 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
20230 -mdebug=reg, print wg, wl, wx, and wz constraints.
20231 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
20232 Initialize the reload functions for 64-bit binary/decimal floating
20233 point types.
20234 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
20235 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
20236 create the buffer on the stack to overcome not having a 32-bit
20237 load and store.
20238 (rs6000_emit_move): Likewise.
20239 (rs6000_secondary_memory_needed_rtx): Likewise.
20240 (rs6000_alloc_sdmode_stack_slot): Likewise.
20241 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
20242 via xxlxor, just like DFmode 0.0.
20243
c6d5ff83
MM
20244 * config/rs6000/dfp.md (movdd): Delete, combine with binary
20245 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
20246 with other moves by using conditional constraits (wg). Use LFIWZX
20247 and STFIWX for loading SDmode on power7.
20248 (movdd splitters): Likewise.
20249 (movdd_hardfloat32): Likewise.
20250 (movdd_softfloat32): Likewise.
20251 (movdd_hardfloat64_mfpgpr): Likewise.
20252 (movdd_hardfloat64): Likewise.
20253 (movdd_softfloat64): Likewise.
20254
20255 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
20256 64-bit binary and decimal floating point moves.
20257 (FMOVE64X): Likewise.
20258 (movdf): Combine 64-bit binary and decimal floating point moves.
20259 Combine power6x (mfpgpr) moves with other moves by using
20260 conditional constraits (wg).
20261 (mov<mode> for DFmode/DDmode): Likewise.
20262 (DFmode/DDmode splitters): Likewise.
20263 (movdf_hardfloat32): Likewise.
20264 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
20265 (movdf_softfloat32): Likewise.
20266 (movdf_hardfloat64_mfpgpr): Likewise.
20267 (movdf_hardfloat64): Likewise.
20268 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
20269 (movdf_softfloat64): Likewise.
20270 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
20271 (reload_<mode>_load): Move to later in the file so they aren't in
20272 the middle of the floating point move insns.
20273 (reload_<mode>_store): Likewise.
20274
20275 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
20276 constraint.
20277
20278 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
20279 constraint if -mdebug=reg.
bd059b26
UB
20280 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
20281 Enable using dd reload support if needed.
c6d5ff83
MM
20282
20283 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
20284 binary and decimal floating point moves in rs6000.md.
20285 (movtd_internal): Likewise.
20286
20287 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
20288 decimal floating point moves.
20289 (movtf): Likewise.
20290 (movtf_internal): Likewise.
20291 (mov<mode>_internal, TDmode/TFmode): Likewise.
20292 (movtf_softfloat): Likewise.
20293 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
20294
20295 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
20296 movdi_internal64, using wg constraint for move direct operations.
20297 (movdi_internal64): Likewise.
20298
20299 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
20300 MODES_TIEABLE_P for selected modes. Print the numerical value of
20301 the various virtual registers. Use GPR/FPR first/last values,
20302 instead of hard coding the register numbers. Print which modes
20303 have reload functions registered.
bd059b26
UB
20304 (rs6000_option_override_internal): If -mdebug=reg, trace the options
20305 settings before/after setting cpu, target and subtarget settings.
20306 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
20307 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
20308 (rs6000_secondary_reload_fail): Likewise.
20309 (rs6000_secondary_reload_inner): Likewise.
20310
20311 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
20312 macros for first/last GPR and FPR registers.
20313 (LAST_GPR_REGNO): Likewise.
20314 (FIRST_FPR_REGNO): Likewise.
20315 (LAST_FPR_REGNO): Likewise.
20316
20317 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
20318 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
20319 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
20320 (vcond<mode><mode>): Likewise.
20321 (vcondu<mode><mode>): Likewise.
20322 (vector_gtu<mode>): Likewise.
20323 (vector_gte<mode>): Likewise.
20324 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 20325 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
20326 (ior<mode>3): Likewise.
20327 (and<mode>3): Likewise.
20328 (one_cmpl<mode>2): Likewise.
20329 (nor<mode>3): Likewise.
20330 (andc<mode>3): Likewise.
20331
20332 * config/rs6000/constraints.md (wt constraint): New constraint
20333 that returns VSX_REGS if TImode is allowed in VSX registers.
20334
20335 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
20336 constant under VSX.
20337
20338 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
20339 similar to TImode, but it is restricted to being in the GPRs.
20340
20341 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
20342 TImode to occupy a single VSX register.
20343
20344 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
20345 -mvsx-timode for power7/power8.
20346 (power7 cpu): Likewise.
20347 (power8 cpu): Likewise.
20348
20349 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
20350 sure that TFmode/TDmode take up two registers if they are ever
20351 allowed in the upper VSX registers.
20352 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
20353 registers.
20354 (rs6000_init_hard_regno_mode_ok): Likewise.
20355 (rs6000_debug_reg_global): Add debugging for PTImode and wt
20356 constraint. Print if LRA is turned on.
20357 (rs6000_option_override_internal): Give an error if -mvsx-timode
20358 and VSX is not enabled.
20359 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
20360 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
20361 to reg+offset addressing. Use PTImode when checking offset
20362 addresses for validity.
20363 (reg_offset_addressing_ok_p): Likewise.
20364 (rs6000_legitimate_offset_address_p): Likewise.
20365 (rs6000_legitimize_address): Likewise.
20366 (rs6000_legitimize_reload_address): Likewise.
20367 (rs6000_legitimate_address_p): Likewise.
20368 (rs6000_eliminate_indexed_memrefs): Likewise.
20369 (rs6000_emit_move): Likewise.
20370 (rs6000_secondary_reload): Likewise.
20371 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
20372 reloads to fpr registers to continue to use reg+offset addressing,
20373 but 64-bit reloads to altivec registers need reg+reg addressing.
20374 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
20375 it. Treat LO_SUM like a PLUS operation.
20376 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 20377 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
20378 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
20379 registers to share a register with a smaller sized type, since VSX
20380 puts scalars in the upper 64-bits.
20381 (print_operand): Add support for PTImode.
20382 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
20383 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
20384 registers, but don't have arithmetic support.
20385 (rs6000_memory_move_cost): Add test for VSX.
20386 (rs6000_opt_masks): Add -mvsx-timode.
20387
20388 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
20389 for TImode.
20390 (VSs): Likewise.
20391 (VSr): Use wt constraint for TImode.
20392 (VSv): Drop TImode support.
20393 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
20394 (vsx_movti_64bit): Likewise.
20395 (vsx_movti_32bit): Likewise.
20396 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
20397 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
20398 one '?' on the appropriate output constraint. Do not allow TImode
20399 logical operations on 32-bit systems.
20400 (vsx_ior<mode>3): Likewise.
20401 (vsx_xor<mode>3): Likewise.
20402 (vsx_one_cmpl<mode>2): Likewise.
20403 (vsx_nor<mode>3): Likewise.
20404 (vsx_andc<mode>3): Likewise.
20405 (vsx_concat_<mode>): Likewise.
20406 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
20407
20408 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
20409 OPTION_MASK_VSX_TIMODE.
20410 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
20411 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
20412
20413 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
20414 (TI2 iterator): New iterator for TImode, PTImode.
20415 (wd mode attribute): Add values for vector types.
bd059b26
UB
20416 (movti_string): Replace TI move operations with operations for TImode
20417 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
20418 (mov<mode>_string, TImode/PTImode): Likewise.
20419 (movti_ppc64): Likewise.
20420 (mov<mode>_ppc64, TImode/PTImode): Likewise.
20421 (TI mode splitters): Likewise.
20422
20423 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
20424 constraint.
20425
1fc5eced
MG
204262013-03-20 Marc Glisse <marc.glisse@inria.fr>
20427
20428 PR tree-optimization/56355
20429 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
20430 Also handle integers with undefined overflow.
20431
22c4c869
CM
204322013-03-20 Catherine Moore <clm@codesourcery.com>
20433 Maciej W. Rozycki <macro@codesourcery.com>
20434 Tom de Vries <tom@codesourcery.com>
12211b99 20435 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
20436 Iain Sandoe <iain@codesourcery.com>
20437 Nathan Froyd <froydnj@codesourcery.com>
12211b99 20438 Chao-ying Fu <fu@mips.com>
22c4c869
CM
20439
20440 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 20441 Document new function attributes.
22c4c869
CM
20442 * doc/invoke.texi (minterlink-compressed, mmicromips,
20443 m14k, m14ke, m14kec): Document new options.
20444 (minterlink-mips16): Update documentation.
20445 * doc/md.texi (ZC, ZD): Document new constraints.
20446 * configure.ac (gcc_cv_as_micromips): Check if linker
20447 supports the .set micromips directive.
20448 * configure: Regenerate.
20449 * config.in: Regenerate.
20450 * config/mips/mips-tables.opt: Regenerate.
20451 * config/mips/micromips.md: New file.
20452 * constraints.md (ZC, ZD): New constraints.
20453 * config/mips/predicates.md (movep_src_register): New predicate.
20454 (movep_src_operand): New predicate.
20455 (non_volatile_mem_operand): New predicate.
20456 * config/mips/mips.md (multimem): New type.
20457 (length): Differentiate between 17-bit and 18-bit branch offsets.
20458 (MOVEP1, MOVEP2): New mode iterator.
33159866 20459 (mov_<load>l): Use ZC constraint.
22c4c869
CM
20460 (mov_<load>r): Likewise.
20461 (mov_<store>l): Likewise.
20462 (mov_<store>r): Likewise.
20463 (*branch_equality<mode>_inverted): Add microMIPS support.
20464 (*branch_equality<mode>): Likewise.
20465 (*jump_absolute): Likewise.
20466 (indirect_jump_<mode>): Likewise.
20467 (tablejump_<mode>): Likewise.
20468 (<optab>_internal): Likewise.
20469 (sibcall_internal): Likewise.
20470 (sibcall_value_internal): Likewise.
20471 (prefetch): Use constraint ZD.
20472 * config/mips/mips.opt (minterlink-compressed): New option.
20473 (minterlink-mips16): Now an alias for minterlink-compressed.
20474 (mmicromips): New option.
20475 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
20476 (compare_and_swap_12): Likewise.
20477 (sync_add<mode>): Likewise.
20478 (sync_<optab>_12): Likewise.
20479 (sync_old_<optab>_12): Likewise.
20480 (sync_new_<optab>_12): Likewise.
20481 (sync_nand_12): Likewise.
20482 (sync_old_nand_12): Likewise.
20483 (sync_new_nand_12): Likewise.
20484 (sync_sub<mode>): Likewise.
20485 (sync_old_add<mode>): Likewise.
20486 (sync_old_sub<mode>): Likewise.
20487 (sync_new_add<mode>): Likewise.
20488 (sync_new_sub<mode>): Likewise.
20489 (sync_<optab><mode>): Likewise.
20490 (sync_old_<optab><mode>): Likewise.
20491 (sync_new_<optab><mode>): Likewise.
20492 (sync_nand<mode>): Likewise.
20493 (sync_old_nand<mode>): Likewise.
20494 (sync_new_nand<mode>): Likewise.
20495 (sync_lock_test_and_set<mode>): Likewise.
20496 (test_and_set_12): Likewise.
20497 (atomic_compare_and_swap<mode>): Likewise.
20498 (atomic_exchange<mode>_llsc): Likewise.
20499 (atomic_fetch_add<mode>_llsc): Likewise.
20500 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
20501 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
20502 (umips_save_restore_pattern_p): Likewise.
20503 (umips_load_store_pair_p): Likewise.
20504 (umips_output_load_store_pair): Likewise.
20505 (umips_movep_target_p): Likewise.
20506 (umips_12bit_offset_address_p): Likewise.
20507 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
20508 (mips_base_mips16): Rename this...
20509 (mips_base_compression_flags): ...to this. Update all uses.
20510 (mips_attribute_table): Add micromips, nomicromips and nocompression.
20511 (mips_mips16_decl_p): Delete.
20512 (mips_nomips16_decl_p): Delete.
33159866 20513 (mips_get_compress_on_flags): New function.
22c4c869
CM
20514 (mips_get_compress_off_flags): New function.
20515 (mips_get_compress_mode): New function.
20516 (mips_get_compress_on_name): New function.
20517 (mips_get_compress_off_name): New function.
20518 (mips_insert_attributes): Support multiple compression types.
20519 (mips_merge_decl_attributes): Likewise.
20520 (umips_12bit_offset_address_p): New function.
20521 (mips_start_function_definition): Emit .set micromips directive.
20522 (mips_call_may_need_jalx_p): New function.
20523 (mips_function_ok_for_sibcall): Add microMIPS support.
20524 (mips_print_operand_punctuation): Support short delay slots and
20525 compact jumps.
20526 (umips_swm_mask, umips_swm_encoding): New.
20527 (umips_build_save_restore): New function.
20528 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
20529 (was_mips16_p): Remove.
20530 (old_compression_mode): New.
20531 (mips_set_compression_mode): New function.
20532 (mips_set_current_function): Add microMIPS support.
20533 (mips_option_override): Likewise.
20534 (umips_save_restore_pattern_p): New function.
20535 (umips_output_save_restore): New function.
20536 (umips_load_store_pair_p_1): New function.
20537 (umips_load_store_pair_p): New function.
20538 (umips_output_load_store_pair_1): New function.
20539 (umips_output_load_store_pair): New function.
20540 (umips_movep_target_p) New function.
20541 (mips_prepare_pch_save): Add microMIPS support.
20542 * config/mips/mips.h (TARGET_COMPRESSION): New.
20543 (TARGET_CPU_CPP_BUILTINS): Update macro
20544 to use new compression flags and to support microMIPS.
20545 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
20546 (MIPS_ARCH_FLOAT_SPEC): Likewise.
20547 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
20548 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
20549 (ASM_SPEC): Support mmicromips and mno-micromips.
20550 (M16STORE_REG_P): New macro.
20551 (MIPS_CALL): Support TARGET_MICROMIPS.
20552 (MICROMIPS_J): New macro.
20553 (mips_base_mips16): Rename this...
20554 (mips_base_compression_flags): ...to this.
20555 (UMIPS_12BIT_OFFSET_P): New macro.
20556 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
20557 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
205582013-03-20 Richard Biener <rguenther@suse.de>
20559
20560 PR tree-optimization/56661
20561 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
20562 the result does not have to be distinct.
20563
54714c68
RB
205642013-03-20 Richard Biener <rguenther@suse.de>
20565
20566 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
20567 remap_gimple_op_r.
20568
cca1130d 205692013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 20570 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
20571
20572 PR rtl-optimization/56605
20573 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
20574
2a930377
UB
205752013-03-20 Uros Bizjak <ubizjak@gmail.com>
20576
20577 PR bootstrap/56656
20578 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
20579 that require movd instead of movq.
20580
d6d305fe
RB
205812013-03-20 Richard Biener <rguenther@suse.de>
20582
20583 * tree-ssa-structalias.c (struct variable_info): Add pointer
20584 to the first field of an aggregate with sub-vars. Make
20585 this and the pointer to the next subfield its ID.
20586 (vi_next): New function.
20587 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
20588 storedanything_id, integer_id): Increment by one.
20589 (new_var_info, get_call_vi, lookup_call_clobber_vi,
20590 get_call_clobber_vi): Adjust.
20591 (solution_set_expand): Simplify and speedup.
20592 (solution_set_add): Inline into ...
20593 (set_union_with_increment): ... this. Adjust accordingly.
20594 (do_sd_constraint): Likewise.
20595 (do_ds_constraint): Likewise.
20596 (do_complex_constraint): Simplify.
20597 (build_pred_graph): Adjust.
20598 (solve_graph): Likewise. Simplify and speedup.
20599 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
20600 get_constraint_for_component_ref, get_constraint_for_1,
20601 first_vi_for_offset, first_or_preceding_vi_for_offset,
20602 create_function_info_for, create_variable_info_for_1,
20603 create_variable_info_for, intra_create_variable_infos): Adjust.
20604 (init_base_vars): Push NULL for ID zero.
20605 (compute_points_to_sets): Adjust.
20606
a271b42d
RB
206072013-03-20 Richard Biener <rguenther@suse.de>
20608
20609 * cfgloop.c (verify_loop_structure): Streamline and avoid
20610 ICEing on corrupt loop tree.
20611 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
20612 loop tree.
20613
ebd65954
RB
206142013-03-20 Richard Biener <rguenther@suse.de>
20615
20616 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
20617 check whether an SSA update is needed.
20618
4547b7ee
RS
206192013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
20620
20621 * config/mips/constraints.md (T): Rename to...
20622 (Yf): ...this.
20623 (U): Rename to...
20624 (Yd): ...this.
20625 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
20626 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
20627
0b8cdc58
IB
206282013-03-19 Ian Bolton <ian.bolton@arm.com>
20629
20630 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
20631 (*subsi3_carryin_uxtw): Likewise.
20632
5977a10d
IB
206332013-03-19 Ian Bolton <ian.bolton@arm.com>
20634
20635 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
20636 (*rorsi3_insn_uxtw): Likewise.
20637
bd83ff2c
IB
206382013-03-19 Ian Bolton <ian.bolton@arm.com>
20639
20640 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
20641 (*extrsi5_insn_uxtw): Likewise.
20642
ba65123c
RB
206432013-03-19 Richard Biener <rguenther@suse.de>
20644
20645 PR tree-optimization/56273
20646 * passes.c (init_optimization_passes): Move second VRP after DOM.
20647
2eac0476
UB
206482013-03-19 Uros Bizjak <ubizjak@gmail.com>
20649
20650 * config/i386/i386.md (*movti_internal): Merge from
20651 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
20652 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
20653 nox64 isa attributes.
20654
6e55eda7
RB
206552013-03-18 Richard Biener <rguenther@suse.de>
20656
20657 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
20658 (unite): Likewise.
20659 (merge_node_constraints): Likewise.
20660 (build_succ_graph): Likewise.
20661 (valid_graph_edge): Inline into single caller.
20662 (unify_nodes): Likewise. Use bitmap_set_bit return value
20663 and cache varinfo.
20664 (scc_visit): Fix formatting and variable use.
20665 (do_sd_constraint): Use gcc_checking_assert.
20666 (do_ds_constraint): Likewise.
20667 (do_complex_constraint): Likewise.
20668 (condense_visit): Likewise. Cleanup.
20669 (dump_pred_graph): New function.
20670 (perform_var_substitution): Dump the pred-graph before
20671 variable substitution.
20672 (find_equivalent_node): Use gcc_checking_assert.
20673 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
20674
4bdd44c4
RB
206752013-03-18 Richard Biener <rguenther@suse.de>
20676
20677 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
20678 Remove cond_expr_stmt_list argument and do not gimplify the
20679 built expression.
20680 (vect_loop_versioning): Adjust.
20681 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20682 Cleanup to use less temporaries.
20683 (vect_create_data_ref_ptr): Cleanup.
20684
38c56a5b
JJ
206852013-03-18 Jakub Jelinek <jakub@redhat.com>
20686
20687 PR tree-optimization/56635
20688 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
20689 require types_compatible_p types.
20690
20b2e6a0
NC
206912013-03-18 Nick Clifton <nickc@redhat.com>
20692
a6178a25
NC
20693 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
20694 spurious backslash.
20695
20b2e6a0
NC
20696 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
20697 Add missing line to comment describing function.
20698
92608d0e
RB
206992013-03-18 Richard Biener <rguenther@suse.de>
20700
20701 PR tree-optimization/56210
20702 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
20703 Handle string / character search functions.
20704 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
20705
31348d52
RB
207062013-03-18 Richard Biener <rguenther@suse.de>
20707
20708 PR middle-end/56483
20709 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
20710 and implement properly.
20711 * gimple.h (gimple_cond_single_var_p): Remove.
20712
fcac74a1
RB
207132013-03-18 Richard Biener <rguenther@suse.de>
20714
20715 * tree-data-ref.h (find_data_references_in_loop): Declare.
20716 * tree-data-ref.c (get_references_in_stmt): Use a stack
20717 vector pre-allocated in the callers.
20718 (find_data_references_in_stmt): Adjust.
20719 (graphite_find_data_references_in_stmt): Likewise.
20720 (create_rdg_vertices): Likewise.
20721 (find_data_references_in_loop): Export.
20722 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
20723 Compute dependences here...
20724 (vect_analyze_data_refs): ...not here. When we encounter
20725 a non-vectorizable data reference in basic-block vectorization
20726 truncate the data reference vector. Do not bother to
20727 fixup data-dependence information for gather loads.
20728 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
20729 of data references, as reported.
20730
0d5a1b56
RB
207312013-03-18 Richard Biener <rguenther@suse.de>
20732
20733 PR tree-optimization/3713
20734 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
20735 has_constants and expr.
20736 (stmt_has_constants): Properly valueize SSA names when deciding
20737 whether the stmt has constants.
20738
789c34e3
RB
207392013-03-18 Richard Biener <rguenther@suse.de>
20740
20741 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
20742 whole function when there is nothing to do.
20743 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
20744 * tree-vectorizer.c (vectorize_loops): Update virtual and
20745 loop-closed SSA once.
20746 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
20747
076b4605
RB
207482013-03-18 Richard Biener <rguenther@suse.de>
20749
20750 PR middle-end/56113
20751 * domwalk.c (bb_postorder): New global static.
20752 (cmp_bb_postorder): New function.
20753 (walk_dominator_tree): Replace scheme imposing an order for
20754 visiting dominator sons by one sorting them at the time they
20755 are pushed on the stack.
20756
bdb01696
RB
207572013-03-18 Richard Biener <rguenther@suse.de>
20758
20759 PR tree-optimization/39326
20760 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
20761 (struct mem_ref): Replace mem member with ao_ref typed member.
20762 (MEM_ANALYZABLE): Adjust.
20763 (memref_eq): Likewise.
20764 (mem_ref_alloc): Likewise.
20765 (gather_mem_refs_stmt): Likewise.
20766 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
20767 (execute_sm_if_changed_flag_set): Adjust.
20768 (execute_sm): Likewise.
20769 (ref_always_accessed_p): Likewise.
20770 (refs_independent_p): Likewise.
20771 (can_sm_ref_p): Likewise.
20772
12d2dc5e
JJ
207732013-03-18 Jakub Jelinek <jakub@redhat.com>
20774
20775 PR c/56566
20776 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
20777 return 1 even for !unsignedp.
20778
286fb677
UB
207792013-03-17 Uros Bizjak <ubizjak@gmail.com>
20780
20781 * config/i386/i386.md (isa): Add x64 and nox64.
20782 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
20783 (*pushtf): Enable *roF alternative for x64 isa only.
20784 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
20785 mode attribute of integer alternatives to DImode for TARGET_64BIT.
20786 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
20787 (*movtf_internal): Merge from *movtf_internal_rex64 and
20788 *movtf_internal_sse. Use x64 and nox64 isa attributes.
20789 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
20790 nox64 isa attributes.
20791 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
20792 nox64 isa attributes.
20793 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
20794
88b97037
UB
207952013-03-17 Uros Bizjak <ubizjak@gmail.com>
20796
20797 * config/alpha/alpha.c (TARGET_LRA_P): New define.
20798
9f4f1735
JJ
207992013-03-17 Jakub Jelinek <jakub@redhat.com>
20800
20801 PR target/56640
20802 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
20803 class names. Remove trailing comma after "ALL_REGS".
20804
48f4a6fa
JH
208052013-03-16 Jan Hubicka <jh@suse.cz>
20806
20807 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
20808 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
20809 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
20810 of cgraph_get_create_node.
20811 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20812
98e81123
JM
208132013-03-16 Jason Merrill <jason@redhat.com>
20814
20815 PR debug/49090
20816 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
20817 with DW_AT_default_value.
20818
8a298c04
JJ
208192013-03-16 Jakub Jelinek <jakub@redhat.com>
20820
20821 * BASE-VER: Set to 4.9.0.
20822
4323afa0
AK
208232013-03-14 Andi Kleen <ak@linux.intel.com>
20824
20825 PR target/56619
20826 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
20827 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
20828 Document _x* TSX intrinsics.
20829
b3c0d469
JJ
208302013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
20831 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
20832
20833 * configure.ac: Add MicroBlaze TLS support detection.
20834 * configure: Regenerate.
88b97037
UB
20835 * config/microblaze/microblaze-protos.h
20836 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
20837 symbol_mentioned_p, label_mentioned_p): Add prototypes.
20838 * config/microblaze/microblaze.c (microblaze_address_type): Add
20839 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
20840 (microblaze_address_info): Add tls_reloc.
20841 (TARGET_HAVE_TLS): Define.
20842 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
20843 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
20844 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
20845 load_tls_operand, microblaze_call_tls_get_addr,
20846 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
20847 (microblaze_classify_unspec): Handle UNSPEC_TLS.
20848 (get_base_reg): Use microblaze_tls_symbol_p.
20849 (microblaze_classify_address): Handle TLS.
88b97037
UB
20850 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
20851 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
20852 (microblaze_legitimize_address): Handle TLS.
20853 (microblaze_address_insns): Handle ADDRESS_TLS.
20854 (pic_address_needs_scratch): Handle TLS.
20855 (print_operand_address): Handle TLS.
20856 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
20857 (microblaze_expand_move): Handle TLS.
88b97037
UB
20858 (microblaze_legitimate_constant_p): Check
20859 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
20860 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
20861 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
20862 (PIC_OFFSET_TABLE_REGNUM): Set.
20863 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
20864 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
20865 (addsi3, movsi_internal2, movdf_internal): Update constraints
20866 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
20867 (move_operand): Redefine as move_src_operand,
20868 check microblaze_tls_referenced_p.
8cc9a5a5 20869
d803a491
IB
208702013-03-14 Ian Bolton <ian.bolton@arm.com>
20871
20872 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
20873 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
20874
a8504f22
IB
208752013-03-14 Ian Bolton <ian.bolton@arm.com>
20876
20877 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
20878 CC mode for AND.
20879
df2dfaea
JJ
208802013-03-14 Jakub Jelinek <jakub@redhat.com>
20881
fbd28bc3
JJ
20882 PR tree-optimization/53265
20883 * common.opt (Waggressive-loop-optimizations): New option.
20884 * tree-ssa-loop-niter.c: Include tree-pass.h.
20885 (do_warn_aggressive_loop_optimizations): New function.
20886 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
20887 if number_of_latch_executions returned constant.
20888 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
20889 early. If number_of_latch_executions returned constant, set
20890 nb_iterations_upper_bound back to it.
20891 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
20892 field.
20893 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
20894 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
20895
df2dfaea
JJ
20896 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
20897 (MULTILIB_OSDIRNAMES): Set.
20898 * genmultilib: If defaultosdirname doesn't start with :: , set
20899 defaultosdirname2 instead, clear it and emit two . multilib_raw
20900 entries instead of just one.
20901
ee0d2b68
KK
209022013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
20903
20904 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
20905 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
20906 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
20907 (SUBTARGET_OVERRIDE_OPTIONS): New.
20908
decc676e
OE
209092013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
20910
20911 PR target/49880
20912 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
20913 (musermode): Convert to Var(TARGET_USERMODE).
20914 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
20915 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
20916 * config/sh/sh.c (sh_option_override): Use
20917 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
20918 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
20919 condition.
20920 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
20921 TARGET_SH4.
20922 (udivsi3_i4_single, divsi3_i4_single): Use
20923 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
20924
f4b719c7
DK
209252013-03-13 Dave Korn <dave.korn.cygwin@....>
20926
20927 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
20928 default setting.
20929
c40eced0
RB
209302013-03-13 Richard Biener <rguenther@suse.de>
20931
20932 PR tree-optimization/56608
20933 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
20934 calls when vectorizing basic-blocks.
20935
1bfa5973
JJ
209362013-03-13 Jakub Jelinek <jakub@redhat.com>
20937
20938 PR plugins/45078
20939 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
20940 tm_file.
20941
6fcf5434
JJ
209422013-03-12 Jakub Jelinek <jakub@redhat.com>
20943
20944 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
20945
4f38fa8c
JH
209462013-03-11 Jan Hubicka <jh@suse.cz>
20947
20948 PR lto/56557
20949 * lto-streamer-out.c (output_symbol_p): Skip references from
20950 constructors of external variables.
20951
c5c5ba89
JH
209522013-03-11 Jan Hubicka <jh@suse.cz>
20953
20954 PR middle-end/56571
20955 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
20956 from pseudos.
20957 * emit-rtl.c (verify_rtx_sharing): Likewise.
20958 (copy_insn_1): Likewise.
20959 * rtl.c (copy_rtx): Likewise.
20960
c2a939b1
GJL
209612013-03-11 Georg-Johann Lay <avr@gjlay.de>
20962
20963 PR target/56591
20964 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
20965 output_operand_lossage message.
88b97037 20966
3c3279fb
RE
209672013-03-11 Richard Earnshaw <rearnsha@arm.com>
20968
20969 PR target/56470
20970 * arm.c (shift_op): Validate RTL pattern on the fly.
20971 (arm_print_operand, case 'S'): Don't use shift_operator to validate
20972 the RTL.
20973
aef5ef9d
JDA
209742013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20975
20976 PR target/56347
20977 * config/pa/pa.md (call_value): Check for calls to powf and direct to
20978 new call patterns that clobber %fr12.
20979 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
20980 split and postreload patterns.
20981 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
20982 registers %fr12 and %fr12R as call used.
20983
456610d3
SB
209842013-03-09 Steven Bosscher <steven@gcc.gnu.org>
20985
20986 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
20987 (canon_address, record_store, replace_read, check_mem_read_rtx,
20988 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
20989 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
20990 rest_of_handle_dse): Likewise.
20991
4b1baac8
RS
209922013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
20993
20994 PR middle-end/56524
20995 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
20996 Add base_optabs.
20997 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
20998 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
20999 (save_optabs_if_changed): Replace with...
21000 (init_tree_optimization_optabs): ...this.
21001 * optabs.c (save_optabs_if_changed): Rename to...
21002 (init_tree_optimization_optabs): ...this. Take the optimization node
21003 as argument. Do nothing if the base optabs are already correct.
21004 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
21005 to recompute optabs.
21006 * function.h (function): Remove optabs field.
21007 * function.c (invoke_set_current_function_hook): Call
21008 init_tree_optimization_optabs. Use the result to initialize
21009 this_fn_optabs.
21010
b7a78683
AH
210112013-02-27 Aldy Hernandez <aldyh@redhat.com>
21012
21013 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
21014 if GTMA_HAS_NO_INSTRUMENTATION.
21015 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
21016 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
21017 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
21018 * gimple-pretty-print.c (dump_gimple_transaction): Handle
21019 GTMA_HAS_NO_INSTRUMENTATION.
21020
6384c29b
JJ
210212013-03-08 Jakub Jelinek <jakub@redhat.com>
21022
21023 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
21024 libasan_preinit.o.
21025
ecd4f20a
MP
210262013-03-08 Marek Polacek <polacek@redhat.com>
21027 Jakub Jelinek <jakub@redhat.com>
21028
21029 PR tree-optimization/56478
21030 * predict.c (is_comparison_with_loop_invariant_p): Change the
21031 type of loop_step to tree.
21032 (predict_loops): Adjust.
21033 (predict_iv_comparison): Perform the computations on double_ints.
21034
64366d35
RB
210352013-03-08 Richard Biener <rguenther@suse.de>
21036
21037 PR tree-optimization/56570
21038 * tree-cfg.c (verify_expr_location_1): Verify locations for
21039 DECL_DEBUG_EXPR.
21040 * tree-sra.c (create_access_replacement): Strip locations
21041 from DECL_DEBUG_EXPRs.
21042
a9d5a059
RB
210432013-03-08 Richard Biener <rguenther@suse.de>
21044
21045 * tree-inline.c (expand_call_inline): Do not associate
21046 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
21047 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
21048
b7aa4e9a
RB
210492013-03-08 Richard Biener <rguenther@suse.de>
21050
21051 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
21052 or block changes with -Og. Fix for location / block encoding
21053 changes and PHI arguments with locations.
21054
c4c2f9fa
SB
210552013-03-07 Steven Bosscher <steven@gcc.gnu.org>
21056
21057 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
21058 for all counters.
21059 (struct output_info): Likewise.
21060 (register_overhead): Remove bad gcc_assert.
21061 (bitmap_find_bit): If there is only a single bitmap element, do not
21062 count a miss as a search.
21063 (print_statistics): Update for counter type changes.
21064 (dump_bitmap_statistics): Likewise. Print headers such that they
21065 are properly lined up with the printed counters.
21066
5bf6606a
JJ
210672013-03-07 Jakub Jelinek <jakub@redhat.com>
21068
21069 PR tree-optimization/56559
21070 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
21071 check that it has only a single use.
21072
2c653d46
RB
210732013-03-07 Richard Biener <rguenther@suse.de>
21074
21075 * doc/invoke.texi (fwhole-program): Discourage use in combination
21076 with -flto.
21077
a72d8780
JJ
210782013-03-06 Jakub Jelinek <jakub@redhat.com>
21079
01a454df
JJ
21080 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
21081
c1781047
JJ
21082 PR tree-optimization/56539
21083 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
21084 instead of GSI_CONTINUE_LINKING as last argument to
21085 force_gimple_operand_gsi. Adjust function comment.
21086
9772c47a
JJ
21087 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
21088 aarch64-cores.def.
21089
a72d8780
JJ
21090 PR middle-end/56548
21091 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
21092 promoted mode, convert the result back to the original mode.
21093
fa5556de
RB
210942013-03-06 Richard Biener <rguenther@suse.de>
21095
21096 PR middle-end/56294
21097 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
21098 (insert_updated_phi_nodes_compare_uids): New function.
21099 (update_ssa): Sort symbols_to_rename after UID before
21100 traversing it to insert PHI nodes.
21101
010403d1
RB
211022013-03-06 Richard Biener <rguenther@suse.de>
21103
21104 PR middle-end/50494
21105 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
21106 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
21107
21108 Revert
21109 2013-02-13 Richard Biener <rguenther@suse.de>
21110
21111 PR lto/50494
21112 * varasm.c (output_constant_def_1): Get the decl representing
21113 the constant as argument.
21114 (output_constant_def): Wrap output_constant_def_1.
21115 (make_decl_rtl): Use output_constant_def_1 with the decl
21116 representing the constant.
21117 (build_constant_desc): Optionally re-use a decl already
21118 representing the constant.
21119 (tree_output_constant_def): Adjust.
21120
3c27ce4c
JY
211212013-03-06 Joey Ye <joey.ye@arm.com>
21122
21123 PR lto/50293
21124 * gcc.c (convert_white_space): New function.
21125 (main): Handles white space in function name.
21126
8f6d1c86
OE
211272013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
21128
21129 PR target/56529
21130 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
21131 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
21132 to SH_DIV_CALL_TABLE for TARGET_SH2.
21133 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
21134 list.
21135 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
21136 call-table options.
21137
798a209f
SA
211382013-03-05 Sterling Augustine <saugustine@google.com>
21139 Cary Coutant <ccoutant@google.com>
21140
21141 PR debug/55364
21142 * dwarf2out.c (resolve_addr): Don't call
21143 remove_loc_list_addr_table_entries a second time for the same
21144 expression.
21145
6cfa417f 211462013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 21147
6cfa417f
JJ
21148 PR debug/56510
21149 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
21150 (avoid_complex_debug_insns): New function.
21151 (expand_debug_locations): Call it.
21152
21153 PR rtl-optimization/56484
21154 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
21155 lifetimes of hard registers on small register class machines.
21156
211572013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
21158
21159 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 21160 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 21161 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
21162 fast_interrupt.
21163 (microblaze_fast_interrupt_function_p): New function.
21164 (microblaze_is_interrupt_handler): Rename to
21165 microblaze_is_interrupt_variant and add fast_interrupt check.
21166 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
21167 (save_restore_insns): Likewise.
21168 (compute_frame_size): Likewise.
21169 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
21170 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
21171 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
21172 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
21173 microblaze_is_interrupt_variant.
21174
731aefac
KT
211752013-03-05 Kai Tietz <ktietz@redhat.com>
21176
21177 * sdbout.c (sdbout_one_type): Switch to current function's section
21178 supporting cold/hot.
21179
a72d8780 211802013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
21181
21182 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
21183 -mxl-reorder.
21184
334e71e8
JJ
211852013-03-05 Jakub Jelinek <jakub@redhat.com>
21186
0b50e654
JJ
21187 PR middle-end/56461
21188 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
21189 if VALGRIND_GET_VBITS is defined, temporarily make object
21190 memory all defined, and restore previous valgrind addressability
21191 and definability afterwards. Free this_object at the end.
21192
4ccf8f43
JJ
21193 PR middle-end/56461
21194 * lra.c (lra): Call lra_clear_live_ranges if live_p,
21195 right before calling lra_create_live_ranges, also call it
21196 when clearing live_p. Only call lra_clear_live_ranges
21197 at the end if live_p.
21198
334e71e8
JJ
21199 PR middle-end/56461
21200 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
21201
9ca966ca
RB
212022013-03-05 Richard Biener <rguenther@suse.de>
21203
21204 PR tree-optimization/56521
21205 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
21206 value-id.
21207
d273b176
SB
212082013-03-05 Steven Bosscher <steven@gcc.gnu.org>
21209
21210 PR c++/55135
21211 * except.h (remove_unreachable_eh_regions): New prototype.
21212 * except.c (remove_eh_handler_splicer): New function, split out
21213 of remove_eh_handler.
21214 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
21215 warning about running it on many EH regions one at a time.
21216 (remove_unreachable_eh_regions_worker): New function, walk the
21217 EH tree in depth-first order and remove non-marked regions.
21218 (remove_unreachable_eh_regions): New function.
21219 * tree-eh.c (mark_reachable_handlers): New function, split out
21220 from remove_unreachable_handlers.
21221 (remove_unreachable_handlers): Use mark_reachable_handlers and
21222 remove_unreachable_eh_regions.
21223 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
21224 and remove_unreachable_eh_regions.
21225
5e7f1aef
RB
212262013-03-05 Richard Biener <rguenther@suse.de>
21227
21228 PR middle-end/56525
21229 * loop-init.c (fix_loop_structure): Remove loops in two stages,
21230 not freeing them until the end.
21231
f276b762
AK
212322013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21233
21234 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
21235
12a43ab8
RB
212362013-03-05 Richard Biener <rguenther@suse.de>
21237
21238 PR tree-optimization/56270
21239 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
21240 of loads after scheduling an SLP instance.
21241
93675444
JJ
212422013-03-05 Jakub Jelinek <jakub@redhat.com>
21243
db4138e3
JJ
21244 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
21245 tic6x.exp.
21246 (check_gcc_parallelize): Run guality.exp as a separate job from
21247 vect.exp with unsorted.exp and $(dg_target_exps) separately from
21248 struct-layout-1.exp with stackalign.exp.
21249
dd3d1ec0
JJ
21250 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
21251
b8d381a3
JJ
21252 PR middle-end/56461
21253 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
21254 load_index sbitmap even if some bit in it isn't set.
21255
b4f9786b
JJ
21256 PR middle-end/56461
21257 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
21258 (discover_iteration_bound_by_body_walk): Change queues to
21259 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
21260 spelling in comment. Call safe_push on queues[bound_index] directly.
21261 Release queues[queue_index] in every iteration unconditionally.
21262 Release bounds vector.
21263
93675444
JJ
21264 PR middle-end/56461
21265 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
21266 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
21267 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
21268 inner_phis vector.
21269
3e492e9c
RB
212702013-03-05 Richard Biener <rguenther@suse.de>
21271
21272 PR lto/56515
21273 * tree-inline.c (remap_blocks_to_null): New function.
21274 (expand_call_inline): When expanding a call stmt without
21275 an associated block inline remap all callee blocks to NULL.
21276
a5d1569a
JJ
212772013-03-05 Jakub Jelinek <jakub@redhat.com>
21278
86efb5cd
JJ
21279 PR rtl-optimization/56494
21280 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
21281 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
21282 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
21283
85f5dbea
JJ
21284 PR middle-end/56461
21285 * sel-sched-ir.c (free_sched_pools): Release
21286 succs_info_pool.stack[succs_info_pool.max_top] vectors too
21287 if succs_info_pool.max_top isn't -1.
21288
a5d1569a
JJ
21289 PR bootstrap/56509
21290 * opts.c (opts_obstack, opts_concat): Moved to...
21291 * opts-common.c (opts_obstack, opts_concat): ... here.
21292
4432aa6c
JJ
212932013-03-04 Jakub Jelinek <jakub@redhat.com>
21294
21295 PR middle-end/56461
21296 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
21297
f3a1fb91
MJ
212982013-03-04 Martin Jambor <mjambor@suse.cz>
21299
21300 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
21301 all appropriate places.
21302
22110e6c
EB
213032013-01-04 Eric Botcazou <ebotcazou@adacore.com>
21304
21305 PR tree-optimization/56424
21306 * ipa-split.c (split_function): Do not set the RSO flag if result is
21307 not by reference and its type is a register type.
21308
a72d8780 213092013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 21310
88b97037 21311 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 21312 (microblaze_legitimate_pic_operand): Likewise
88b97037 21313 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
21314 new function microblaze_legitimate_pic_operand
21315 * config/microblaze/microblaze-protos.h
21316 (microblaze_legitimate_pic_operand): Declare.
21317
a72d8780 213182013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 21319
a72d8780 21320 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 21321 New predicate for supported rtx code types.
a72d8780 21322 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
21323 call_insn_simple_operand predicate.
21324
541d9ac8
JJ
213252013-03-04 Jakub Jelinek <jakub@redhat.com>
21326
5eb010bc
JJ
21327 PR middle-end/56461
21328 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
21329 partitions.ordered_remove.
21330
30862efc
JJ
21331 PR middle-end/56461
21332 * tree-vect-stmts.c (vectorizable_conversion): Don't call
21333 vec_oprnds0.create (1) for modifier == NONE.
21334
8930f723
JJ
21335 PR middle-end/56461
21336 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
21337 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
21338 vec_oprnds1 right before pushing anything to it for
21339 scalar_shift_arg.
21340
541d9ac8
JJ
21341 PR middle-end/56461
21342 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
21343 set nbbs to 0 instead of having separate code path.
21344 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
21345 instead of false as last argument if returning NULL.
21346
7aa7f2e3
SL
213472013-03-03 Sandra Loosemore <sandra@codesourcery.com>
21348
21349 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
21350 the attribute is now called "target" instead of "option".
21351 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
21352 * doc/tm.texi.in (Target Attributes): Likewise document the correct
21353 attribute/pragma name for TARGET_OPTION_VALID_P and
21354 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
21355 * doc/tm.texi: Regenerated.
21356
8930f723 213572013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 21358
8930f723 21359 * config/microblaze/microblaze.c:
cb8a1637 21360 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
21361 * config/microblaze/microblaze.h: Add -mxl-reorder to
21362 DRIVER_SELF_SPECS.
21363 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
21364 instructions emitted if TARGET_REORDER.
88b97037
UB
21365 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
21366 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 21367 separately.
cb8a1637 21368
4dc1d68c
XDL
213692013-03-01 Xinliang David Li <davidxl@google.com>
21370
21371 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
21372 walk length.
21373
689eaba3
JJ
213742013-03-01 Jakub Jelinek <jakub@redhat.com>
21375
9d676bf6
JJ
21376 PR middle-end/56461
21377 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
21378 vector even when returning true. Fix up function comment formatting.
21379
caff7edf
JJ
21380 PR middle-end/56461
21381 * ira-build.c (ira_loop_nodes_count): New variable.
21382 (create_loop_tree_nodes): Initialize it.
21383 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
21384
b6b9227d
JJ
21385 PR middle-end/56461
21386 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
21387 method on dr_chain and result_chain.
21388 * tree-vect-stmts.c (vectorizable_store): Only call
21389 result_chain.create if j == 0.
21390
689eaba3
JJ
21391 PR middle-end/56461
21392 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
21393 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
21394 before overwriting it.
21395
40bf31ed
TB
213962013-03-01 Tobias Burnus <burnus@net-b.de>
21397
21398 * doc/extended.texi (C Extensions): Change order in @menu
21399 to match @node.
21400 (Other MIPS Built-in Functions): Move last MIPS entry before
21401 "picoChip Built-in Functions".
21402 (SH Built-in Functions): Move after RX Built-in Functions.
21403 * doc/gcc.texi (Introduction): Change order in @menu
21404 to match @node.
21405 * doc/md.texi (Constraints): Ditto.
21406 * gty.texi (Type Information): Ditto.
21407 (User-provided marking routines for template types): Make
21408 subsection.
21409 * doc/invoke.texi (AArch64 Options): Move before
21410 "Adapteva Epiphany Options".
21411
e664c61c
KS
214122013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
21413 Jakub Jelinek <jakub@redhat.com>
21414
21415 PR sanitizer/56454
21416 * asan.c (gate_asan): Lookup no_sanitize_address instead of
21417 no_address_safety_analysis attribute.
21418 * doc/extend.texi (no_address_safety_attribute): Rename to
21419 no_sanitize_address attribute, mention no_address_safety_analysis
21420 attribute as deprecated alias.
21421
37b5ec8f
JJ
214222013-02-28 Jakub Jelinek <jakub@redhat.com>
21423
21424 PR middle-end/56461
21425 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
21426 type to vec<vec<tree> > *.
21427 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
21428 to be vec<tree> instead of vec<tree> *, set vec_defs
21429 to vNULL and call vec_defs.create (number_of_vects), adjust other
21430 uses of vec_defs.
21431 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
21432 vectorizable_condition): Adjust vect_get_slp_defs callers.
21433
ba96cdfb
JG
214342013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21435
21436 * config/aarch64/aarch64.c
21437 (aarch64_float_const_representable): Remove unused variable.
21438
6f549691
JG
214392013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21440
21441 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
21442
af55e82d
JG
214432013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21444
21445 * config/aarch64/aarch64-builtins.c
21446 (aarch64_init_simd_builtins): Make static.
21447
1df3f464
JG
214482013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21449
21450 * config/aarch64/aarch64.c
21451 (aarch64_simd_make_constant): Make static.
21452
f8f42513
MJ
214532013-02-28 Martin Jambor <mjambor@suse.cz>
21454
21455 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
21456 with no initialization to the RHS of debug statements.
21457
b48b3fc4
MJ
214582013-02-28 Martin Jambor <mjambor@suse.cz>
21459
21460 PR tree-optimization/56294
21461 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
21462 Adjust dumping.
21463 (get_access_replacement): Do not call create_access_replacement.
21464 Assert a replacement exists.
21465 (get_repl_default_def_ssa_name): Create the replacement declaration
21466 itself.
21467
c3ae224c
RR
214682013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21469
21470 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
21471 final_end_function.
21472
45fa0eef
MP
214732013-02-28 Marek Polacek <polacek@redhat.com>
21474
21475 PR rtl-optimization/56466
21476 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
21477 if we're changing a loop.
21478 (peel_loops_completely): Likewise.
21479
502c067d
PC
214802013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
21481
21482 PR c++/55813
21483 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
21484
ff24afc8
GJL
214852013-02-28 Georg-Johann Lay <avr@gjlay.de>
21486
21487 PR target/56445
21488 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
21489 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
21490 INTX_FTYPE_FX, FX_FTYPE_INTX.
21491 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
21492
c7b1fc1b
GJL
214932013-02-28 Georg-Johann Lay <avr@gjlay.de>
21494
21495 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
21496 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
21497 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
21498 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
21499 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
21500 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
21501 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
21502 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
21503 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
21504 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
21505 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
21506 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
21507 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
21508 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
21509 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
21510 (avrxmega6): Increase max flash segments from 5 to 6.
21511 * config/avr/t-multilib: Regenerate.
21512 * config/avr/avr-tables.opt: Regenerate.
21513 * doc/avr-mmcu.texi: Regenerate.
21514
4a0e3cfe
GJL
215152013-02-28 Georg-Johann Lay <avr@gjlay.de>
21516
21517 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
21518 (avr_device_to_arch): Rename to avr_device_to_ld.
21519 (avr_device_to_as): New prototype.
21520 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
21521 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
21522 * config/avr/driver-avr.c (avr_device_to_as): New.
21523 (avr_device_to_arch): Rename to avr_device_to_ld.
21524
97785e52
JJ
215252013-02-27 Jakub Jelinek <jakub@redhat.com>
21526
3f292312
JJ
21527 PR middle-end/56461
21528 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
21529 method on dr_chain and result_chain.
21530
a344216b
JJ
21531 PR middle-end/56461
21532 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
21533 pointer_set_destroy on not_executed_last_iteration.
21534
f121ad02 21535 PR middle-end/56461
88b97037 21536 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 21537
307f83a3
JJ
21538 PR middle-end/56461
21539 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
21540 FOR_EACH_DEFINED_FUNCTION when freeing state.
21541
e19624ee
JJ
21542 PR middle-end/56461
21543 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
21544 pool_free.
21545 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
21546 overwriting it.
21547
90e709fd
JJ
21548 PR middle-end/56461
21549 * ipa-cp.c (decide_whether_version_node): Call vec_free on
21550 known_aggs[i].items and release known_aggs vector.
21551
97785e52
JJ
21552 PR middle-end/56461
21553 * ipa-reference.c (propagate): Free node_info even for alias nodes.
21554
215552013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 21556
97785e52
JJ
21557 * config/microblaze/microblaze.c (microblaze_emit_compare):
21558 Use xor for EQ/NE comparisions.
21559 * config/microblaze/microblaze.md (cstoresf4): Add constraints
21560 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 21561
6fa5e0ed
JJ
215622013-02-27 Jakub Jelinek <jakub@redhat.com>
21563
21564 PR middle-end/56461
21565 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
21566 vector.
21567 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
21568 vec_safe_push, always update *slot.
21569 (redirect_edge_var_map_clear): Use vec_free.
21570 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
21571 (free_var_map_entry): Use vec_free.
21572 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
21573 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
21574
436a956a
AB
215752013-02-27 Andrey Belevantsev <abel@ispras.ru>
21576
21577 PR middle-end/45472
436a956a
AB
21578 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
21579 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
21580 Reorder tests for speculativeness in the logical and operator.
21581
f5c2caca
JJ
215822013-02-27 Jakub Jelinek <jakub@redhat.com>
21583
0fcb564b
JJ
21584 * incpath.c (add_standard_paths): Use reconcat instead of concat
21585 where appropriate and avoid leaking memory.
21586
dc357798
JJ
21587 * opts.h: Include obstack.h.
21588 (opts_concat): New prototype.
21589 (opts_obstack): New declaration.
21590 * opts.c (opts_concat): New function.
21591 (opts_obstack): New variable.
21592 (init_options_struct): Call gcc_init_obstack on opts_obstack.
21593 (finish_options): Use opts_concat instead of concat
21594 and XOBNEWVEC instead of XNEWVEC.
21595 * opts-common.c (generate_canonical_option, decode_cmdline_option,
21596 generate_option): Likewise.
21597 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
21598 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
21599
f5c2caca
JJ
21600 PR target/56455
21601 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
21602 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
21603
d0163673
JJ
216042013-02-26 Jakub Jelinek <jakub@redhat.com>
21605
21606 PR middle-end/56461
21607 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
21608
b5ad2b8e
JR
216092013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
21610
21611 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
21612 (arm_block_move_unaligned_straight): Likewise.
21613 (arm_adjust_block_mem): Likewise.
21614
9b639e2c
JR
216152013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
21616
21617 PR target/48901
21618 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
21619 temp, cond and label.
21620 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
21621
e13a0ccb
JR
21622 PR target/52500
21623 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
21624 * config/c6x/c6x.h (dbx_register_map): Update declaration.
21625
fbe4f171
JR
21626 PR target/52501
21627 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
21628 of prologue/epilogue functions.
21629
ae006543
JR
21630 PR target/52550
21631 * config/tilegx/tilegx.c (tilegx_expand_prologue):
21632 Remove unused variable cfa_offset.
21633 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
21634
c81369fa
JR
21635 PR target/54639
21636 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
21637 type promotion to unsigned.
21638
f8a8fea7
JR
21639 PR target/54640
21640 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
21641 for HOST_WIDE_INT of 32 bit / same size as int.
21642 (arm_block_move_unaligned_straight): Likewise.
21643 (arm_adjust_block_mem): Likewise.
21644
f8be5169
JR
21645 PR target/54662
21646 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
21647 ALL_CFLAGS.
21648
f1ad3354
MP
216492013-02-26 Marek Polacek <polacek@redhat.com>
21650
21651 PR tree-optimization/56426
88b97037 21652 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 21653
a6af0f42
RB
216542013-02-26 Richard Biener <rguenther@suse.de>
21655
21656 PR target/56444
21657 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
21658 unused variable loops.
21659
aca43c6c
JJ
216602013-02-26 Jakub Jelinek <jakub@redhat.com>
21661
cecbe5d9
JJ
21662 PR tree-optimization/56448
21663 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
21664 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
21665 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
21666 later operands of the references, or even first operand for
21667 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
21668
aca43c6c
JJ
21669 PR tree-optimization/56443
21670 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
21671 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
21672 to type_for_mode langhook.
21673
53e2e141
MT
216742013-02-25 Matt Turner <mattst88@gmail.com>
21675
21676 * doc/invoke.texi: Document r4700.
21677
259ee451
RB
216782013-02-25 Richard Biener <rguenther@suse.de>
21679
21680 PR tree-optimization/56175
21681 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
21682 split out from ...
21683 (simplify_bitwise_binary): ... here. Also guard the conversion
21684 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
21685
6d65e8f1
CM
216862013-02-25 Catherine Moore <clm@codesourcery.com>
21687
21688 Revert:
21689 2013-02-24 Catherine Moore <clm@codesourcery.com>
21690 Maciej W. Rozycki <macro@codesourcery.com>
21691 Tom de Vries <tom@codesourcery.com>
a72d8780 21692 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
21693 Iain Sandoe <iain@codesourcery.com>
21694 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 21695 Chao-ying Fu <fu@mips.com>
88b97037 21696
6d65e8f1 21697 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 21698 Document new function attributes.
6d65e8f1
CM
21699 * doc/invoke.texi (minterlink-compressed, mmicromips,
21700 m14k, m14ke, m14kec): Document new options.
21701 (minterlink-mips16): Update documentation.
21702 * doc/md.texi (ZC, ZD): Document new constraints.
21703 * configure.ac (gcc_cv_as_micromips): Check if linker
21704 supports the .set micromips directive.
21705 * configure: Regenerate.
21706 * config.in: Regenerate.
21707 * config/mips/mips-tables.opt: Regenerate.
21708 * config/mips/micromips.md: New file.
21709 * constraints.md (ZC, AD): New constraints.
21710 * config/mips/predicates.md (movep_src_register): New predicate.
21711 (movep_src_operand): New predicate.
21712 (non_volatile_mem_operand): New predicate.
21713 * config/mips/mips.md (multimem): New type.
21714 (length): Differentiate between 17-bit and 18-bit branch offsets.
21715 (MOVEP1, MOVEP2): New mode iterator.
21716 (mov_<load>l): Use ZC constraint.
21717 (mov_<load>r): Likewise.
21718 (mov_<store>l): Likewise.
21719 (mov_<store>r): Likewise.
21720 (*branch_equality<mode>_inverted): Add microMIPS support.
21721 (*branch_equality<mode>): Likewise.
21722 (*jump_absolute): Likewise.
21723 (indirect_jump_<mode>): Likewise.
21724 (tablejump_<mode>): Likewise.
21725 (<optab>_internal): Likewise.
21726 (sibcall_internal): Likewise.
21727 (sibcall_value_internal): Likewise.
21728 (prefetch): Use constraint ZD.
21729 * config/mips/mips.opt (minterlink-compressed): New option.
21730 (minterlink-mips16): Now an alias for minterlink-compressed.
21731 (mmicromips): New option.
21732 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21733 (compare_and_swap_12): Likewise.
21734 (sync_add<mode>): Likewise.
21735 (sync_<optab>_12): Likewise.
21736 (sync_old_<optab>_12): Likewise.
21737 (sync_new_<optab>_12): Likewise.
21738 (sync_nand_12): Likewise.
21739 (sync_old_nand_12): Likewise.
21740 (sync_new_nand_12): Likewise.
21741 (sync_sub<mode>): Likewise.
21742 (sync_old_add<mode>): Likewise.
21743 (sync_old_sub<mode>): Likewise.
21744 (sync_new_add<mode>): Likewise.
21745 (sync_new_sub<mode>): Likewise.
21746 (sync_<optab><mode>): Likewise.
21747 (sync_old_<optab><mode>): Likewise.
21748 (sync_new_<optab><mode>): Likewise.
21749 (sync_nand<mode>): Likewise.
21750 (sync_old_nand<mode>): Likewise.
21751 (sync_new_nand<mode>): Likewise.
21752 (sync_lock_test_and_set<mode>): Likewise.
21753 (test_and_set_12): Likewise.
21754 (atomic_compare_and_swap<mode>): Likewise.
21755 (atomic_exchange<mode>_llsc): Likewise.
21756 (atomic_fetch_add<mode>_llsc): Likewise.
21757 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21758 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21759 (umips_save_restore_pattern_p): Likewise.
21760 (umips_load_store_pair_p): Likewise.
21761 (umips_output_load_store_pair): Likewise.
21762 (umips_movep_target_p): Likewise.
21763 (umips_12bit_offset_address_p): Likewise.
21764 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21765 (mips_base_mips16): Rename this...
21766 (mips_base_compression_flags): ...to this. Update all uses.
21767 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21768 (mips_mips16_decl_p): Delete.
21769 (mips_nomips16_decl_p): Delete.
21770 (mips_get_compress_on_flags): New function.
21771 (mips_get_compress_off_flags): New function.
21772 (mips_get_compress_mode): New function.
21773 (mips_get_compress_on_name): New function.
21774 (mips_get_compress_off_name): New function.
21775 (mips_insert_attributes): Support multiple compression types.
21776 (mips_merge_decl_attributes): Likewise.
21777 (umips_12bit_offset_address_p): New function.
21778 (mips_start_function_definition): Emit .set micromips directive.
21779 (mips_call_may_need_jalx_p): New function.
21780 (mips_function_ok_for_sibcall): Add microMIPS support.
21781 (mips_print_operand_punctuation): Support short delay slots and
21782 compact jumps.
21783 (umips_swm_mask, umips_swm_encoding): New.
21784 (umips_build_save_restore): New function.
21785 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21786 (was_mips16_p): Remove.
21787 (old_compression_mode): New.
21788 (mips_set_compression_mode): New function.
21789 (mips_set_current_function): Add microMIPS support.
21790 (mips_option_override): Likewise.
21791 (umips_save_restore_pattern_p): New function.
21792 (umips_output_save_restore): New function.
21793 (umips_load_store_pair_p_1): New function.
21794 (umips_load_store_pair_p): New function.
21795 (umips_output_load_store_pair_1): New function.
21796 (umips_output_load_store_pair): New function.
21797 (umips_movep_target_p) New function.
21798 (mips_prepare_pch_save): Add microMIPS support.
21799 * config/mips/mips.h (TARGET_COMPRESSION): New.
21800 (TARGET_CPU_CPP_BUILTINS): Update macro
21801 to use new compression flags and to support microMIPS.
21802 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21803 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21804 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21805 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21806 (ASM_SPEC): Support mmicromips and mno-micromips.
21807 (M16STORE_REG_P): New macro.
21808 (MIPS_CALL): Support TARGET_MICROMIPS.
21809 (MICROMIPS_J): New macro.
21810 (mips_base_mips16): Rename this...
21811 (mips_base_compression_flags): ...to this.
21812 (UMIPS_12BIT_OFFSET_P): New macro.
21813 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21814 (MULTILIB_DIRNAMES): Likewise.
21815
5e5df392
TV
218162013-02-25 Tom de Vries <tom@codesourcery.com>
21817
21818 PR rtl-optimization/56131
21819 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
21820 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
21821 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
21822
3fdb53c1
TB
218232013-02-25 Tobias Burnus <burnus@net-b.de>
21824
21825 * doc/invoke.texi (-fsanitize=): Move from optimization
21826 to debugging options.
21827
ed358aea
AB
218282013-02-25 Andrey Belevantsev <abel@ispras.ru>
21829
21830 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
21831
f45e9053
AB
218322013-02-25 Andrey Belevantsev <abel@ispras.ru>
21833 Alexander Monakov <amonakov@ispras.ru>
21834
21835 PR middle-end/56077
21836 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
21837 flush pending lists also on non-jumps. Adjust comment.
21838
6941b508
CM
218392013-02-24 Catherine Moore <clm@codesourcery.com>
21840 Maciej W. Rozycki <macro@codesourcery.com>
21841 Tom de Vries <tom@codesourcery.com>
a72d8780 21842 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
21843 Iain Sandoe <iain@codesourcery.com>
21844 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 21845 Chao-ying Fu <fu@mips.com>
6941b508
CM
21846
21847 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 21848 Document new function attributes.
6941b508
CM
21849 * doc/invoke.texi (minterlink-compressed, mmicromips,
21850 m14k, m14ke, m14kec): Document new options.
21851 (minterlink-mips16): Update documentation.
21852 * doc/md.texi (ZC, ZD): Document new constraints.
21853 * configure.ac (gcc_cv_as_micromips): Check if linker
21854 supports the .set micromips directive.
21855 * configure: Regenerate.
21856 * config.in: Regenerate.
21857 * config/mips/mips-tables.opt: Regenerate.
21858 * config/mips/micromips.md: New file.
21859 * constraints.md (ZC, AD): New constraints.
21860 * config/mips/predicates.md (movep_src_register): New predicate.
21861 (movep_src_operand): New predicate.
21862 (non_volatile_mem_operand): New predicate.
21863 * config/mips/mips.md (multimem): New type.
21864 (length): Differentiate between 17-bit and 18-bit branch offsets.
21865 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 21866 (mov_<load>l): Use ZC constraint.
6941b508
CM
21867 (mov_<load>r): Likewise.
21868 (mov_<store>l): Likewise.
21869 (mov_<store>r): Likewise.
21870 (*branch_equality<mode>_inverted): Add microMIPS support.
21871 (*branch_equality<mode>): Likewise.
21872 (*jump_absolute): Likewise.
21873 (indirect_jump_<mode>): Likewise.
21874 (tablejump_<mode>): Likewise.
21875 (<optab>_internal): Likewise.
21876 (sibcall_internal): Likewise.
21877 (sibcall_value_internal): Likewise.
21878 (prefetch): Use constraint ZD.
21879 * config/mips/mips.opt (minterlink-compressed): New option.
21880 (minterlink-mips16): Now an alias for minterlink-compressed.
21881 (mmicromips): New option.
21882 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21883 (compare_and_swap_12): Likewise.
21884 (sync_add<mode>): Likewise.
21885 (sync_<optab>_12): Likewise.
21886 (sync_old_<optab>_12): Likewise.
21887 (sync_new_<optab>_12): Likewise.
21888 (sync_nand_12): Likewise.
21889 (sync_old_nand_12): Likewise.
21890 (sync_new_nand_12): Likewise.
21891 (sync_sub<mode>): Likewise.
21892 (sync_old_add<mode>): Likewise.
21893 (sync_old_sub<mode>): Likewise.
21894 (sync_new_add<mode>): Likewise.
21895 (sync_new_sub<mode>): Likewise.
21896 (sync_<optab><mode>): Likewise.
21897 (sync_old_<optab><mode>): Likewise.
21898 (sync_new_<optab><mode>): Likewise.
21899 (sync_nand<mode>): Likewise.
21900 (sync_old_nand<mode>): Likewise.
21901 (sync_new_nand<mode>): Likewise.
21902 (sync_lock_test_and_set<mode>): Likewise.
21903 (test_and_set_12): Likewise.
21904 (atomic_compare_and_swap<mode>): Likewise.
21905 (atomic_exchange<mode>_llsc): Likewise.
21906 (atomic_fetch_add<mode>_llsc): Likewise.
21907 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21908 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21909 (umips_save_restore_pattern_p): Likewise.
21910 (umips_load_store_pair_p): Likewise.
21911 (umips_output_load_store_pair): Likewise.
21912 (umips_movep_target_p): Likewise.
21913 (umips_12bit_offset_address_p): Likewise.
21914 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21915 (mips_base_mips16): Rename this...
21916 (mips_base_compression_flags): ...to this. Update all uses.
21917 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21918 (mips_mips16_decl_p): Delete.
21919 (mips_nomips16_decl_p): Delete.
3fdb53c1 21920 (mips_get_compress_on_flags): New function.
6941b508
CM
21921 (mips_get_compress_off_flags): New function.
21922 (mips_get_compress_mode): New function.
21923 (mips_get_compress_on_name): New function.
21924 (mips_get_compress_off_name): New function.
21925 (mips_insert_attributes): Support multiple compression types.
21926 (mips_merge_decl_attributes): Likewise.
21927 (umips_12bit_offset_address_p): New function.
21928 (mips_start_function_definition): Emit .set micromips directive.
21929 (mips_call_may_need_jalx_p): New function.
21930 (mips_function_ok_for_sibcall): Add microMIPS support.
21931 (mips_print_operand_punctuation): Support short delay slots and
21932 compact jumps.
21933 (umips_swm_mask, umips_swm_encoding): New.
21934 (umips_build_save_restore): New function.
21935 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21936 (was_mips16_p): Remove.
21937 (old_compression_mode): New.
21938 (mips_set_compression_mode): New function.
21939 (mips_set_current_function): Add microMIPS support.
21940 (mips_option_override): Likewise.
21941 (umips_save_restore_pattern_p): New function.
21942 (umips_output_save_restore): New function.
21943 (umips_load_store_pair_p_1): New function.
21944 (umips_load_store_pair_p): New function.
21945 (umips_output_load_store_pair_1): New function.
21946 (umips_output_load_store_pair): New function.
21947 (umips_movep_target_p) New function.
21948 (mips_prepare_pch_save): Add microMIPS support.
21949 * config/mips/mips.h (TARGET_COMPRESSION): New.
21950 (TARGET_CPU_CPP_BUILTINS): Update macro
21951 to use new compression flags and to support microMIPS.
21952 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21953 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21954 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21955 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21956 (ASM_SPEC): Support mmicromips and mno-micromips.
21957 (M16STORE_REG_P): New macro.
21958 (MIPS_CALL): Support TARGET_MICROMIPS.
21959 (MICROMIPS_J): New macro.
21960 (mips_base_mips16): Rename this...
21961 (mips_base_compression_flags): ...to this.
21962 (UMIPS_12BIT_OFFSET_P): New macro.
21963 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21964 (MULTILIB_DIRNAMES): Likewise.
21965
cdebbc6d
JJ
219662013-02-24 Jakub Jelinek <jakub@redhat.com>
21967
21968 PR target/52555
21969 * target-globals.c (save_target_globals): For init_reg_sets and
21970 target_reinit remporarily set this_fn_optabs to this_target_optabs.
21971
18c63565
JG
219722013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
21973
21974 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
21975 * config/aarch64/t-aarch64
21976 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
21977
2194f7a2
VM
219782013-02-22 Vladimir Makarov <vmakarov@redhat.com>
21979
21980 PR inline-asm/56148
21981 * lra-constraints.c (process_alt_operands): Reload operand
21982 conflicting with earlier clobber only if no more other conflicting
21983 operands.
21984
7d613735
JJ
219852013-02-22 Jakub Jelinek <jakub@redhat.com>
21986
21987 PR sanitizer/56393
21988 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
21989 if not linking a shared library.
21990
ac8d93a7
SL
219912013-02-22 Seth LaForge <sethml@google.com>
21992
21993 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
21994
e0237780
GY
219952013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
21996
3fdb53c1
TB
21997 * config/arm/arm.md (split for extendsidi): Update condition.
21998 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
21999 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
22000 (qhs_zextenddi_cstr): Likewise.
e0237780 22001
d7fde18c
JJ
220022013-02-21 Jakub Jelinek <jakub@redhat.com>
22003
be63b77d
JJ
22004 PR middle-end/56420
22005 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
22006 avoid signed wrapping.
22007 (expand_mult): Handle properly multiplication by
22008 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
22009 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
22010 in the compiler if coeff is HOST_WIDE_INT_MIN.
22011 (expand_divmod): Don't make ext_op1 static, change it's type to
22012 uhwi. Avoid undefined behavior in -INTVAL (op1).
22013
d7fde18c
JJ
22014 PR rtl-optimization/50339
22015 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
22016 field.
22017 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
22018 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
22019 into splitting_ashiftrt field.
22020 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
22021 ASHIFTRT.
22022 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
22023 choices.
22024
6aad4455
AH
220252013-02-20 Aldy Hernandez <aldyh@redhat.com>
22026
22027 PR middle-end/56108
22028 * trans-mem.c (execute_tm_mark): Do not expand transactions that
22029 are sure to go irrevocable.
22030
38fe784d
HPN
220312013-02-21 Hans-Peter Nilsson <hp@axis.com>
22032
22033 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
22034 scalars are valid operands.
22035
0fd44da3
MJ
220362013-02-21 Martin Jambor <mjambor@suse.cz>
22037
22038 PR tree-optimization/56310
22039 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
22040 only matching indices and non-negative final offsets.
22041 (intersect_aggregates_with_edge): Pass src_idx to
22042 agg_replacements_to_vector. Pass src_idx insstead of index to
22043 intersect_with_agg_replacements.
22044
7a92038b
MJ
220452013-02-21 Martin Jambor <mjambor@suse.cz>
22046
22047 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
22048 instead of hard-wired defaults.
22049
c0da9c37
MR
220502013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
22051
22052 * doc/invoke.texi (MIPS Options): Update documentation of the
22053 floating-point multiply-accumulate instruction restrictions.
22054
d247ea0c 220552013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
22056
22057 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
22058 asan_shadow_offset on x86_64 linux.
22059
22deefcb
RB
220602013-02-21 Richard Biener <rguenther@suse.de>
22061
22062 PR tree-optimization/56415
22063 Revert
22064 2013-02-11 Richard Biener <rguenther@suse.de>
22065
22066 PR tree-optimization/56273
22067 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
22068 first VRP run.
22069
7bcc6e75
JJ
220702013-02-21 Jakub Jelinek <jakub@redhat.com>
22071
a0ad148f
JJ
22072 PR bootstrap/56258
22073 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
22074 instead of @itemx.
22075
7bcc6e75
JJ
22076 PR inline-asm/56405
22077 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
22078 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
22079
a0a7b611
JH
220802013-02-20 Jan Hubicka <jh@suse.cz>
22081
22082 PR tree-optimization/56265
88b97037
UB
22083 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
22084 when target is referenced for first time.
a0a7b611 22085
c0e50f72
RB
220862013-02-20 Richard Biener <rguenther@suse.de>
22087
22088 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
22089 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
22090 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
22091 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
22092 not return anything.
22093 (rename_ssa_copies): Do not remove unused locals.
22094 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 22095 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
22096 * passes.c (execute_function_todo): Do not schedule unused locals
22097 removal if cleanup_tree_cfg did something.
22098 * tree-ssa-live.c (remove_unused_locals): Dump statistics
22099 about the number of removed locals.
22100
a52ca739
RB
221012013-02-20 Richard Biener <rguenther@suse.de>
22102
22103 PR tree-optimization/56398
88b97037 22104 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 22105
ec9c9d1b
MJ
221062013-02-20 Martin Jambor <mjambor@suse.cz>
22107
22108 PR tree-optimization/55334
22109 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
22110 restricted pointers to arrays.
22111
e91c8ed6 221122013-02-20 Richard Biener <rguenther@suse.de>
88b97037 22113 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
22114
22115 PR tree-optimization/56396
22116 * tree-ssa-ccp.c (n_const_val): New static variable.
22117 (get_value): Return NULL for SSA names we don't have a lattice
22118 entry for.
22119 (ccp_initialize): Initialize n_const_val.
22120 * tree-ssa-copy.c (n_copy_of): New static variable.
22121 (init_copy_prop): Initialize n_copy_of.
22122 (get_value): Return NULL_TREE for SSA names we don't have a
22123 lattice entry for.
22124
3d916479
MJ
221252013-02-20 Martin Jambor <mjambor@suse.cz>
22126
22127 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
22128
71a86758
RB
221292013-02-20 Richard Biener <rguenther@suse.de>
22130
22131 * genpreds.c (write_lookup_constraint): Do not compare first
22132 letter of the constraint again.
22133
79836a12
RB
221342013-02-20 Richard Biener <rguenther@suse.de>
22135
22136 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
22137 and ceil_log2.
22138 (get_use_iv_cost): Terminate hashtable walk when coming across
22139 an empty entry.
22140
bbe4fb2c
IZ
221412013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
22142
22143 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
22144 reassociation for avx2 targets.
22145
a72d8780 221462012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 22147
c77f83d5
EI
22148 * config/microblaze/microblaze.c: microblaze_has_clz = 0
22149 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 22150 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
22151 version and TARGET_PATTERN_COMPARE check
22152 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 22153
a72d8780 221542012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 22155
a72d8780 22156 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
22157 function before branching.
22158
242387fa
AB
221592012-02-19 Andrey Belevantsev <abel@ispras.ru>
22160
22161 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
22162 DUMP_INSN_RTX_UID.
22163 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
22164
b4979ab9
AB
221652012-02-19 Andrey Belevantsev <abel@ispras.ru>
22166
22167 PR middle-end/55889
b4979ab9
AB
22168 * sel-sched.c: Include ira.h.
22169 (implicit_clobber_conflict_p): New function.
22170 (moveup_expr): Use it.
88b97037 22171 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 22172
24d63016
RB
221732013-02-19 Richard Biener <rguenther@suse.de>
22174
22175 PR tree-optimization/56384
22176 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
22177 (vn_hash_type): Split out from ...
22178 (vn_hash_constant_with_type): ... here.
22179 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
22180 (vn_phi_eq): Compare types from vn_phi_s structure.
22181 (vn_phi_lookup): Populate vn_phi_s type.
22182 (vn_phi_insert): Likewise.
22183
a475fd3d
JJ
221842013-02-19 Jakub Jelinek <jakub@redhat.com>
22185
47cc28f5
JJ
22186 PR tree-optimization/56350
22187 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
22188 if haven't found reduction or nested cycle operand, rather than
22189 asserting we must find it.
22190
a475fd3d
JJ
22191 PR tree-optimization/56381
22192 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
22193 to fold_build3.
22194
221952013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
22196 Jakub Jelinek <jakub@redhat.com>
22197
22198 PR target/52555
22199 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
22200 (swap_optab_enable): Same.
22201 (init_all_optabs): Use argument instead of global.
88b97037 22202 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
22203 * expr.h (init_all_optabs): Add argument to prototype.
22204 (TREE_OPTIMIZATION_OPTABS): New.
22205 (save_optabs_if_changed): Protoize.
22206 * optabs.h: Declare this_fn_optabs.
22207 * optabs.c (save_optabs_if_changed): New.
22208 Declare this_fn_optabs.
22209 (init_optabs): Add argument to init_all_optabs() call.
22210 * function.c (invoke_set_current_function_hook): Handle per
22211 function optabs.
22212 * function.h (struct function): New field optabs.
22213 * config/mips/mips.c (mips_set_mips16_mode): Handle when
22214 optimization_current_node has changed.
22215 * target-globals.h (save_target_globals_default_opts): Protoize.
22216 * target-globals.c (save_target_globals_default_opts): New.
22217
3f587ca3
JDA
222182013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22219
22220 PR target/56347
22221 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
22222 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
22223
22224 PR target/56214
22225 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
22226 and HImode, require all displacements to be an integer multiple of
22227 their mode size.
ceaca33e
JDA
22228 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
22229 only allow QImode and HImode when reload is in progress and strict is
22230 true. Likewise for symbolic addresses. Use base14_operand to check
22231 displacements in REG+BASE addresses.
22232
fe0b4796
RB
222332013-02-18 Richard Biener <rguenther@suse.de>
22234
22235 PR tree-optimization/56366
22236 * tree-vect-loop.c (get_initial_def_for_induction): Properly
22237 handle sign-conversion of outer-loop initial induction value.
22238
6aaf596b
RB
222392013-02-18 Richard Biener <rguenther@suse.de>
22240
73db8ff1 22241 PR middle-end/56349
6aaf596b
RB
22242 * cfghooks.c (merge_blocks): If we merge a latch into another
22243 block adjust references to it.
22244 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
22245 (verify_loop_structure): Verify that a recorded latch is in fact
22246 a latch.
22247
5e97dfb6
RB
222482013-02-18 Richard Biener <rguenther@suse.de>
22249
22250 PR tree-optimization/56321
22251 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
22252 order SSA name release and virtual operand unlinking.
22253
825527e8
EI
222542013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
22255
22256 * config/microblaze/microblaze.md (save_stack_block): Define.
22257 (restore_stack_block): Likewise.
22258
debd11d9
EI
222592013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
22260
22261 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
22262 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
22263 * config/microblaze/microblaze.c (microblaze_option_override):
22264 Bail out early for PIC modes when target does not support PIC.
22265
8ec77be0
EI
222662013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
22267
88b97037 22268 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
22269 Replace with a microblaze version.
22270 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 22271 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
22272 microblaze.
22273
b41288b3
JJ
222742013-02-16 Jakub Jelinek <jakub@redhat.com>
22275 Dodji Seketeli <dodji@redhat.com>
22276
22277 PR asan/56330
88b97037 22278 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
22279 (instrument_mem_region_access): Do not forget to always put
22280 instrumentation of the of 'base' and 'base + len' in a "if (len !=
22281 0) statement, even for cases where either 'base' or 'base + len'
22282 are not instrumented -- because they have been previously
22283 instrumented. Simplify the logic by putting all the statements
22284 instrument 'base + len' inside a sequence, and then insert that
22285 sequence right before the current insertion point. Then, to
22286 instrument 'base + len', just get an iterator on that statement.
22287 And do not forget to update the pointer to iterator the function
22288 received as argument.
22289
47918951
VM
222902013-02-15 Vladimir Makarov <vmakarov@redhat.com>
22291
22292 PR rtl-optimization/56348
22293 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
22294
3fb7c699
SB
222952013-02-15 Steven Bosscher <steven@gcc.gnu.org>
22296
22297 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
22298 (clean_graph_dump_file): Pass base to start_graph_dump.
22299
576fe41a
RH
223002013-02-14 Richard Henderson <rth@redhat.com>
22301
22302 PR target/55941
22303 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
22304
bb3accfa
SB
223052013-02-14 Steven Bosscher <steven@gcc.gnu.org>
22306
22307 * collect2-aix.h: Define F_LOADONLY.
22308
03143140
RB
223092013-02-14 Richard Biener <rguenther@suse.de>
22310
22311 PR lto/50494
22312 * varasm.c (output_constant_def_1): Get the decl representing
22313 the constant as argument.
22314 (output_constant_def): Wrap output_constant_def_1.
22315 (make_decl_rtl): Use output_constant_def_1 with the decl
22316 representing the constant.
22317 (build_constant_desc): Optionally re-use a decl already
22318 representing the constant.
22319 (tree_output_constant_def): Adjust.
22320
8fb06726
DS
223212013-02-14 Dodji Seketeli <dodji@redhat.com>
22322
22323 Fix an asan crash
22324 * asan.c (instrument_builtin_call): Really put the length of the
22325 second source argument into src1_len.
22326
c4bfe8bf
JJ
223272013-02-13 Jakub Jelinek <jakub@redhat.com>
22328
22329 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
22330 argument. If it is false, don't create edge from then_bb to
22331 fallthru_bb.
22332 (insert_if_then_before_iter): Pass true to it.
22333 (build_check_stmt): Pass false to it.
22334 (transform_statements): Flush hash table only on extended basic
22335 block boundaries, rather than at the beginning of every bb.
22336 Don't flush hash table on nonfreeing_call_p calls.
22337 * tree-flow.h (nonfreeing_call_p): New prototype.
22338 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
22339
7afe2801
DM
223402013-02-13 David S. Miller <davem@davemloft.net>
22341
22342 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
22343
70cc3288
VM
223442013-02-13 Vladimir Makarov <vmakarov@redhat.com>
22345
22346 PR target/56184
22347 * ira.c (max_regno_before_ira): Move from ...
22348 (ira): ... here.
22349 (fix_reg_equiv_init): Use max_regno_before_ira instead of
22350 vec_safe_length.
22351
6422242b
JJ
223522013-02-13 Jakub Jelinek <jakub@redhat.com>
22353
22354 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
22355
976a81ee
RB
223562013-02-13 Richard Biener <rguenther@suse.de>
22357
22358 PR lto/56295
22359 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
22360 globals in MEM_REFs.
22361
c1874a87
RB
223622013-02-13 Richard Biener <rguenther@suse.de>
22363
22364 * loop-init.c (loop_optimizer_init): Clear loop state when
22365 re-initializing preserved loops.
22366 * loop-unswitch.c (unswitch_single_loop): Return whether
22367 we unswitched the loop. Do not verify loop state here.
88b97037 22368 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 22369
b4ab7d34
KS
223702013-02-13 Kostya Serebryany <kcc@google.com>
22371
88b97037
UB
22372 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
22373 on x86_64 linux.
b4ab7d34
KS
22374 * sanitizer.def: Rename __asan_init to __asan_init_v1.
22375
bdcbe80c
DS
223762013-02-12 Dodji Seketeli <dodji@redhat.com>
22377
22378 Avoid instrumenting duplicated memory access in the same basic block
22379 * Makefile.in (asan.o): Add new dependency on hash-table.h
22380 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
22381 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
22382 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
22383 (free_mem_ref_resources, has_mem_ref_been_instrumented)
22384 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
22385 (get_mem_ref_of_assignment): New functions.
22386 (get_mem_refs_of_builtin_call): Extract from
22387 instrument_builtin_call and tweak a little bit to make it fit with
22388 the new signature.
22389 (instrument_builtin_call): Use the new
22390 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
22391 of is_gimple_builtin_call.
22392 (instrument_derefs, instrument_mem_region_access): Insert the
22393 instrumented memory reference into the hash table.
22394 (maybe_instrument_assignment): Renamed instrument_assignment into
22395 this, and change it to advance the iterator when instrumentation
22396 actually happened and return true in that case. This makes it
22397 homogeneous with maybe_instrument_assignment, and thus give a
22398 chance to callers to be more 'regular'.
22399 (transform_statements): Clear the memory reference hash table
22400 whenever we enter a new BB, when we cross a function call, or when
22401 we are done transforming statements. Use
22402 maybe_instrument_assignment instead of instrumentation. No more
22403 need to special case maybe_instrument_assignment and advance the
22404 iterator after calling it; it's now handled just like
22405 maybe_instrument_call. Update comment.
22406
4861a1f7
RB
224072013-02-13 Richard Biener <rguenther@suse.de>
22408
22409 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
22410 Fix loop discovery code.
22411
1c86bd80
VM
224122013-02-12 Vladimir Makarov <vmakarov@redhat.com>
22413
22414 PR inline-asm/56148
22415 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 22416 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
22417 the operand is not reloaded. Prefer to reload conflicting operand
22418 if earlyclobber and matching operands are the same.
22419
7cbda518
RB
224202013-02-12 Richard Biener <rguenther@suse.de>
22421
22422 PR lto/56297
22423 * lto-streamer-out.c (write_symbol): Do not output symbols
22424 for hard register variables.
22425
e68a4ef6
GJL
224262013-02-12 Georg-Johann Lay <avr@gjlay.de>
22427
22428 PR target/54222
22429 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
22430 (umulsidi3_insn, mulsidi3_insn): New insns.
22431
a72d8780 224322013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
22433
22434 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
22435 (struct tune_params): Add vec_costs field.
22436 * config/arm/arm.c (arm_builtin_vectorization_cost)
22437 (arm_add_stmt_cost): New functions.
22438 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
22439 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
22440 (arm_default_vec_cost): New struct of type cpu_vec_costs.
22441 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22442 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
22443 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
22444 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
22445
43320568
RB
224462013-02-12 Richard Biener <rguenther@suse.de>
22447
22448 PR lto/56295
22449 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
22450 decls again if possible.
22451
a011aa39
RB
224522013-02-12 Richard Biener <rguenther@suse.de>
22453
22454 PR middle-end/56288
22455 * tree-ssa.c (verify_ssa_name): Fix check, move
22456 SSA_NAME_IN_FREE_LIST check up.
22457
6da26889
JJ
224582013-02-12 Jakub Jelinek <jakub@redhat.com>
22459 Steven Bosscher <steven@gcc.gnu.org>
22460
22461 PR rtl-optimization/56151
22462 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
22463 equal to op0 or op1, and last_insn pattern is CODE operation
22464 with MEM dest and one of the operands matches that MEM.
22465
f80e0faf
ST
224662013-02-11 Sriraman Tallam <tmsriramgoogle.com>
22467
22468 * doc/extend.texi: Document Function Multiversioning and "default"
22469 parameter string to target attribute.
22470 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
22471 target attribute parameter is "default".
22472 (ix86_compare_version_priority): Remove checks for target attribute.
22473 (ix86_mangle_function_version_assembler_name): Change error to sorry.
22474 Remove check for target attribute equal to NULL. Add assert.
22475 (ix86_generate_version_dispatcher_body): Change error to sorry.
22476
6c59ffd1
IS
224772013-02-11 Iain Sandoe <iain@codesourcery.com>
22478 Jack Howarth <howarth@bromo.med.uc.edu>
22479 Patrick Marlier <patrick.marlier@gmail.com>
22480
22481 PR libitm/55693
22482 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
22483 define ENDFILE_SPEC as TM_DESTRUCTOR.
22484 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
22485
a72d8780 224862013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
22487 Jack Howarth <howarth@bromo.med.uc.edu>
22488 Jakub Jelinek <jakub@redhat.com>
22489
22490 PR sanitizer/55617
22491 * config/darwin.c (cdtor_record): Rename ctor_record.
22492 (sort_cdtor_records): Rename sort_ctor_records.
22493 (finalize_dtors): New routine to sort destructors by
22494 priority before use in assemble_integer.
22495 (machopic_asm_out_destructor): Use finalize_dtors if needed.
22496
b63fe007
UB
224972013-02-11 Uros Bizjak <ubizjak@gmail.com>
22498
22499 PR rtl-optimization/56275
22500 * simplify-rtx.c (avoid_constant_pool_reference): Check that
22501 offset is non-negative and less than cmode size before
22502 calling simplify_subreg.
22503
8e89b5b5
RB
225042013-02-11 Richard Biener <rguenther@suse.de>
22505
22506 PR tree-optimization/56264
22507 * cfgloop.h (fix_loop_structure): Adjust prototype.
22508 * loop-init.c (fix_loop_structure): Return the number of
22509 newly discovered loops.
22510 * tree-cfgcleanup.c (repair_loop_structures): When new loops
22511 are discovered, do a full loop-closed SSA rewrite.
22512
b4a4b56d
RB
225132013-02-11 Richard Biener <rguenther@suse.de>
22514
22515 PR tree-optimization/56273
22516 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
22517 first VRP run.
22518 (check_array_ref): Fix missing newline in dumps.
22519 (search_for_addr_array): Likewise.
22520
0c885229
DE
225212013-02-09 David Edelsohn <dje.gcc@gmail.com>
22522
22523 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
22524
59ac9a55
JJ
225252013-02-09 Jakub Jelinek <jakub@redhat.com>
22526
22527 PR target/56256
22528 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
22529
25bb0bb5
VM
225302013-02-08 Vladimir Makarov <vmakarov@redhat.com>
22531
22532 PR rtl-optimization/56246
0c885229 22533 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
22534 reload pseudo.
22535 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
22536 constraints are satisfied.
22537
a698cc03
JL
225382013-02-08 Jeff Law <law@redhat.com>
22539
22540 PR debug/53948
22541 * emit-rtl.c (reg_is_parm_p): New function.
22542 * regs.h (reg_is_parm_p): New prototype.
22543 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
22544 callee-clobbered registers.
22545
e1122ddd
MM
225462013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
22547
22548 PR target/56043
22549 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
22550 If there is no implicit builtin declaration, just return NULL.
22551
19c5f6e6
UB
225522013-02-08 Uros Bizjak <ubizjak@gmail.com>
22553
22554 * config/i386/sse.md (FMAMODEM): New mode iterator.
22555 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
22556 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
22557
2480f2ca 225582013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 22559
2480f2ca
UB
22560 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
22561 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
22562 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
22563
225642013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
22565
22566 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
22567 (microblaze*-*-elf): Likewise.
22568 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
22569 LINK_SPEC.
22570 * config/microblaze/microblaze-c.c: Add builtin defines for
22571 _LITTLE_ENDIAN and _BIG_ENDIAN.
22572 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
22573 add to TARGET_DEFAULT flags.
76ef61fb 22574 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
22575 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
22576 * config/microblaze/microblaze.md: Update extendsidi2 and
22577 movdi_internal instructions to use low-order / high-order reg
22578 print_operands.
22579 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
22580 options and inversemask / mask of LITTLE_ENDIAN.
22581 * config/microblaze/t-microblaze: Expand multilib options to
22582 include mlittle-endian (le) and update exceptions patterns.
22583
600a5961
JJ
225842013-02-08 Jakub Jelinek <jakub@redhat.com>
22585
5df81313
JJ
22586 PR rtl-optimization/56195
22587 * lra-constraints.c (get_reload_reg): Don't reuse regs
22588 if they have smaller mode than requested, if they have
22589 wider mode than requested, try to return a SUBREG.
22590
600a5961
JJ
22591 PR tree-optimization/56250
22592 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
22593 if type is unsigned and code isn't MULT_EXPR.
22594
ff544649
GJL
225952013-02-08 Georg-Johann Lay <avr@gjlay.de>
22596
22597 PR tree-optimization/56064
22598 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
22599 bits according to mode.
22600 * fixed-value.h (fixed_from_double_int)
22601 (const_fixed_from_double_int): Adjust comments.
22602
e45cde98
RB
226032013-02-08 Richard Biener <rguenther@suse.de>
22604
22605 PR lto/56231
22606 * lto-streamer.h (struct data_in): Remove current_file, current_line
22607 and current_col members.
22608 * lto-streamer-out.c (lto_output_location): Stream changed bits
22609 en-block for efficiency.
22610 * lto-streamer-in.c (clear_line_info): Remove.
22611 (lto_input_location): Cache current file, line and column
22612 globally via local statics. Read changed bits en-block.
22613 (input_function): Do not call clear_line_info.
22614 (lto_read_body): Likewise.
22615 (lto_input_toplevel_asms): Likewise.
22616
c1ca73d8
MM
226172013-02-08 Michael Matz <matz@suse.de>
22618
22619 PR tree-optimization/52448
22620 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
22621 (nt_call_phase): New static.
22622 (add_or_mark_expr): Only mark accesses with newer phase than any
22623 call seen.
22624 (nonfreeing_call_p): New.
22625 (nt_init_block): Update nt_call_phase, mark blocks as visited.
22626 (nt_fini_block): Keep blocks marked as visited.
22627 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
22628
57548aa2
RB
226292013-02-08 Richard Biener <rguenther@suse.de>
22630
22631 * ira.c (ira): Free broken dominator information.
22632
8e10366f
UB
226332013-02-08 Uros Bizjak <ubizjak@gmail.com>
22634
22635 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
22636
f64fb0fa
MP
226372013-02-08 Marek Polacek <polacek@redhat.com>
22638
8e10366f 22639 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 22640
0375167b
RB
226412013-02-08 Richard Biener <rguenther@suse.de>
22642
22643 PR middle-end/56181
22644 * cfgloop.h (flow_loops_find): Adjust.
22645 (bb_loop_header_p): Declare.
22646 * cfgloop.c (bb_loop_header_p): New function split out from ...
22647 (flow_loops_find): ... here. Adjust function signature,
22648 support incremental loop structure update.
22649 (verify_loop_structure): Cleanup. Verify a loop is a loop.
22650 * cfgloopmanip.c (fix_loop_structure): Move ...
22651 * loop-init.c (fix_loop_structure): ... here.
22652 (apply_loop_flags): Split out from ...
22653 (loop_optimizer_init): ... here.
22654 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
22655 in incremental mode, only remove dead loops here.
22656
85d768f3
GJL
226572013-02-08 Georg-Johann Lay <avr@gjlay.de>
22658
22659 PR target/54222
22660 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
22661 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
22662 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
22663 (*round<mode>3.libgcc): New insns for fixed-modes.
22664 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
22665 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
22666 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
22667 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
22668 implementations. Define to __builtin_avr_absFX,
22669 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
22670 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
22671 __builtin_avr_countlsFX, respectively.
22672 * config/avr/avr-c.c (target.h): Include it.
22673 (enum avr_builtin_id): New enum.
22674 (avr_resolve_overloaded_builtin): New static function.
22675 (avr_register_target_pragmas): Use it to set
22676 targetm.resolve_overloaded_builtin.
22677 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
22678 tree nodes used by DEF_BUILTIN.
22679 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
22680 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
22681 <AVR_BUILTIN_xxBITS>: Same.
22682
661bc682
RB
226832013-02-08 Richard Biener <rguenther@suse.de>
22684
22685 * cfgloop.c (verify_loop_structure): Properly handle
22686 a loop exiting to another loop header.
22687 * ira-int.h (ira_loops): Remove.
22688 * ira.c (ira_loops): Remove.
22689 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
22690 (do_reload): Use loop_optimizer_finalize.
22691 * ira-build.c (create_loop_tree_nodes): Use get_loops and
22692 number_of_loops to access the loop tree.
22693 (more_one_region_p): Likewise.
22694 (finish_loop_tree_nodes): Likewise.
22695 (rebuild_regno_allocno_maps): Likewise.
22696 (mark_loops_for_removal): Likewise.
22697 (mark_all_loops_for_removal): Likewise.
22698 (remove_unnecessary_regions): Likewise.
22699 (ira_build): Likewise.
22700 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
22701
0d5049b2
RB
227022013-02-08 Richard Biener <rguenther@suse.de>
22703
22704 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
22705 * ipa-pure-const.c (analyze_function): Avoid calling
22706 mark_irreducible_loops twice.
8e10366f 22707 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 22708
499f32e8
DM
227092013-02-07 David S. Miller <davem@davemloft.net>
22710
22711 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
22712 on 'reg'.
22713 * var-tracking.c (vt_add_function_parameter): Test the presence of
22714 HAVE_window_save properly and do not remap argument registers when
22715 we have a leaf function.
22716
6edc3e32
UB
227172013-02-07 Uros Bizjak <ubizjak@gmail.com>
22718
22719 PR bootstrap/56227
22720 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
22721 instead of "ll".
22722 * config/i386/i386.c (ix86_print_operand): Ditto.
22723
5306401f
VM
227242013-02-07 Vladimir Makarov <vmakarov@redhat.com>
22725
6edc3e32 22726 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 22727
027ece11
VM
227282013-02-07 Vladimir Makarov <vmakarov@redhat.com>
22729
22730 PR rtl-optimization/56225
22731 * lra-constraints.c (process_alt_operands): Check that reload hard
22732 reg can hold value for strict_low_part.
22733
f980dfdb
JJ
227342013-02-07 Jakub Jelinek <jakub@redhat.com>
22735
22736 PR debug/56154
22737 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
22738 dwarf2out_end_function.
22739 (in_first_function_p, maybe_at_text_label_p,
22740 first_loclabel_num_not_at_text_label): New variables.
22741 (dwarf2out_var_location): In the first function find out
6edc3e32 22742 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
22743 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
22744 functions.
22745
73dd3123
EB
227462013-02-07 Eric Botcazou <ebotcazou@adacore.com>
22747
22748 PR rtl-optimization/56178
22749 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
22750 SUBREG of a register. Tidy up related block of code.
22751 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
22752 note if the source is a register or a SUBREG of a register.
22753
e3936f47
JJ
227542013-02-07 Jakub Jelinek <jakub@redhat.com>
22755
22756 PR target/56228
22757 * config/rs6000/rs6000.md (ptrm): New mode attr.
22758 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
22759 call_value_indirect_aix<pttrsize>,
22760 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
22761 m in constraints.
22762
d96d674b
MH
227632013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22764
22765 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
22766 if -bnortl. Convert to strcmp and strncmp.
22767
921f2dee
AM
227682013-02-07 Alan Modra <amodra@gmail.com>
22769
22770 PR target/54009
22771 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
22772 addresses won't wrap when offsetting.
22773 (rs6000_secondary_reload): Provide secondary reloads needed for
22774 wrapping LO_SUM addresses.
22775
d09c7dba
TS
227762013-02-06 Thomas Schwinge <thomas@codesourcery.com>
22777
22778 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
22779 MACH, just __MACH__.
22780
a44bbd48
RB
227812013-02-06 Richard Biener <rguenther@suse.de>
22782
22783 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
22784 instead of calling fix_loop_structure.
22785
6d840d99
JJ
227862013-02-06 Jakub Jelinek <jakub@redhat.com>
22787
22788 PR middle-end/56217
22789 * omp-low.c (use_pointer_for_field): Return false if
22790 lower_send_shared_vars doesn't generate any copy-out code.
22791
0f33baa9
TV
227922013-02-06 Tom de Vries <tom@codesourcery.com>
22793
22794 PR rtl-optimization/56131
22795 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
22796 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
22797 of the label is NULL. Add comment.
22798
11f1e3ab
JJ
227992013-02-05 Jakub Jelinek <jakub@redhat.com>
22800
31502f9f
JJ
22801 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
22802
a74db9bd
JJ
22803 PR sanitizer/55374
22804 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
22805 (STATIC_LIBTSAN_LIBS): Likewise.
22806 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
22807 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
22808 is defined, don't add anything else beyond that.
22809 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
22810 (LINK_COMMAND_SPEC): Use them.
22811
11f1e3ab
JJ
22812 PR tree-optimization/56205
22813 * tree-stdarg.c (check_all_va_list_escapes): Return true if
22814 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
22815 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
22816
14ac6aa2
RB
228172013-02-05 Richard Biener <rguenther@suse.de>
22818
22819 PR tree-optimization/53342
22820 PR tree-optimization/53185
22821 * tree-vectorizer.h (vect_check_strided_load): Remove.
22822 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
22823 not disallow peeling for vectorized strided loads.
22824 (vect_check_strided_load): Make static and simplify.
22825 (vect_analyze_data_refs): Adjust.
22826 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
22827 correctly when vectorizing strided loads.
22828
6f22445a
RB
228292013-02-05 Richard Biener <rguenther@suse.de>
22830
22831 * doc/install.texi: Refer to ISL, not PPL.
22832
39f9719e
JH
228332013-02-05 Jan Hubicka <jh@suse.cz>
22834
ec4224ac
JH
22835 PR tree-optimization/55789
22836 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
22837
228382013-02-05 Jan Hubicka <jh@suse.cz>
22839
22840 PR tree-optimization/55789
39f9719e
JH
22841 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
22842 the dead call anyway.
22843
956d3b33
EB
228442013-02-05 Eric Botcazou <ebotcazou@adacore.com>
22845
22846 PR sanitizer/55374
22847 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
22848
228492013-02-04 Alexander Potapenko <glider@google.com>
22850 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
22851 Jakub Jelinek <jakub@redhat.com>
22852
22853 PR sanitizer/55617
22854 * config/darwin.c (sort_ctor_records): Stabilized qsort
22855 on constructor priority by using original position.
22856 (finalize_ctors): New routine to sort constructors by
22857 priority before use in assemble_integer.
22858 (machopic_asm_out_constructor): Use finalize_ctors if needed.
22859
7ac3af38
JJ
228602013-02-04 Jakub Jelinek <jakub@redhat.com>
22861
22862 PR libstdc++/54314
22863 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
22864 about visibility on artificial decls.
22865 * config/sol2.c (solaris_assemble_visibility): Likewise.
22866
152689dc
KT
228672013-02-04 Kai Tietz <ktietz@redhat.com>
22868
22869 PR target/56186
22870 * config/i386/i386.c (function_value_ms_64): Add additional valtype
22871 argument and improve checking of return-argument types for 16-byte
22872 modes.
22873 (ix86_function_value_1): Add additional valtype argument on call
22874 of function_value_64.
22875 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
22876 handling infunction_value_64 function.
22877
2b5987b5
MGD
228782013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
22879
7ac3af38 22880 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 22881
14597080
RB
228822013-02-04 Richard Biener <rguenther@suse.de>
22883
22884 PR tree-optimization/56188
22885 * tree-ssa-structalias.c (label_visit): Consider case with
22886 initially non-empty points-to set.
22887 (perform_var_substitution): Dump node mapping and clean up.
22888
ed73881e
RG
228892013-02-04 Richard Guenther <rguenther@suse.de>
22890
22891 PR lto/56168
22892 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
22893 node prevail as last resort.
22894 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 22895 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 22896
139a0707
RB
228972013-02-04 Richard Biener <rguenther@suse.de>
22898
22899 PR tree-optimization/56113
22900 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
22901 Merge into ...
22902 (equiv_class_lookup_or_add): ... this.
22903 (label_visit): Adjust and fix error in previous patch.
22904 (perform_var_substitution): Adjust.
22905
50fe8924
OE
229062013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
22907
22908 * config/sh/divtab.c: Fix formatting and comments throughout the file.
22909 * config/sh/sh4-300.md: Likewise.
22910 * config/sh/sh4a.md: Likewise.
22911 * config/sh/constraints.md: Likewise.
22912 * config/sh/sh.md: Likewise.
22913 * config/sh/netbsd-elf.h: Likewise.
22914 * config/sh/predicates.md: Likewise.
22915 * config/sh/sh-protos.h: Likewise.
22916 * config/sh/ushmedia.h: Likewise.
22917 * config/sh/linux.h: Likewise.
22918 * config/sh/sh.c: Likewise.
22919 * config/sh/superh.h: Likewise.
22920 * config/sh/elf.h: Likewise.
22921 * config/sh/sh4.md: Likewise.
22922 * config/sh/sh.h: Likewise.
22923
1a04ac2b
JDA
229242013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22925
22926 * config/pa/constraints.md: Adjust unused letters. Change "T"
22927 constraint to match_test floating_point_store_memory_operand().
22928 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
22929 (base14_operand): New.
22930 (floating_point_store_memory_operand): New.
22931 (integer_store_memory_operand): Revise to use base14_operand and
22932 reg_plus_base_memory_operand.
22933 (move_dest_operand): Allow symbolic_memory_operands.
22934 (symbolic_memory_operand): Check for LO_SOM.
22935 (symbolic_operand): Change default case to break.
22936 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
22937 CONST_DOUBLE values to be reloaded by putting them into memory when
22938 the destination is a floating point register.
22939 (movdf): Remove code to handle CONST_DOUBLE.
22940 (movsf): Likewise.
22941 (reload_indf_r1): New.
22942 (reload_insf_r1): New.
22943 Consistently use "Q" and "T" constraints with integer and floating
22944 point move instructions, respectively.
22945 (movdi): Remove FAIL.
22946 Change predicate for source operand unamed DImode move from
22947 general_operand to move_src_operand.
22948 (umulsidi3): Change predicate for destination operand to
22949 register_operand.
22950 Likewise for similar unamed patterns.
22951 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
22952 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
22953 (hppa_legitimize_address): Simplify mask calculation.
22954 (pa_emit_move_sequence): Revised handling of secondary reloads from
22955 REG+D addresses for floating point loads and stores. Directly handle
22956 loading CONST0_RTX (mode) to a floating point register.
22957 (pa_secondary_reload): Handle reloading DF and SFmode constant values
22958 to floating point registers. Don't restrict secondary reloads to
22959 floating point registers to integer modes. Revise some comments and
22960 cleanup some code.
22961 (TARGET_LEGITIMATE_ADDRESS_P): Define.
22962 (pa_legitimate_address_p): New.
22963 (pa_legitimize_reload_address): New.
22964 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
22965 (STRICT_REG_OK_FOR_BASE_P): New.
22966 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
22967 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
22968
3bf65591
DE
229692013-02-03 David Edelsohn <dje.gcc@gmail.com>
22970 Andrew Dixie <andrewd@gentrack.com>
22971
22972 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
22973 flag set.
22974
c0a8a3e6
RS
229752013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
22976
22977 * expmed.c (extract_bit_field_1): Pass the full width of the
22978 structure to get_best_reg_extraction_insn.
22979
99113dff
DE
229802013-02-01 David Edelsohn <dje.gcc@gmail.com>
22981
22982 PR target/54601
22983 * configure.ac (use_cxa_atexit): Add AIX.
22984 * configure: Regenerate.
22985
22986 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
22987
ddd84654
JJ
229882013-02-01 Jakub Jelinek <jakub@redhat.com>
22989
22990 PR debug/54793
22991 * final.c (need_profile_function): New variable.
22992 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
22993 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
22994 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
22995 notes, targetm.asm_out.function_prologue doesn't emit anything,
22996 HAVE_prologue and profiler should be emitted before prologue,
22997 set need_profile_function instead of emitting it.
22998 (final_scan_insn): If need_profile_function, emit
22999 profile_function on the first NOTE_INSN_BASIC_BLOCK or
23000 NOTE_INSN_FUNCTION_BEG note.
23001
230022013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
23003
23004 * config/rs6000/rs6000.md (smulditi3): New.
23005 (umulditi3): New.
23006
ff2a9d88
RH
23007 * config/alpha/alpha.md (umulditi3): New.
23008
14d52b90
DE
230092013-02-01 David Edelsohn <dje.gcc@gmail.com>
23010
23011 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
23012 (ASM_OUTPUT_ALIGNED_LOCAL): New.
23013
8c7ca45c
RB
230142013-02-01 Richard Biener <rguenther@suse.de>
23015
23016 PR tree-optimization/56113
23017 * tree-ssa-structalias.c (label_visit): Reduce work for
23018 single-predecessor nodes.
23019
9f419393
EB
230202013-02-01 Eric Botcazou <ebotcazou@adacore.com>
23021
23022 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
23023 range isn't testing for zero.
23024
c5f4be84
SB
230252013-01-31 Steven Bosscher <steven@gcc.gnu.org>
23026
23027 PR middle-end/56113
23028 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
23029
dbdbd982
NC
230302013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
23031 Nick Clifton <nickc@redhat.com>
23032
23033 * config/v850/constraints.md (Q): Define as a memory constraint.
23034 * config/v850/predicates.md (label_ref_operand): New predicate.
23035 (e3v5_shift_operand): New predicate.
23036 (ior_operator): New predicate.
23037 * config/v850/t-v850: Add e3v5 multilib.
23038 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
23039 (v850_gen_movdi): Prototype.
23040 * config/v850/v850.c: Add support for e3v5 architecture.
23041 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
23042 TARGET_V850E_UP.
23043 (construct_save_jarl): Add e3v5 long JARL support.
23044 (v850_adjust_insn_length): New function. Adjust length of call
23045 insns when using e3v5 instructions.
23046 (v850_gen_movdi): New function: Generate instructions to move a
23047 DImode value.
23048 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
23049 (CPP_SPEC): Define __v850e3v5__ as appropriate.
23050 (TARGET_USE_FPU): Enable for e3v5.
23051 (CONST_OK_FOR_W): New macro.
23052 (ADJUST_INSN_LENGTH): Define.
23053 * config/v850/v850.md (UNSPEC_LOOP): Define.
23054 (attr cpu): Add v850e3v5.
23055 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
23056 (movdi): New pattern.
23057 (movdi_internal): New pattern.
23058 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
23059 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
23060 (cstoresf4): Likewise.
23061 (cstoredf4): Likewise.
23062 (insv): New pattern.
23063 (rotlso3_a): New pattern.
23064 (rotlsi3_b): New pattern
23065 (rotlsi3_v850e3v5): New pattern.
23066 (doloop_begin): New pattern.
23067 (fix_loop_counter): New pattern.
23068 (doloop_end): New pattern.
23069 (branch_normal): Add e3v5 long branch support.
23070 (branch_invert): Likewise.
23071 (branch_z_normal): Likewise.
23072 (branch_z_invert): Likewise.
23073 (branch_nz_normal): Likewise.
23074 (branch_nz_invert): Likewise.
23075 (call_internal_short): Add e3v5 register-indirect JARL support.
23076 (call_internal_long): Likewise.
23077 (call_value_internal_short): Likewise.
23078 (call_value_internal_long): Likewise.
23079 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
23080 (mloop): New option.
23081 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 23082 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 23083
73861a41
PK
230842013-01-31 Paul Koning <ni1d@arrl.net>
23085
23086 PR debug/55059
23087 PR debug/54508
23088 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
23089 children if parent is a class.
23090 (prune_unused_types_prune): Don't add DW_AT_declaration.
23091
e44978dc
RB
230922013-01-31 Richard Biener <rguenther@suse.de>
23093
23094 PR tree-optimization/56157
23095 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
23096 match up operand with SLP child.
23097
90b10dec
JM
230982013-01-31 Jason Merrill <jason@redhat.com>
23099
04d2dadd 23100 PR debug/54410
90b10dec
JM
23101 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
23102 parameters the first time.
23103 (gen_scheduled_generic_parms_dies): Check completeness here.
23104
6e616110
RB
231052013-01-31 Richard Biener <rguenther@suse.de>
23106
23107 PR middle-end/53073
23108 * common.opt (faggressive-loop-optimizations): New flag,
23109 enabled by default.
23110 * doc/invoke.texi (faggressive-loop-optimizations): Document.
23111 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
23112 infer_loop_bounds_from_undefined by it.
23113
636f59cf
RB
231142013-01-31 Richard Biener <rguenther@suse.de>
23115
23116 PR tree-optimization/56150
23117 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
23118 visit virtual operands.
23119 (find_uses_to_rename_bb): Likewise.
23120
231212013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
23122
23123 PR tree-optimization/56150
23124 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
23125 mixed store non-store stmts.
23126
32887460
JJ
231272013-01-30 Jakub Jelinek <jakub@redhat.com>
23128
e60e09a0
JJ
23129 PR sanitizer/55374
23130 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
23131 LIBASAN_EARLY_SPEC is defined.
23132 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
23133 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
23134 before %o.
23135 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
23136
32887460
JJ
23137 PR c++/55742
23138 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
23139 invalid args instead of ICEing on it.
23140 (ix86_valid_target_attribute_tree): Return error_mark_node if
23141 ix86_valid_target_attribute_inner_p failed.
23142 (ix86_valid_target_attribute_p): Return false only if
23143 ix86_valid_target_attribute_tree returned error_mark_node. Allow
23144 target("default") attribute.
23145 (sorted_attr_string): Change argument from const char * to tree,
23146 merge in all target attribute arguments rather than just one.
23147 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
23148 instead of free. Avoid using strcat.
23149 (ix86_mangle_function_version_assembler_name): Mangle
23150 target("default") as if no target attribute is present. Adjust
23151 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
23152 instead of xmalloc and XDELETEVEC instead of free.
23153 (ix86_function_versions): Don't return true if one of the decls
23154 doesn't have target attribute. If they don't and one of the decls
23155 is DECL_FUNCTION_VERSIONED, report an error. Adjust
23156 sorted_attr_string caller. Use XDELETEVEC instead of free.
23157 (ix86_supports_function_versions): Remove.
23158 (make_name): Fix up formatting.
23159 (make_dispatcher_decl): Remove resolver_name and its initialization.
23160 Avoid leaking memory.
23161 (is_function_default_version): Return true if there is
23162 target("default") attribute rather than no target attribute at all.
23163 (make_resolver_func): Avoid leaking memory.
23164 (ix86_generate_version_dispatcher_body): Likewise.
23165 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
23166 * target.def (supports_function_versions): Remove.
23167 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
23168 * doc/tm.texi: Regenerated.
23169
73cca0cc
VM
231702013-01-30 Vladimir Makarov <vmakarov@redhat.com>
23171
23172 PR rtl-optimization/56144
23173 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
23174 for values with side effects.
23175
11452e7b
RB
231762013-01-30 Richard Biener <rguenther@suse.de>
23177
23178 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
23179 (sparseset_pop): Likewise.
23180 * cfganal.c (compute_idf): Likewise. Increase work-stack size
23181 to be able to use quick_push in the worker loop.
23182
01cb1ef5
MP
231832013-01-30 Marek Polacek <polacek@redhat.com>
23184
23185 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
23186
e892936e
RB
231872013-01-30 Richard Biener <rguenther@suse.de>
23188
23189 PR lto/56147
6edc3e32 23190 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 23191
cc06c01d
GJL
231922013-01-30 Georg-Johann Lay <avr@gjlay.de>
23193
23194 PR tree-optimization/56064
23195 * fixed-value.c (fixed_from_double_int): New function.
23196 * fixed-value.h (fixed_from_double_int): New prototype.
23197 (const_fixed_from_double_int): New static inline function.
23198 * fold-const.c (native_interpret_fixed): New static function.
23199 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
23200 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
23201 (native_encode_fixed): New static function.
23202 (native_encode_expr) <FIXED_CST>: Use it.
23203 (native_interpret_int): Move double_int worker code to...
23204 * double-int.c (double_int::from_buffer): ...this new static method.
23205 * double-int.h (double_int::from_buffer): Prototype it.
23206
d394a308
RB
232072013-01-30 Richard Biener <rguenther@suse.de>
23208
23209 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
23210 New pointer-map and obstack.
23211 (init_alias_vars): Allocate pointer-map and obstack.
23212 (delete_points_to_sets): Free them.
23213 (find_what_var_points_to): Cache result.
23214 (find_what_p_points_to): Adjust for changed interface of
23215 find_what_var_points_to.
23216 (compute_points_to_sets): Likewise.
23217 (ipa_pta_execute): Likewise.
23218
20804d96
RO
232192013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23220
23221 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
23222 * configure: Regenerate.
23223 * config.in: Regenerate.
23224 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
23225 #nobits/#progbits if supported.
23226
a7ad88a2
OE
232272013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
23228
23229 PR target/56121
23230 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
23231 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
23232 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
23233
7af79f92
GY
232342013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
23235
91bfca59
OE
23236 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
23237 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 23238
753bcf7b
GY
232392013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
23240
91bfca59
OE
23241 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
23242 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 23243
8cbc2ea8
GY
232442013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
23245
91bfca59
OE
23246 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
23247 declaration.
23248 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
23249 * config/arm/cortex-a7.md: New bypasses using
23250 arm_mac_accumulator_is_result.
8cbc2ea8 23251
697a3325
GY
232522013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
23253
91bfca59 23254 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 23255 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
23256 (cortex_a7_fpfmad): New reservation.
23257 (cortex_a7_fpmacs): Use ffmas and update required units.
23258 (cortex_a7_fpmuld): Update required units and latency.
23259 (cortex_a7_fpmacd): Likewise.
23260 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
23261 (cortex_a7_neon). Likewise.
23262 (bypass) Update participating units.
697a3325 23263
29637783
GY
232642013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
23265
91bfca59
OE
23266 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
23267 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
23268 from fmac to ffma.
23269 * config/arm/vfp11.md (vfp_farith): Use ffmas.
23270 (vfp_fmul): Use ffmad.
23271 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
23272 (cortex_r4_fmacd): Use ffmad.
23273 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
23274 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
23275 (cortex_a9_fmacd): Use ffmad.
23276 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
23277 (cortex_a8_vfp_macd): Use ffmad.
23278 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
23279 (cortex_a5_fpmacd): Use ffmad.
23280 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
23281 (cortex_a15_vfp_macd): Use ffmad.
23282 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 23283
2ee8a2d5
JM
232842013-01-29 Jason Merrill <jason@redhat.com>
23285
23286 PR libstdc++/54314
23287 * varasm.c (default_assemble_visibility): Don't warn about
23288 visibility on artificial decls.
23289
78d087bc
RB
232902013-01-29 Richard Biener <rguenther@suse.de>
23291
23292 PR tree-optimization/56113
23293 * tree-ssa-structalias.c (equiv_class_lookup): Also return
23294 the bitmap leader.
23295 (label_visit): Free duplicate bitmaps and record the leader instead.
23296 (perform_var_substitution): Adjust.
23297
83ba4d6f
RB
232982013-01-29 Richard Biener <rguenther@suse.de>
23299
23300 PR tree-optimization/55270
23301 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
23302 the CFG, schedule loops for fixup.
23303
66dfe13f
NC
233042013-01-29 Nick Clifton <nickc@redhat.com>
23305
23306 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
23307 SP_REG.
23308
5a579c3b
LE
233092013-01-28 Leif Ekblad <leif@rdos.net>
23310
23311 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
23312 * config/i386/i386.h (TARGET_RDOS): New macro.
23313 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
23314 * config/i386/i386.c (ix86_option_override_internal): For 64bit
23315 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
23316 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
23317 DEFAULT_LARGE_SECTION_THRESHOLD.
23318 * config/i386/i386.md (R14_REG, R15_REG): New constants.
23319 * config/i386/rdos.h: New file.
23320 * config/i386/rdos64.h: New file.
23321
51e44392
BS
233222013-01-28 Bernd Schmidt <bernds@codesourcery.com>
23323
23324 PR other/54814
23325 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
23326 TEST_HARD_REG_BIT.
23327
db1fb332
JJ
233282013-01-28 Jakub Jelinek <jakub@redhat.com>
23329
23330 PR rtl-optimization/56117
23331 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
23332 call cselib_lookup_from_insn on the MEM before calling
23333 add_insn_mem_dependence.
23334
16917761
RB
233352013-01-28 Richard Biener <rguenther@suse.de>
23336
23337 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
23338 to a stmt that didn't have one.
23339 (copy_phis_for_bb): Likewise for PHI arguments.
23340 (copy_debug_stmt): Likewise for debug stmts.
23341
b9fc0497
RB
233422013-01-28 Richard Biener <rguenther@suse.de>
23343
23344 PR tree-optimization/56034
6edc3e32 23345 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
23346 (partition_builtin_p): Adjust.
23347 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
23348 it is the last partition.
23349 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
23350 up the vertex for the definition.
23351 (classify_partition): Classify whether a partition is a
23352 PKIND_REDUCTION, thus has uses outside of the loop.
23353 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
23354 Merge all PKIND_REDUCTION partitions into the last partition.
23355 (tree_loop_distribution): Seed partitions from reductions as well.
23356
aa710d25
JJ
233572013-01-28 Jakub Jelinek <jakub@redhat.com>
23358
0bfbca58
JJ
23359 PR tree-optimization/56125
23360 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
23361 pow(x,c) into sqrt(x) * powi(x, n/2) or
23362 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
23363 optimizing for size.
23364 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
23365 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
23366 integer.
23367
aa710d25
JJ
23368 PR tree-optimization/56094
23369 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
23370 to UNKNOWN_LOCATION while gimplifying expr.
23371
77dc5297
UB
233722013-01-27 Uros Bizjak <ubizjak@gmail.com>
23373
23374 PR target/56114
23375 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
23376 operand 0 in movabs insn template for -masm=intel asm alternative.
23377 (*movabs<mode>_2): Ditto for operand 1.
23378
0bfbca58 233792013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
23380
23381 PR target/54663
23382 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
23383 of microblaze-c.o
23384
0bfbca58 233852013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
23386
23387 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
23388 tm_file.
23389
0bfbca58 233902013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
23391
23392 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
23393 Undef to avoid warning.
23394
478f60f9
MH
233952013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23396
23397 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
23398 * configure: Regenerate.
23399
d7fa6ee2
JJ
234002013-01-25 Jakub Jelinek <jakub@redhat.com>
23401
23402 PR tree-optimization/56098
23403 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
23404 for stmts with volatile ops.
23405 (cond_store_replacement): Don't optimize if assign has volatile ops.
23406 (cond_if_else_store_replacement_1): Don't optimize if either
23407 then_assign or else_assign have volatile ops.
23408 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
23409 volatile ops.
23410
f8fe87bd
GJL
234112013-01-25 Georg-Johann Lay <avr@gjlay.de>
23412
23413 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
23414
28398d0d
GJL
234152013-01-25 Georg-Johann Lay <avr@gjlay.de>
23416
23417 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
23418 missing ':' in asm example.
23419
b7d7d917
TB
234202013-01-25 Tejas Belagod <tejas.belagod@arm.com>
23421
23422 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
23423 entries into lane and laneq entries.
77dc5297
UB
23424 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
23425 Remove AdvSIMD scalar modes.
b7d7d917
TB
23426 (aarch64_sq<r>dmulh_laneq<mode>): New.
23427 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
23428 modes.
23429 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
23430 builtin implementations to relfect changes in RTL in aarch64-simd.md.
23431 * config/aarch64/iterators.md (VCOND): New.
23432 (VCONQ): New.
23433
556f9906
GJL
234342013-01-25 Georg-Johann Lay <avr@gjlay.de>
23435
23436 PR target/54222
23437 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
23438 Add NULL LIBNAME argument to existing definitions.
23439 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
23440 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
23441 * config/avr/avr.c (DEF_BUILTIN): Same.
23442 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
23443 (avr_expand_builtin): Expand to a vanilla call if a libgcc
23444 implementation is available (DECL_ASSEMBLER_NAME is set).
23445 (avr_fold_absfx): New static function.
23446 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
23447 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
23448 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
23449 AVR_BUILTIN_ABSLLK.
23450 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
23451 (abshk, absk, abslk, absllk): Provide as static inline functions.
23452
1f546bbb
MP
234532013-01-25 Marek Polacek <polacek@redhat.com>
23454
23455 PR tree-optimization/56035
23456 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
23457
7e184bd7
UB
234582012-01-24 Uros Bizjak <ubizjak@gmail.com>
23459
23460 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
23461 (*movtf_internal_rex64): Add (!o,C) alternative
23462 (*movxf_internal_rex64): Ditto.
23463 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
23464
f5ba49ac
SM
234652013-01-24 Shenghou Ma <minux.ma@gmail.com>
23466
23467 * doc/invoke.texi: fix typo.
23468 * doc/objc.texi: fix typo.
23469
a6343728
RS
234702013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
23471
23472 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
23473 for the first two alternatives.
23474
cd030c07
DN
234752013-01-24 Diego Novillo <dnovillo@google.com>
23476
77dc5297 23477 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
23478 (ggc-zone.o): Remove.
23479 * configure.ac: Remove option --with-gc.
23480 * configure: Re-generate.
23481 * doc/install.texi: Remove documentation for --with-gc.
23482 * gengtype.c (write_enum_defn): Remove. Update all users.
23483 (write_Types_process_field): Remove generation of gt_e_* argument.
23484 (output_type_enum): Remove. Update all users.
23485 (write_enum_defn): Remove. Update all users.
23486 (enum alloc_zone): Remove. Update all users.
77dc5297 23487 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
23488 * ggc-common.c (ggc_splay_alloc): Remove first argument.
23489 Update all callers.
23490 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 23491 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
23492 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
23493 Update all users.
aaf1e810 23494 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
23495 (struct alloc_zone): Remove.
23496 (ggc_internal_alloc_zone_stat): Remove.
23497 (ggc_internal_cleared_alloc_zone_stat): Remove.
23498 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
23499 (ggc_pch_count_object): Remove last argument. Update all users.
23500 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
23501 (struct alloc_zone): Remove.
23502 * ggc-zone.c: Remove.
77dc5297 23503 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
23504 (struct alloc_zone): Remove.
23505 (ggc_alloc_typed_stat): Remove.
23506 (ggc_alloc_typed): Remove.
23507 (ggc_splay_alloc): Remove first argument.
23508 (rtl_zone): Remove. Update all users.
23509 (tree_zone): Remove. Update all users.
23510 (tree_id_zone): Remove. Update all users.
23511 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 23512 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 23513 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 23514 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 23515
a861ffa4
GJL
235162013-01-24 Georg-Johann Lay <avr@gjlay.de>
23517
23518 * config/avr/avr.c (avr_out_fract): Make register numbers that
23519 might be outside of source operand signed.
23520
593c0ddd
UB
235212013-01-24 Uros Bizjak <ubizjak@gmail.com>
23522
23523 * config/i386/constraints.md (Yf): New constraint.
23524 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
23525 of f constraint to conditionaly disable x87 register preferences.
23526 (*movdf_internal): Ditto.
23527 (*movsf_internal): Ditto.
23528
e86c0101
SB
235292013-01-24 Steven Bosscher <steven@gcc.gnu.org>
23530
23531 PR inline-asm/55934
23532 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
23533 that have operands with impossible constraints.
23534 Add a FIXME for a speed-up opportunity.
23535 * lra-constraints.c (process_alt_operands): Verify that a class
23536 selected from constraints on asms is valid for the operand mode.
23537 (curr_insn_transform): Remove incorrect comment.
23538
f6fee35f
DE
235392013-01-23 David Edelsohn <dje.gcc@gmail.com>
23540
23541 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
23542 TOC operand is a valid symbol ref in the constant pool.
23543
235442013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 23545
aaf1e810 23546 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 23547
dc62d7d1
GJL
235482013-01-23 Georg-Johann Lay <avr@gjlay.de>
23549
23550 PR target/54222
23551 * config/avr/stdfix.h: New file.
23552 * t-avr (stdfix-gcc.h): New rule to build it.
23553 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
23554
2660d12d
KS
235552013-01-23 Kostya Serebryany <kcc@google.com>
23556
77dc5297
UB
23557 * config/darwin.h: remove dependency on
23558 CoreFoundation (asan on Mac OS).
2660d12d 23559
a70418fc
JJ
235602013-01-23 Jakub Jelinek <jakub@redhat.com>
23561
23562 PR target/49069
23563 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
23564 instead of cmpdi_operand for first comparison operand.
23565 Don't assert that comparison operands aren't both constants.
23566
47876a2a
JW
235672013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
23568
23569 * doc/install.texi (Downloading the Source): Update references to
23570 downloading separate components.
23571
235722013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
23573
23574 * doc/extend.texi (__int128): Improve grammar.
23575
47876a2a 235762013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
23577
23578 PR target/56028
23579 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
23580 alternative to (o,r).
23581 (*movdi_internal_rex64): Remove (!o,n) alternative.
23582 (DImode immediate->memory splitter): Remove.
23583 (DImode immediate->memory peephole2): Remove.
23584 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
23585 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
23586 alternative to (!o,*r).
23587 (*movtf_internal_sse): New pattern.
23588 (*movxf_internal_rex64): New pattern.
23589 (*movxf_internal): Disable for TARGET_64BIT.
23590 (*movdf_internal_rex64): Remove (!o,F) alternative.
23591
3a984f10
JJ
235922013-01-22 Jakub Jelinek <jakub@redhat.com>
23593
502498d5
JJ
23594 PR middle-end/56074
23595 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
23596 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
23597 * tree-vect-loop-manip.c (find_loop_location): Also ignore
23598 stmt locations where LOCATION_LOCUS of the stmt location is
23599 UNKNOWN_LOCATION or BUILTINS_LOCATION.
23600
3a984f10
JJ
23601 PR target/55686
23602 * config/i386/i386.md (UNSPEC_STOS): New.
23603 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
23604 *strsetqi_1): Add UNSPEC_STOS.
23605
fa817f7f
PC
236062013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
23607
23608 PR c++/56067
23609 * doc/invoke.texi: Remove left over -Wsynth example.
23610
8f498c1b
JJ
236112013-01-21 Jakub Jelinek <jakub@redhat.com>
23612
23613 PR tree-optimization/56051
23614 * fold-const.c (fold_binary_loc): Don't fold
23615 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
23616 a narrowing conversion, or widening conversion from signed
23617 to unsigned.
23618
47876a2a 236192013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
23620
23621 PR rtl-optimization/56023
23622 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
23623 dependent on debug instruction.
23624
5b9db1bc
MJ
236252013-01-21 Martin Jambor <mjambor@suse.cz>
23626
23627 PR middle-end/56022
23628 * function.c (allocate_struct_function): Call
23629 invoke_set_current_function_hook earlier.
23630
e8bb7d68
JJ
236312013-01-21 Jakub Jelinek <jakub@redhat.com>
23632
23633 * reload1.c (init_reload): Only initialize reload_obstack
23634 during the first call.
23635
616a4e32
MP
236362013-01-21 Marek Polacek <polacek@redhat.com>
23637
23638 * cfgloop.c (verify_loop_structure): Fix up grammar.
23639
4401981b
YHH
236402013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
23641
23642 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
23643 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
23644
8e87740b
RR
236452013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23646
23647 PR target/56058
23648 * config/arm/marvell-pj4.md: Update copyright year.
23649 Fix up use of alu to alu_reg and simple_alu_imm.
23650
47876a2a 236512013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
23652
23653 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
23654
89d56d79
VM
236552013-01-20 Vladimir Makarov <vmakarov@redhat.com>
23656
23657 PR target/55433
23658 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 23659 insn for secondary memory move when memory mode should be different.
89d56d79 23660
fe603553
JDA
236612013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23662
23663 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
23664 atomic_storedi_1): New patterns.
23665
01284895
VK
236662013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
23667
23668 btver2 pipeline descriptions.
23669 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
23670 descriptions.
23671 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 23672 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
23673 type attributes.
23674 * config/i386/btver2.md: New file describing btver2 pipelines.
23675
5630e3e1
JL
236762013-01-19 Andrew Pinski <apinski@cavium.com>
23677
23678 PR tree-optimization/52631
23679 * tree-ssa-sccvn (visit_use): Before looking up the original
23680 statement, try looking up the simplified expression.
23681
650ae806
AG
236822013-01-19 Anthony Green <green@moxielogic.com>
23683
23684 * config/moxie/moxie.c (moxie_expand_prologue): Set
23685 current_function_static_stack_size.
23686
e300ec2d
JJ
236872013-01-18 Jakub Jelinek <jakub@redhat.com>
23688
23689 PR tree-optimization/56029
23690 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
23691 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
23692
a3d7af04
SS
236932013-01-18 Sharad Singhai <singhai@google.com>
23694
23695 PR tree-optimization/55995
23696 * dumpfile.c (dump_loc): Print location only if available.
23697 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
23698
66aa7879
VM
236992013-01-18 Vladimir Makarov <vmakarov@redhat.com>
23700
23701 PR target/55433
23702 * lra-constraints.c (curr_insn_transform): Reuse original insn for
23703 secondary memory move.
23704 (inherit_reload_reg): Use rclass instead of cl for
23705 check_secondary_memory_needed_p.
23706
3f0fee7b
JJ
237072013-01-18 Jakub Jelinek <jakub@redhat.com>
23708
23709 PR middle-end/56015
23710 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 23711 the case where writing real complex part of target modifies op1.
3f0fee7b 23712
70c67693
JG
237132013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
23714
23715 * config/aarch64/aarch64-simd.md
23716 (aarch64_vcond_internal<mode>): Handle unordered cases.
23717 * config/aarch64/iterators.md (v_cmp_result): New.
23718
df8de9b3
YHH
237192013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
23720 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23721
23722 * config/arm/marvell-pj4.md: New file.
23723 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
23724 * config/arm/arm.md (generic_sched): Add marvell_pj4.
23725 (generic_vfp): Likewise.
23726 * config/arm/arm-cores.def: Add marvell-pj4.
23727 * config/arm/arm-tune.md: Regenerate.
23728 * config/arm/arm-tables.opt: Regenerate.
23729 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
23730 * doc/invoke.texi: Document marvell-pj4.
23731
be30c356
TB
237322013-01-18 Tejas Belagod <tejas.belagod@arm.com>
23733
23734 * config/aarch64/arm_neon.h: Map scalar types to standard types.
23735
0bfbca58 237362013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
23737
23738 PR debug/54114
23739 PR debug/54402
23740 PR debug/49888
23741 * var-tracking.c (negative_power_of_two_p): New.
23742 (global_get_addr_cache, local_get_addr_cache): New.
23743 (get_addr_from_global_cache, get_addr_from_local_cache): New.
23744 (vt_canonicalize_addr): Rewrite using the above. Adjust the
23745 heading comment.
23746 (vt_stack_offset_p): Remove.
23747 (vt_canon_true_dep): Always canonicalize loc's address.
23748 (clobber_overlapping_mems): Make sure we have a MEM.
23749 (local_get_addr_clear_given_value): New.
23750 (val_reset): Clear local cached entries.
23751 (compute_bb_dataflow): Create and release the local cache.
23752 Disable duplicate MEMs clobbering.
23753 (emit_notes_in_bb): Clobber MEMs likewise.
23754 (vt_emit_notes): Create and release the local cache.
23755 (vt_initialize, vt_finalize): Create and release the global
23756 cache, respectively.
1f6bc337 23757 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 23758
0bfbca58 237592013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
23760
23761 PR libmudflap/53359
23762 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
23763 not found in the symtab.
23764
0bfbca58 237652013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 23766
c350ba53 23767 PR debug/56006
3aa03517
AO
23768 PR rtl-optimization/55547
23769 PR rtl-optimization/53827
23770 PR debug/53671
23771 PR debug/49888
23772 * alias.c (offset_overlap_p): New, factored out of...
23773 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
23774 the conservative special case for symbolic constants. Don't
23775 adjust zero sizes on alignment.
23776
c664546f
JL
237772013-01-18 Bernd Schmidt <bernds@codesourcery.com>
23778
23779 PR rtl-optimization/52573
23780 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
23781 REG_UNUSED for the same register.
23782
1bd3f750
MP
237832013-01-17 Richard Biener <rguenther@suse.de>
23784 Marek Polacek <polacek@redhat.com>
23785
23786 PR rtl-optimization/55833
23787 * loop-unswitch.c (unswitch_loops): Move loop verification...
23788 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
23789 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
23790 Set it to true when we're removing a loop from hierarchy tree in
23791 an irreducible region.
23792 (fix_bb_placements): Adjust caller.
23793 (fix_loop_placements): Likewise.
23794
e52a8b71
GJL
237952013-01-17 Georg-Johann Lay <avr@gjlay.de>
23796
23797 * config/avr/builtins.def (DEF_BUILTIN): Factor out
23798 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
23799 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
23800 Remove ID. Adjust comments.
23801 * config/avr/avr-c.c (avr_builtin_name): Remove.
23802 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
23803 * config/avr/avr.c (avr_tolower): New static function.
23804 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
23805 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
23806 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
23807 default expansion.
23808
8386a7ea
JH
238092013-01-17 Jan Hubicka <jh@suse.cz>
23810
610fb637 23811 PR tree-optimization/55273
8386a7ea
JH
23812 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
23813
47876a2a 238142013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
23815
23816 PR target/55981
23817 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
23818 store through atomic_store<mode>_1.
23819 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
23820
8222c37e
MJ
238212013-01-17 Martin Jambor <mjambor@suse.cz>
23822
23823 PR tree-optimizations/55264
23824 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
23825 for virtual methods.
23826 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
23827 virtual methods before inlining is over.
23828 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
23829 virtual functions.
23830 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
23831 non-virtual.
23832
79f01c76
VM
238332013-01-16 Vladimir Makarov <vmakarov@redhat.com>
23834
23835 PR rtl-optimization/56005
23836 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
23837 pending reads for prefetch.
23838
d0b6bb1b
IB
238392013-01-16 Ian Bolton <ian.bolton@arm.com>
23840
aaf1e810 23841 * config/aarch64/aarch64.md
d0b6bb1b
IB
23842 (*cstoresi_neg_uxtw): New pattern.
23843 (*cmovsi_insn_uxtw): New pattern.
23844 (*<optab>si3_uxtw): New pattern.
23845 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
23846 (*<optab>si3_insn_uxtw): New pattern.
23847 (*bswapsi2_uxtw): New pattern.
23848
cb9cf03b
RB
238492013-01-16 Richard Biener <rguenther@suse.de>
23850
23851 * tree-inline.c (tree_function_versioning): Remove set but
23852 never used variable.
23853
2cfc56b9
RB
238542013-01-16 Richard Biener <rguenther@suse.de>
23855
23856 PR tree-optimization/55964
23857 * tree-flow.h (rename_variables_in_loop): Remove.
23858 (rename_variables_in_bb): Likewise.
23859 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
23860 (copy_loop_before): Adjust and delete update-ssa status.
23861 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 23862 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
23863 (rename_variables_in_loop): Remove.
23864 (slpeel_update_phis_for_duplicate_loop): Likewise.
23865 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
23866 use available cfg machinery instead of duplicating it.
23867 Update PHI nodes and perform poor-mans SSA update here.
23868 (slpeel_tree_peel_loop_to_edge): Adjust.
23869
c25a0c60
RB
238702013-01-16 Richard Biener <rguenther@suse.de>
23871
23872 PR tree-optimization/54767
23873 PR tree-optimization/53465
23874 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
23875 (vrp_visit_phi_node): For PHI arguments coming via backedges
23876 drop all symbolical range information.
23877 (execute_vrp): Compute backedges.
23878
04b535af
RB
238792013-01-16 Richard Biener <rguenther@suse.de>
23880
23881 * doc/install.texi: Update CLooG and ISL requirements to
23882 0.18.0 and 0.11.1.
23883
8b0a1e0b
CB
238842013-01-16 Christian Bruel <christian.bruel@st.com>
23885
23886 PR target/55301
23887 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
23888 (broken_move): Handle UNSPECV_SP_SWITCH_B.
23889 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
23890
238912013-01-16 DJ Delorie <dj@redhat.com>
23892
23893 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
23894 (UNSPECV_SP_SWITCH_E): New.
23895 (sp_switch_1): Change to an unspec.
23896 (sp_switch_2): Change to an unspec. Don't use post-inc when we
23897 replace $r15.
23898
238992013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
23900
23901 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
23902 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
23903 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
23904 (expand_mem_thread_fence): Ditto.
23905 (expand_mem_signal_fence): Ditto.
23906 (expand_atomic_load): Ditto.
23907 (expand_atomic_store): Ditto.
23908
0bfbca58 239092013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
23910
23911 PR rtl-optimization/55547
23912 PR rtl-optimization/53827
23913 PR debug/53671
23914 PR debug/49888
23915 * alias.c (memrefs_conflict_p): Set sizes to negative after
23916 AND adjustments.
23917
305e3ac1
JJ
239182013-01-15 Jakub Jelinek <jakub@redhat.com>
23919
23920 PR target/55940
23921 * function.c (thread_prologue_and_epilogue_insns): Always
23922 add crtl->drap_reg to set_up_by_prologue.set, even if
23923 stack_realign_drap is false.
23924
f78ac4f2
JBG
239252013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
23926
23927 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
23928 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
23929 *call): Fix indention.
23930
a78a8cc4
TV
239312013-01-15 Tom de Vries <tom@codesourcery.com>
23932
23933 PR target/55876
23934 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
23935 Update comment.
23936
0e80383f
VM
239372013-01-15 Vladimir Makarov <vmakarov@redhat.com>
23938
305e3ac1 23939 PR rtl-optimization/55153
0e80383f
VM
23940 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
23941
207b5956
MJ
239422013-01-15 Martin Jambor <mjambor@suse.cz>
23943
23944 PR tree-optimization/55920
23945 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
23946 accesses as grp_to_be_debug_replaced.
23947
a7818b54
JJ
239482013-01-15 Jakub Jelinek <jakub@redhat.com>
23949
23950 PR tree-optimization/55920
23951 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
23952 there is non-useless type conversion needed from debug rhs to lhs,
23953 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
23954
b0fe107e
JM
239552013-01-15 Joseph Myers <joseph@codesourcery.com>
23956 Mikael Pettersson <mikpe@it.uu.se>
23957
23958 PR target/43961
23959 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
23960 Thumb.
23961 (ASM_OUTPUT_CASE_LABEL): Remove.
23962 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
23963 * final.c (shorten_branches): Update alignment of labels before
23964 jump tables if CASE_VECTOR_SHORTEN_MODE.
23965
34ab62ee
RB
239662013-01-15 Richard Biener <rguenther@suse.de>
23967
23968 PR bootstrap/55961
23969 * system.h: Do not include gmp.h for building host tools.
23970
783a3a05
RB
239712013-01-15 Richard Biener <rguenther@suse.de>
23972
23973 PR middle-end/55882
23974 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
23975 account for bitpos when computing alignment.
23976
3a579e09
VY
239772013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
23978
23979 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
23980 (ix86_target_macros_internal): Likewise.
23981
23982 * config/i386/i386.c (m_CORE2I7): Removed.
23983 (m_CORE_HASWELL): New macro.
23984 (m_CORE_ALL): Likewise.
23985 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
23986 (initial_ix86_arch_features): Likewise.
23987 (processor_target_table): Initializations for Core avx2.
23988 (cpu_names): New names "core-avx2".
23989 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
23990 PROCESSOR_CORE_HASWELL.
23991 (ix86_issue_rate): New case.
23992 (ia32_multipass_dfa_lookahead): Likewise.
23993 (ix86_sched_init_global): Likewise.
23994
23995 * config/i386/i386.h (TARGET_HASWELL): New macro.
23996 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
23997 (processor_type): New PROCESSOR_HASWELL.
23998
955f5a07
JJ
239992013-01-15 Jakub Jelinek <jakub@redhat.com>
24000
ff784829
JJ
24001 PR tree-optimization/55955
24002 * tree-vect-loop.c (vectorizable_reduction): Give up early on
24003 *SHIFT_EXPR and *ROTATE_EXPR codes.
24004
955f5a07
JJ
24005 PR tree-optimization/48766
24006 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
24007 -ftrapv disable -fwrapv.
24008
aeb8b4e9
GJL
240092013-01-14 Georg-Johann Lay <avr@gjlay.de>
24010
24011 PR target/55974
24012 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
24013 etc. to 1 and not to __flash.
24014 Use LL suffix for __INT24_MAX__ with -mint8.
24015 Use ULL suffix for __UINT24_MAX__ with -mint8.
24016
1c494c6a
GJL
240172013-01-14 Georg-Johann Lay <avr@gjlay.de>
24018
24019 * config/avr/avr-arch.h
24020 (struct base_arch_s): Use typedef avr_arch_t instead.
24021 (struct arch_info_s): Use typedef avr_arch_info_t instead.
24022 (struct mcu_type_s): Use typedef avr_mcu_t instead.
24023 * config/avr/avr.c: Same.
24024 * config/avr/avr-devices.c: Same.
24025 * config/avr/driver-avr.c: Same.
24026 * config/avr/gen-avr-mmcu-texi.c: Same.
24027 * config/avr/avr-mcus.def: Adjust comment.
24028
a50344cb
TB
240292013-01-14 Tejas Belagod <tejas.belagod@arm.com>
24030
88e784e6
UB
24031 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
24032 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 24033
47876a2a 240342013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
24035 Andi Kleen <ak@linux.intel.com>
24036
24037 PR target/55948
24038 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
24039 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
24040 memmodel flag.
24041
00892272
GJL
240422013-01-14 Georg-Johann Lay <avr@gjlay.de>
24043
24044 * config/avr/avr-stdint.h: Remove trailing blanks.
24045 * config/avr/avr-log.h: Same.
24046 * config/avr/avr-arch.h: Same.
24047 * config/avr/avr-devices.c: Same.
24048 * config/avr/avr-dimode.md: Same.
24049 * config/avr/predicates.md: Same.
24050 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 24051
00892272
GJL
24052 * config/avr/avr-protos.h: Same. And:
24053 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
24054 (init_cumulative_args): Rename to avr_init_cumulative_args.
24055 (expand_prologue): Rename to avr_expand_prologue.
24056 (expand_epilogue): Rename to avr_expand_epilogue.
24057 (adjust_insn_length): Rename to avr_adjust_insn_length.
24058 (notice_update_cc): Rename to avr_notice_update_cc.
24059 (final_prescan_insn): Rename to avr_final_prescan_insn.
24060 * config/avr/avr.c: Same.
24061 * config/avr/avr.h: Same.
24062 * config/avr/avr.md: Remove trailing blanks.
24063 (prologue): Use avr_expand_prologue.
24064 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
24065
7bb01996
RB
240662013-01-14 Richard Biener <rguenther@suse.de>
24067
24068 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
24069 verify_location, collect_subblocks): New functions.
24070 (verify_gimple_in_cfg): Verify that locations only reference
24071 BLOCKs in the functions BLOCK tree.
24072
2724573f
RB
240732013-01-14 Richard Biener <rguenther@suse.de>
24074
24075 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
24076 PHI argument.
24077 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
24078 unshare reference.
24079 (insert_out_of_ssa_copy_on_edge): Likewise.
24080 (rewrite_close_phi_out_of_ssa): Likewise.
24081 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
24082 debug expressions.
24083 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
24084 propagated constants.
24085 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
24086 can not be shared.
24087
9a0bbab6
GJL
240882013-01-14 Georg-Johann Lay <avr@gjlay.de>
24089
24090 * config/avr/avr-modes.def: Add GPL copyright notice.
24091
45805f17
UB
240922013-01-13 Uros Bizjak <ubizjak@gmail.com>
24093
24094 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
24095 MEMMODEL_MASK to determine memory model.
24096 (atomic_store<mode>): Ditto from operands[2].
24097 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
24098
9d60be38
JJ
240992013-01-13 Jakub Jelinek <jakub@redhat.com>
24100
24101 PR fortran/55935
45805f17 24102 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
24103 (fold_gimple_assign): Don't call unshare_expr here.
24104 (fold_ctor_reference): Call unshare_expr.
24105
e7f49d92
TG
241062013-01-13 Terry Guo <terry.guo@arm.com>
24107
aaf1e810
EB
24108 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
24109 * doc/fragments.texi: Document MULTILIB_REUSE.
24110 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 24111 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 24112 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
24113 (tmpmultilib4): Ditto.
24114 (multilib_reuse): New multilib argument.
24115
fbd03a27
RS
241162013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
24117
24118 * Makefile.in: Update copyright.
24119
b3681f13
TV
241202013-01-12 Tom de Vries <tom@codesourcery.com>
24121
24122 PR middle-end/55890
24123 * calls.c (expand_call): Check if arg_nr is valid.
24124
3f287e4b
MM
241252013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
24126
24127 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
24128 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
24129 documentation. Add missing '__' in front of
24130 __builtin_ia32_packssdw256.
3f287e4b 24131
1abcd5eb
AK
241322013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24133
24134 PR target/55719
24135 * config/s390/s390.c (s390_preferred_reload_class): Do not return
24136 NO_REGS for larl operands.
24137 (s390_reload_larl_operand): Use s390_load_address instead of
24138 emit_move_insn.
24139
980d0812
RB
241402013-01-11 Richard Biener <rguenther@suse.de>
24141
24142 * tree-cfg.c (verify_node_sharing_1): Split out from ...
24143 (verify_node_sharing): ... here.
24144 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
24145
7cb9fd07
EB
241462013-01-11 Eric Botcazou <ebotcazou@adacore.com>
24147
24148 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
24149 Substitute TREECHECKING.
24150 * configure: Regenerate.
24151 * Makefile.in (TREECHECKING): New.
24152
47876a2a 241532013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
24154
24155 PR tree-optimization/44061
24156 * tree-vrp.c (extract_range_basic): Compute zero as
24157 value-range for __builtin_constant_p of function parameters.
24158
d1e082c2
RS
241592013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
24160
45805f17 24161 Update copyright years.
d1e082c2 24162
f85021b0
VM
241632013-01-10 Vladimir Makarov <vmakarov@redhat.com>
24164
9d60be38 24165 PR rtl-optimization/55672
0160442c
VM
24166 * lra-eliminations.c (mark_not_eliminable): Permit addition with
24167 const to be eliminable.
f85021b0 24168
7a8b1ec4
DE
241692013-01-10 David Edelsohn <dje.gcc@gmail.com>
24170
24171 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
24172 * configure: Regenerate.
24173
ad2e5b71
RB
241742013-01-10 Richard Biener <rguenther@suse.de>
24175
ddf9322d 24176 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 24177
ffc5b2bb
RB
241782013-01-10 Richard Biener <rguenther@suse.de>
24179
24180 PR bootstrap/55792
24181 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
24182 locations for virtual PHI arguments.
24183 (rewrite_update_phi_arguments): Likewise.
24184
e1f674e4
JS
241852013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
24186
24187 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
24188 on to assembler.
24189
a57fc743
JJ
241902013-01-10 Jakub Jelinek <jakub@redhat.com>
24191
24192 PR tree-optimization/55921
24193 * tree-complex.c (expand_complex_asm): New function.
24194 (expand_complex_operations_1): Call it for GIMPLE_ASM.
24195
0ff4390d
AK
241962013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24197
24198 PR target/55718
24199 * config/s390/s390.c (s390_symref_operand_p)
24200 (s390_loadrelative_operand_p): Merge the two functions.
24201 (s390_check_qrst_address, print_operand_address): Add parameters
24202 to s390_loadrelative_operand_p invokation.
24203 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
24204 (s390_reload_larl_operand, s390_secondary_reload): Use
24205 s390_loadrelative_operand_p instead of s390_symref_operand_p.
24206 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
24207
6f557e0e
MS
242082013-01-09 Mike Stump <mikestump@comcast.net>
24209
24210 * dse.c (record_store): Remove unnecessary assert.
24211
7770c9e9
JH
242122013-01-09 Jan Hubicka <jh@suse.cz>
24213
24214 PR tree-optimization/55569
24215 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
24216 * cfgloop.h (scale_loop_profile): Likewise.
24217
a19b1432
JH
242182013-01-09 Jan Hubicka <jh@suse.cz>
24219
24220 PR lto/45375
ddf9322d
UB
24221 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
24222 functions.
a19b1432
JH
24223 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
24224
9a002da8
RS
242252013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
24226
24227 PR middle-end/55114
24228 * expr.h (maybe_emit_group_store): Declare.
24229 * expr.c (maybe_emit_group_store): New function.
24230 * builtins.c (expand_builtin_int_roundingfn): Call it.
24231 (expand_builtin_int_roundingfn_2): Likewise.
24232
511dcace
VM
242332013-01-09 Vladimir Makarov <vmakarov@redhat.com>
24234
e1f2b729 24235 PR rtl-optimization/55829
511dcace
VM
24236 * lra-constraints.c (match_reload): Add code for absent output.
24237 (curr_insn_transform): Add code for reloads of matched inputs
24238 without output.
24239
7b0fe4f4
UB
242402013-01-09 Uros Bizjak <ubizjak@gmail.com>
24241
24242 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
24243 attribute of movddup insn to DF.
24244 (*vec_interleave_lowv2df): Ditto.
24245 (vec_dupv2df): Ditto.
24246
870ca331
JH
242472013-01-09 Jan Hubicka <jh@suse.cz>
24248
24249 PR tree-optimiation/55875
24250 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
24251 EVERY_ITERATION parameter.
7b0fe4f4 24252 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
24253 (idx_infer_loop_bounds): Similarly here.
24254 (n_of_executions_at_most): Simplify
24255 to only test for cases where statement is dominated by the
7b0fe4f4 24256 particular bound; handle correctly the "postdominance" test.
870ca331
JH
24257 (scev_probably_wraps_p): Use max loop iterations info
24258 as a global bound first.
24259
6f575fe4 242602013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
24261 Nick Clifton <nickc@redhat.com>
24262
24263 * config/v850/v850.md (cbranchsf4): New pattern.
24264 (cstoresf4): New pattern.
24265 (cbranchdf4): New pattern.
24266 (cstoredf4): New pattern.
24267 (movsicc): Disallow floating point comparisons.
24268 (cmpsf_le_insn): Fix order of operators.
24269 (cmpsf_lt_insn): Likewise.
24270 (cmpsf_eq_insn): Likewise.
24271 (cmpdf_le_insn): Likewise.
24272 (cmpdf_lt_insn): Likewise.
24273 (cmpdf_eq_insn): Likewise.
24274 (cmpsf_ge_insn): Use LE comparison.
24275 (cmpdf_ge_insn): Likewise.
24276 (cmpsf_gt_insn): Use LT comparison.
24277 (cmpdf_gt_insn): Likewise.
24278 (cmpsf_ne_insn): Delete pattern.
24279 (cmpdf_ne_insn): Delete pattern.
24280 * config/v850/v850.c (v850_gen_float_compare): Use
24281 gen_cmpdf_eq_insn for NE comparison.
24282 (v850_float_z_comparison_operator)
24283 (v850_float_nz_comparison_operator): Move from here ...
24284 * config/v850/predicates.md: ... to here. Move GT and GE
24285 comparisons into v850_float_z_comparison_operator.
24286 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
24287 Delete prototype.
24288 (v850_float_nz_comparison_operator): Likewise.
24289
f0d54148
JDA
242902013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24291
24292 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
24293 with calls to gen_insvsi/gen_insvdi.
24294
8f01beca
VK
242952013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24296
24297 * config/i386/i386.c (initial_ix86_tune_features): Set up
24298 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
24299
2aa579ad
JJ
243002013-01-09 Steven Bosscher <steven@gcc.gnu.org>
24301 Jakub Jelinek <jakub@redhat.com>
24302
24303 PR tree-optimization/48189
24304 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
24305 If nitercst is 0, don't predict the exit edge.
24306
6edc3e32 243072013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
24308
24309 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
24310 in asm_fprintf with reg_names.
24311 (aarch64_print_operand_address): Likewise.
24312 (aarch64_return_addr): Likewise.
24313 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
24314
f6f94d94
JDA
243152013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24316
24317 * config/pa/pa.h (VAL_U6_BITS_P): Define.
24318 (INT_U6_BITS): Likewise.
24319 * config/pa/predicates.md (uint6_operand): New predicate.
24320 (shift5_operand, shift6_operand): Likewise.
24321 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
24322 arith32_operand.
24323 (lshrdi3): Use shift6_operand.
24324 (shrpsi4, shrpdi4): New insn patterns.
24325 (extzv): Delete expander.
24326 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
24327 predicates in unamed zero extract patterns. Tighten common constraint.
24328 (extv): Delete expander.
24329 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
24330 predicates in unamed sign extract patterns. Tighten common constraint.
24331 (insv): Delete expander.
24332 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
24333 predicates in unamed insert patterns. Tighten common constraint.
24334 Change uint32_operand predicate to uint6_operand predicate in unamed
24335 DImode pattern to insert constant values of type 1...1xxxx.
24336
36b72910
JH
243372013-01-04 Jan Hubicka <jh@suse.cz>
24338
24339 PR tree-optimization/55823
7b0fe4f4
UB
24340 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
24341 issue.
36b72910 24342
47876a2a 243432013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
24344 Uros Bizjak <ubizjak@gmail.com>
24345
24346 PR rtl-optimization/55845
24347 * df-problems.c (can_move_insns_across): Stop scanning at
24348 volatile_insn_p source instruction or give up if
24349 across_from .. across_to range contains any volatile_insn_p
24350 instructions.
24351
4369c11e
TB
243522013-01-08 Tejas Belagod <tejas.belagod@arm.com>
24353
7b0fe4f4
UB
24354 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
24355 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
24356 Declare.
4369c11e 24357 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 24358 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 24359
aeb7e7c1
JJ
243602013-01-08 Jakub Jelinek <jakub@redhat.com>
24361
24362 PR fortran/55341
24363 * asan.c (asan_clear_shadow): New function.
24364 (asan_emit_stack_protection): Use it.
24365
a02ad1aa
TB
243662013-01-08 Tejas Belagod <tejas.belagod@arm.com>
24367
24368 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
24369 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
24370 with tab instead of space.
24371
f90d87f5
NC
243722013-01-08 Nick Clifton <nickc@redhat.com>
24373
24374 * config/rl78/rl78.c (rl78_expand_prologue): Always select
24375 register bank 0 at the start of an interrupt handler.
83ffd964
NC
24376 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
24377 MDBH registers.
f90d87f5 24378
385eb93d
JG
243792013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
24380
24381 * config/aarch64/aarch64-simd.md
24382 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
24383 (aarch64_simd_bsl): Likewise.
24384 (aarch64_vcond_internal<mode>): Likewise.
24385 (vcond<mode><mode>): Likewise.
24386 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
24387 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
24388
4dcd1054
JG
243892013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
24390
24391 * config/aarch64/aarch64-builtins.c
24392 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
24393
4267a4a6
MJ
243942013-01-08 Martin Jambor <mjambor@suse.cz>
24395
24396 PR debug/55579
24397 * tree-sra.c (analyze_access_subtree): Return true also after
24398 potentially creating a debug-only replacement.
24399
5f4e6de3
JJ
244002013-01-08 Jakub Jelinek <jakub@redhat.com>
24401
3138f224
JJ
24402 PR middle-end/55890
24403 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
24404
5f4e6de3
JJ
24405 PR tree-optimization/54120
24406 * tree-vrp.c (range_fits_type_p): Don't allow
24407 src_precision < precision from signed vr to unsigned_p
24408 if vr->min or vr->max is negative.
24409 (simplify_float_conversion_using_ranges): Test can_float_p
24410 against CODE_FOR_nothing.
24411
f3ef18ff
JJ
244122013-01-08 Jakub Jelinek <jakub@redhat.com>
24413 Richard Biener <rguenther@suse.de>
24414
24415 PR middle-end/55851
24416 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
24417 types instead of just INTEGER_TYPE types.
24418
25c210f9
MK
244192013-01-07 Mark Kettenis <kettenis@openbsd.org>
24420
24421 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
24422 TF_SIZE): Define.
f90d87f5 24423
81826a7b
SE
244242013-01-07 Steve Ellcey <sellcey@mips.com>
24425
24426 PR target/42661
24427 * config/mips/mips.opt: Change mad to mmad to match documentation.
24428
35678514
GJL
244292013-01-07 Georg-Johann Lay <avr@gjlay.de>
24430
24431 PR target/55897
24432 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
24433 .progmemx.data now.
24434
e5669488
GJL
244352013-01-07 Georg-Johann Lay <avr@gjlay.de>
24436
24437 PR target/55897
24438 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
24439 (avr_addrspace_t): Add .section_name field.
24440 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
24441 array size.
24442 (avr_addrspace): Same. Initialize .section_name. Remove last
24443 NULL entry. Put __memx into .progmemx.data.
24444 (progmem_section_prefix): Remove.
24445 (avr_asm_init_sections): No need to initialize progmem_section.
24446 (avr_asm_named_section): Use avr_addrspace[].section_name to get
24447 section name prefix.
24448 (avr_asm_select_section): Ditto. And use get_unnamed_section to
24449 retrieve the progmem section.
24450 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
24451 boundary to run over avr_addrspace[].
24452 (avr_register_target_pragmas): Ditto.
24453
656e6f37
JJ
244542013-01-06 Jakub Jelinek <jakub@redhat.com>
24455
24456 * varasm.c (output_constant_def_contents): For asan_protect_global
24457 protected strings, adjust DECL_ALIGN if needed, before testing for
24458 anchored symbols.
24459 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
24460 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
24461 normal decls.
24462 (output_object_block): For asan protected decls, emit asan padding
24463 after their contents.
24464 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
24465 (asan_finish_file): Test it here instead.
24466
6edc3e32
UB
244672013-01-07 Nick Clifton <nickc@redhat.com>
24468 Matthias Klose <doko@debian.org>
24469 Doug Kwan <dougkwan@google.com>
24470 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
24471
24472 PR driver/55470
24473 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
24474
24475 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
24476
24477 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
24478
7b0fe4f4 24479 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
24480
24481 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
24482
2a095093
GJL
244832013-01-07 Georg-Johann Lay <avr@gjlay.de>
24484
f3b503f4 24485 PR target/54461
2a095093
GJL
24486 * doc/install.texi (Cross-Compiler-Specific Options): Document
24487 --with-avrlibc.
24488
383f9b34
TB
244892013-01-07 Tejas Belagod <tejas.belagod@arm.com>
24490
24491 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
24492 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
24493 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
24494 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
24495 vqmovun_high_s64): Fix source operand number and update copyright.
24496
3626621a
RB
244972013-01-07 Richard Biener <rguenther@suse.de>
24498
24499 PR middle-end/55890
24500 * gimple.h (gimple_call_builtin_p): New overload.
24501 * gimple.c (validate_call): New function.
24502 (gimple_call_builtin_p): Likewise.
24503 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24504 Use gimple_call_builtin_p.
24505 (find_func_clobbers): Likewise.
24506 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
24507 (strlen_optimize_stmt): Likewise.
24508
8b2ea410
JG
245092013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
24510
24511 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
24512 (vld1q_dup_*): Likewise.
24513 (vld1_*): Likewise.
24514 (vld1q_*): Likewise.
24515 (vld1_lane_*): Likewise.
24516 (vld1q_lane_*): Likewise.
24517
9713d329
RB
245182013-01-07 Richard Biener <rguenther@suse.de>
24519
24520 * lto-streamer.h (LTO_minor_version): Bump to 2.
24521
3520f7cc
JG
245222013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
24523
24524 * config/aarch64/aarch64-protos.h
24525 (aarch64_const_double_zero_rtx_p): Rename to...
24526 (aarch64_float_const_zero_rtx_p): ...this.
24527 (aarch64_float_const_representable_p): New.
24528 (aarch64_output_simd_mov_immediate): Likewise.
24529 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
24530 move immediate case.
24531 * config/aarch64/aarch64.c
24532 (aarch64_const_double_zero_rtx_p): Rename to...
24533 (aarch64_float_const_zero_rtx_p): ...this.
24534 (aarch64_print_operand): Allow printing of new constants.
24535 (aarch64_valid_floating_const): New.
24536 (aarch64_legitimate_constant_p): Check for valid floating-point
24537 constants.
24538 (aarch64_simd_valid_immediate): Likewise.
24539 (aarch64_vect_float_const_representable_p): New.
24540 (aarch64_float_const_representable_p): Likewise.
24541 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
24542 (aarch64_output_simd_mov_immediate): New.
24543 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
24544 (*movdf_aarch64): Likewise.
24545 * config/aarch64/constraints.md (Ufc): New.
24546 (Y): call aarch64_float_const_zero_rtx.
24547 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
24548
e167c04d
RB
245492013-01-07 Richard Biener <rguenther@suse.de>
24550
24551 PR tree-optimization/55888
24552 PR tree-optimization/55862
24553 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
24554 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
24555 not if it is contained therein.
24556
0139aaab
GJL
245572013-01-07 Georg-Johann Lay <avr@gjlay.de>
24558
24559 * config/avr/t-avr: Typo.
24560
4a176b23
GJL
245612013-01-07 Georg-Johann Lay <avr@gjlay.de>
24562
24563 PR55243
24564 * config/avr/t-avr: Don't automatically rebuild
24565 $(srcdir)/config/avr/t-multilib
24566 $(srcdir)/config/avr/avr-tables.opt
24567 $(srcdir)/doc/avr-mmcu.texi
24568 (avr-mcus): New phony target to build them on request.
24569 (s-avr-mlib, s-avr-mmcu-texi): Remove.
24570 * avr/avr-mcus.def: Adjust comments.
24571
c7afdc98
UB
245722013-01-07 Uros Bizjak <ubizjak@gmail.com>
24573
24574 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
24575
1ab05c31
RS
245762013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24577
24578 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
24579
488e3acc
RS
245802013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24581
24582 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
24583
a89599d2
DE
245842013-01-05 David Edelsohn <dje.gcc@gmail.com>
24585
24586 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
24587 to generate profiling.
24588 * config/rs6000/aix64.h (LIB_SPEC): Same.
24589
70f09188
AP
245902013-01-04 Andrew Pinski <apinski@cavium.com>
24591
24592 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
24593 New function.
24594 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
24595
918d445f
UB
245962013-01-04 Uros Bizjak <ubizjak@gmail.com>
24597
24598 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
24599 unconditionally.
24600 (ix86_expand_move): Ditto.
24601 (ix86_zero_extend_to_Pmode): Ditto.
24602 (ix86_expand_call): Ditto.
24603 (ix86_expand_special_args_builtin): Ditto.
24604 (ix86_expand_builtin): Ditto.
24605
361618ec
RB
246062013-01-04 Richard Biener <rguenther@suse.de>
24607
24608 PR tree-optimization/55862
24609 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
24610 translating them through PHI nodes.
24611
87eab554
MJ
246122013-01-04 Martin Jambor <mjambor@suse.cz>
24613
24614 PR tree-optimization/55755
24615 * tree-sra.c (sra_modify_assign): Do not check that an access has no
24616 children when trying to avoid producing a VIEW_CONVERT_EXPR.
24617
33879b9f
MP
246182013-01-04 Marek Polacek <polacek@redhat.com>
24619
24620 PR middle-end/55859
24621 * opts.c (default_options_optimization): Clarify error message.
24622
3068819a
RB
246232013-01-04 Richard Biener <rguenther@suse.de>
24624
24625 PR middle-end/55863
24626 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
24627 reassociation.
24628
0e4ae794
JDA
246292013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24630
24631 PR target/53789
24632 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
24633 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
24634 references.
0e4ae794 24635
65c88cef
RH
246362013-01-03 Richard Henderson <rth@redhat.com>
24637
24638 * config/i386/i386.c (ix86_expand_move): Always assign to op1
24639 after eliminating TLS symbols.
24640
8ac16127
MG
246412013-01-03 Marc Glisse <marc.glisse@inria.fr>
24642
24643 PR bootstrap/50167
24644 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
24645 * graphite-poly.c (debug_gmp_value): Likewise.
24646
bb664f09
UB
246472013-01-03 Uros Bizjak <ubizjak@gmail.com>
24648
24649 PR target/55712
24650 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
24651 selected code model, define __code_mode_small__, __code_model_medium__,
24652 __code_model_large__, __code_model_32__ or __code_model_kernel__.
24653 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
24654 xchg temporary register with %k. Declare temporary register as
24655 early clobbered.
24656 [__x86_64__]: For medium and large code models, preserve %rbx register.
24657
bcf1ef00
RB
246582013-01-03 Richard Biener <rguenther@suse.de>
24659
0506634a 24660 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
24661 (dump_subscript): Adjust.
24662 (finalize_ddr_dependent): Do not dump redundant info.
24663 (analyze_siv_subscript): Adjust.
24664 (subscript_dependence_tester): Likewise.
24665 (compute_affine_dependence): Likewise.
24666
59fd17e3
RB
246672013-01-03 Richard Biener <rguenther@suse.de>
24668
24669 Revert
24670 2013-01-03 Richard Biener <rguenther@suse.de>
24671
24672 PR tree-optimization/55857
24673 * tree-vect-stmts.c (vectorizable_load): Do not setup
24674 re-alignment for invariant loads.
24675
24676 2013-01-02 Richard Biener <rguenther@suse.de>
24677
24678 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 24679 invariant load do not generate a vector load from the scalar location.
59fd17e3 24680
595c2679
RB
246812013-01-03 Richard Biener <rguenther@suse.de>
24682
24683 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
24684 for not vectorizing.
24685 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
24686 not build INDIRECT_REFs, call get_name once only.
24687 (vect_create_data_ref_ptr): Likewise. Dump base object kind
24688 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
24689
90bb7d7a
RB
246902013-01-03 Richard Biener <rguenther@suse.de>
24691
24692 PR tree-optimization/55857
24693 * tree-vect-stmts.c (vectorizable_load): Do not setup
24694 re-alignment for invariant loads.
24695
f09b77ca
RB
246962013-01-03 Richard Biener <rguenther@suse.de>
24697
24698 PR lto/55848
24699 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
24700 prefer a built-in decl.
24701
3461a16e
JJ
247022013-01-03 Jakub Jelinek <jakub@redhat.com>
24703
df8e2b4f
JJ
24704 * gcc.c (process_command): Update copyright notice dates.
24705 * gcov.c (print_version): Likewise.
24706 * gcov-dump.c (print_version): Likewise.
24707
3461a16e
JJ
24708 PR rtl-optimization/55838
24709 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
24710 iv0.step, iv1.step and step.
24711
8b5546d6
JJ
247122013-01-03 Jakub Jelinek <jakub@redhat.com>
24713 Marc Glisse <marc.glisse@inria.fr>
24714
24715 PR tree-optimization/55832
24716 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
24717 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
24718 integer_{one,zero}_node.
24719
8ab1d2e9
JJ
247202013-01-03 Jakub Jelinek <jakub@redhat.com>
24721
24722 PR debug/54402
24723 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
24724 * var-tracking.c (reverse_op): Don't add reverse ops to
24725 VALUEs that have already
0506634a 24726 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 24727
5b9ad1d4
GP
247282013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
24729
24730 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
24731
e25a6711
TJ
247322013-01-02 Teresa Johnson <tejohnson@google.com>
24733
24734 * dumpfile.c (dump_loc): Print filename with location.
24735 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
24736 new location_t parameter to emit complete unroll message with
24737 new dump framework.
24738 (canonicalize_loop_induction_variables): Compute loops location
24739 and pass to try_unroll_loop_completely.
24740 * loop-unroll.c (report_unroll_peel): New function.
24741 (peel_loops_completely): Use new dump format with location
24742 for main dumpfile message, and invoke report_unroll_peel on success.
24743 (decide_unrolling_and_peeling): Ditto.
24744 (decide_peel_once_rolling): Remove old dumpfile message subsumed
24745 by report_unroll_peel.
24746 (decide_peel_completely): Ditto.
24747 (decide_unroll_constant_iterations): Ditto.
24748 (decide_unroll_runtime_iterations): Ditto.
24749 (decide_peel_simple): Ditto.
24750 (decide_unroll_stupid): Ditto.
24751 * cfgloop.c (get_loop_location): New function.
24752 * cfgloop.h (get_loop_location): Declare.
24753
77878621
ST
247542013-01-02 Sriraman Tallam <tmsriram@google.com>
24755
24756 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
24757 NULL.
24758
9e65d03e
JDA
247592013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24760
24761 PR middle-end/55198
24762 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
24763 BLKmode objects when EXPAND_MEMORY is specified.
24764
6a7da30f
ST
247652013-01-02 Sriraman Tallam <tmsriram@google.com>
24766
24767 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
24768 in loop predicate.
24769 (fold_builtin_cpu): Do not share cpu model decls across statements.
24770
e78167f2
JM
247712013-01-02 Jason Merrill <jason@redhat.com>
24772
24773 PR c++/55804
24774 * tree.c (build_array_type_1): Revert earlier change.
24775
8c075fb4
YZ
247762013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
24777
24778 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
24779 "cortex-a57".
24780 * config/aarch64/aarch64-tune.md: Re-generate.
24781
0682ed3e
RB
247822013-01-02 Richard Biener <rguenther@suse.de>
24783
24784 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 24785 invariant load do not generate a vector load from the scalar location.
0682ed3e 24786
b8f6a302
RB
247872013-01-02 Richard Biener <rguenther@suse.de>
24788
24789 PR bootstrap/55784
24790 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
24791 * configure: Regenerate.
24792
04b80dbb
RS
247932013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
24794
24795 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
24796 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
24797 (expand_builtin_int_roundingfn_2): Keep the original target around
24798 for the fallback case.
24799
635b0b0c
RS
248002013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
24801
24802 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
24803 to be clear for sign changes.
24804
42d57399
JH
248052013-01-01 Jan Hubicka <jh@suse.cz>
24806
24807 * ipa-inline-analysis.c: Fix formatting.
24808
5bb6669d
JJ
248092013-01-01 Jakub Jelinek <jakub@redhat.com>
24810
24811 PR tree-optimization/55831
24812 * tree-vect-loop.c (get_initial_def_for_induction): Use
24813 gsi_after_labels instead of gsi_start_bb.
ad41bd84 24814\f
86a2db33 24815Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
24816
24817Copying and distribution of this file, with or without modification,
24818are permitted in any medium without royalty provided the copyright
24819notice and this notice are preserved.